gluBuild2DMipmaps与glTexImage2D与glGenTexture()函数

转自:http://blog.csdn.net/stilling2006/article/details/5549310

gluBuild2DMipmaps与glTexImage2D两者的都是从图片生成纹理,即将图片加载到内存中。

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]记录中的数据

这个函数的第二个参数,如果我们设为0时,指的是原图,当我们想用相应的LOD的mipmap时,即经过图像融合的图片时,我们需要自己手动处理融合图像,而gluBuild2DMipmaps()可以自动生成不同细节层次的图片,即不同精细程度的图片。

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()支持任意分辨率位图文件。

 

转自:http://blog.sina.com.cn/s/blog_9f4bc8e301014gza.html

glGenTexture()函数作用与上面二者不同,它是用来用来产生你要操作的纹理对象的索引的

glGenTextures(GLsizei n, GLuint *textures)函数说明 

n:用来生成纹理的数量 

textures:存储纹理索引的

比如你告诉OpenGL,我需要5个纹理对象(GLsizei n),它会从没有用到的整数里返回5个给你,存储在(GLuint *textures)中。

 

 

 

 

posted @ 2013-03-25 14:31  qingsun_ny  阅读(1352)  评论(0编辑  收藏  举报