两者的都是生成纹理。我觉得glTexImage2D比gluBuild2DMipmaps更稳定,有时后者也不知道什么原因就贴不好图。至少我这遇见了好几次了,可能是我前面滤波设置的问题,但也很有可能是这个函数自身的问题。希望谁懂的能告诉我。不过后者对BMP图片的要求就宽松了,这就是其优点吧。哈。
glTexImage2D()的用法举例
glTexImage2D(GL_TEXTURE_2D, //此纹理是一个2D纹理
0, //代表图像的详细程度, 默认为0即可
3, //颜色成分
TextureImage[0]->sizeX, //纹理的宽度
TextureImage[0]->sizeY, //纹理的高度
0, //边框的值
GL_RGB, //告诉OpenGL图像数据由红、绿、蓝三色数据组成
GL_UNSIGNED_BYTE, //组成图像的数据是无符号字节类型
TextureImage[0]->data); //告诉OpenGL纹理数据的来源,此例中指向存放在TextureImage[0]记录中的数据
gluBuild2DMipmaps()的用法举例
gluBuild2DMipmaps(GL_TEXTURE_2D,//此纹理是一个2D纹理
3, //颜色成分
TextureImage[0]->sizeX, //纹理的宽度
TextureImage[0]->sizeY, //纹理的高度
GL_RGB, //告诉OpenGL图像数据由红、绿、蓝三色数据组成
GL_UNSIGNED_BYTE, //组成图像的数据是无符号字节类型
TextureImage[0]->data); //告诉OpenGL纹理数据的来源,此例中指向存放在TextureImage[0]记录中的数据
使用注意事项
使用glTexImage2D()时所采用的位图文件分辨率必须为:64×64、128×128、256×256三种格式,如果其他大小则会出现绘制不正常。gluBuild2DMipmaps()支持任意分辨率位图文件。