opengl学习--glteximage2d()--来自百度百科

原文链接: https://baike.baidu.com/item/glteximage2d/6989537?fr=aladdin

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 );

猜你喜欢

转载自blog.csdn.net/u010029439/article/details/100977962