`

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

 
阅读更多
说明:两者的都是生成纹理,即:将载入的位图文件(*.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]记录中的数

分享到:
评论
2 楼 w11h22j33 2011-01-06  
纹理的边缘像素一直延伸到左上角。这就是GL_CLAMP_TO_EDGE.

让我快速解释这两行代码:

   glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
   glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

我们调用了 glTexParameterf() 当我们加载纹理的时候设置纹理过滤。像一般的OpenGL函数,它具有“双重功能”。有三个参数,但是在OpenGL ES只有两个有效果。第一个参数一般使 GL_TEXTURE_2D ,OpenGL ES 只支持它。

第二个参数是告诉OpenGL什么“变量”是我们要改变的,一般来说,是 GL_TEXTURE_WRAP_x.

这第三个参数就是我们要设置的。

OpenGL通过设置 “变量” or “设置” GL_TEXTURE_WRAP_S t到GL_CLAMP_TO_EDGE, 我们告诉 OpenGL 不要重复纹理而是延伸s 坐标 (什么是 “s”, 后面会说). 我们也做了相同的t坐标,等下运行下模拟器,看看是什么样的。
1 楼 w11h22j33 2011-01-05  
是很常用的函数
他们的作用是绑定函数
但是有时候使用
glTexImage2D
并不能正确绑定纹理
其原因据我所知有2个
1个是图形大小不是2的整数次幂
还有一个就是
如果使用glTexImage2D,则在纹理包裹模式中不适用MIPMAP系列

ogl 2.0之后glTexImage2D好像没有这么限制,不过MIPMAP照样要2^n

相关推荐

    OpenGL函数大全

    1. 辅助纹理贴图函数:gluScaleImage()、gluBuild1Dmipmaps()、gluBuild2Dmipmaps()等。 2. 坐标转换和投影变换函数:gluPerspective()、gluOrtho2D()、gluLookAt()、gluPickMatrix()、gluProject()、gluUnProject()...

    OpenGL函数介绍

    - **辅助纹理贴图函数**:如`gluScaleImage`用于缩放纹理图像,`gluBuild1Dmipmaps`和`gluBuild2Dmipmaps`用于生成多层次细节纹理。 - **坐标转换和投影变换**:`gluPerspective`用于定义透视投影,`gluOrtho2D`...

    主要的OpenGL函数库

    - **辅助纹理贴图**:`gluScaleImage()`、`gluBuild1Dmipmaps()`和`gluBuild2Dmipmaps()`帮助处理纹理映射。 - **坐标转换和投影**:`gluPerspective()`、`gluOrtho2D()`和`gluLookAt()`定义视角,`gluPickMatrix...

    常用的OpenGL的函数

    (1)辅助纹理贴图函数,有 gluScaleImage()、gluBuild1Dmipmaps()、gluBuild2Dmipmaps()。 (2)坐标转换和投影变换函数,定义投影方式函数 gluPerspective()、gluOrtho2D()、gluLookAt(),拾取投影视景体函数 ...

    OpenGL使用手册

    5. **纹理映射函数**:包括`glTexImage2D()`加载纹理,`glTexParameter*()`、`glTexEnv*()`和`glTexCoord*()`控制纹理参数、环境和坐标。 6. **特殊效果函数**:如雾化(fog)、混合(blending)等。 7. **选择和...

    OpenGL函数库

    (5)纹理映射函数,如 glTexImage1D()、glTexImage2D()、glTexParameter*()、glTexEnv*() 和 glTetCoord*() 等。 (6)特殊效果函数,如 glBlendFunc()、glHint() 和 glFog*() 等。 (7)光栅化、象素操作函数,...

    opengl的函授介绍

    1. **图像缩放与Mipmap生成** —— `gluScaleImage()`、`gluBuild1Dmipmaps()`、`gluBuild2Dmipmaps()`等。 2. **投影变换** —— `gluPerspective()`、`gluOrtho2D()`、`gluLookAt()`等。 3. **选择和投影** ...

    OpenGL_中文API.doc

    - **辅助纹理贴图函数**:如`gluScaleImage()`、`gluBuild1Dmipmaps()`、`gluBuild2Dmipmaps()`等。 - **三维几何体构造**:如`gluSphere()`、`gluCylinder()`等。 - **曲面构造**:如`gluNurbsCurve()`、`...

    OpenGl函数介绍哦

    - `gluBuild1DMipmaps()` 和 `gluBuild2DMipmaps()`:构建一维和二维的Mipmap。 2. **坐标转换和投影变换函数**: - `gluPerspective()` 和 `gluOrtho2D()`:定义透视和正交投影。 - `gluLookAt()`:设置观察者...

    OpenGL 库函数汇总(中文分类)CHM

    glTexImage2D glTexParameter glTexSubImage1D glTexSubImage2D glTexEnv glTexCoord glTexGen glTexCoordPointer glDeleteTextures 特效操作 ---------------------------- glBlendFunc glHint glFog 1.GL ...

Global site tag (gtag.js) - Google Analytics