glTexImage2D()&gluBuild2DMipmaps()

说明:两者的都是生成纹理,即:将载入的位图文件(*.bmp)转换成纹理贴图。

glTexImage2D()的用法举例

glTexImage2D(GL_TEXTURE_2D, //此纹理是一个2D纹理
0,                                         //代表图像的详细程度, 默认为0即可 
3,                                         //颜色成分R(红色分量)、G(绿色分量)、B(蓝色分量)三部分,若为4则是R(红

                                         //色分量)、G(绿色分量)、B(蓝色分量)、Alpha
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,                                             //颜色成分R(红色分量)、G(绿色分量)、B(蓝色分量)三部分,若为4则是R(红色分量)、G(绿色分量)、B(蓝色分量)、Alpha
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()支持任意分辨率位图文件。

见过glTexImage2D()的缺陷了,但是在基于对话框下的openGL 用gluBuild2DMipmaps()咋会出现异常(Integer division by zero),两个函数都加载不了纹理(能加载的,我在没有使绘图描述表为当前调用现程的当前绘图描述表就加载材质了,所以贴图一直显示不了)

发布了14 篇原创文章 · 获赞 1 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章