glteximage2d是一個OpenGL函式,功能是根據指定的參數,生成一個2D紋理(Texture)。相似的函式還有glTexImage1D、glTexImage3D。
基本介紹
- 外文名:glteximage2d
- 性質:OpenGL函式
- 相似:glTexImage1D
簡介,功能,
簡介
這是一個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 );
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);
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 );