更多精彩图形学视频教程,请访问 http://www.oxox.work/
定义一个二维纹理:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth, checkImageHeight,
0, GL_RGBA, GL_UNSIGNED_BYTE, checkImage);
void glTexImage2D (GLenum target, GLint level, GLint internalformat
, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
//target参数用于定义二维纹理;
//如果提供了多种分辨率的纹理图像,可以使用level参数,否则level设置为0;
//internalformat确定了哪些成分(RGBA, 深度, 亮度和强度)被选定为图像纹理单元
//width和height表示纹理图像的宽度和高度;
//border参数表示边框的宽度
//format和type参数描述了纹理图像数据的格式和数据类型
//pixels参数包含了纹理图像的数据,这个数据描述了纹理图像本身和它的边框
int gluScaleImage (
GLenum format,
GLint widthin,
GLint heightin,
GLenum typein,
const void *datain,//存储的纹理图像数据
GLint widthout,
GLint heightout,
GLenum typeout,
void *dataout);//最终的纹理图像数据
从帧缓存区读取一块矩形像素,并且把它定义为纹理单元:
void glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat,
GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
//纹理数组是从屏幕对齐的像素矩形读取的,它的左下角是(x, y)表示的坐标
查询纹理状态变量的值:
void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
//params参数中,返回一个特定细节层的纹理参数值,这个细节层由level参数指定;
//target参数定义了目标纹理
定义一个二维纹理图像,替换当前一副现有的二维图像的全部或一块连续的区域:
glTexSubImage2D(GL_TEXTURE_2D, 0, 12, 44, subImageWidth,
subImageHeight, GL_RGBA,
GL_UNSIGNED_BYTE, subImage);
void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
, GLenum format, GLenum type, const GLvoid *pixels);
//pixels包含了表示子图像的纹理数据
//width和height表示表示子区域的宽度和高度
//xoffset和yoffset表示x和y方向上的纹理单元偏移量