glteximage2d

glteximage2d

 播报编辑讨论上传视频
glTexImage2D
glteximage2d是一个OpenGL函数,功能是根据指定的参数,生成一个2D纹理(Texture)。相似的函数还有glTexImage1D、glTexImage3D。
 
 
外文名
glteximage2d
性    质
OpenGL函数
相    似
glTexImage1D

目录

  1. 简介
  2. 功能
这是一个OpenGL函数(以下叙述以OpenGL ES2.0为例)。
函数原型:
GL_APICALL void GL_APIENTRY glTexImage2D(GLenum target, GLint level, GLenum internalformat,
GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels);
参数说明:
target 指定目标纹理,这个值必须是GL_TEXTURE_2D。
level 执行细节级别。0是最基本的图像级别,n表示第N级贴图细化级别。
internalformat 指定纹理中的颜色组件。可选的值有GL_ALPHA,GL_RGB,GL_RGBA,GL_LUMINANCE, GL_LUMINANCE_ALPHA 等几种。
width 指定纹理图像的宽度,必须是2的n次方。纹理图片至少要支持64个材质元素的宽度
height 指定纹理图像的高度,必须是2的m次方。纹理图片至少要支持64个材质元素的高度
border 指定边框的宽度。必须为0。
format 像素数据的颜色格式, 不需要和internalformatt取值必须相同。可选的值参考internalformat。
type 指定像素数据的数据类型。可以使用的值有GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT_5_6_5,GL_UNSIGNED_SHORT_4_4_4_4,GL_UNSIGNED_SHORT_5_5_5_1。
pixels 指定内存中指向图像数据的指针
该函数的功能是,根据指定的参数,生成一个2D纹理(Texture)。相似的函数还有glTexImage1D、glTexImage3D。
需注意的是,internalformat的取值,OpenGL ES2.0和OpenGL 1.0是不同的。OpenGL1.0版本支持的取值是1,2,3,4,在部分系统下可以向前兼容,但不是所有的系统下都支持向前兼容,所以在使用OpenGL ES 2.0时最好传入上面所述的那些值作为实际参数。
在调用该函数之前,必须调用glBindTexture(GL_TEXTURE_2D, mTextureID );以指定要操作的纹理ID,此处是mTextureID。
应用方式如下如下:
unsigned int mTextureID;
glGenTextures(1, &mTextureID);
glBindTexture(GL_TEXTURE_2D, mTextureID );
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);//此为纹理过滤参数设置
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
//width、height等参数必需符合要求,此处不赘述。pData是指像素数据
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width,height, 0, GL_RGB, GL_UNSIGNED_BYTE, pData );

posted on 2022-10-25 19:23  zxddesk  阅读(123)  评论(0编辑  收藏  举报

导航