您的位置:首页 > 产品设计 > UI/UE

gluBuild2DMipmaps()与glTexImage2D()的使用方法及区别

2012-11-29 16:40 417 查看
说明:两者的都是生成纹理,即:将载入的位图文件(*.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),两个函数都加载不了纹理(能加载的,我在没有使绘图描述表为当前调用现程的当前绘图描述表就加载材质了,所以贴图一直显示不了)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: