1.图像存储空间计算?
图像存储空间=图片width图片height每个像素的字节数
RGB需要一个字节即8位。
2.宽度199像素点,图片每行需要多少存储空间?
199*3= 597B
3.后缀.tga是OpenGL纹理文件,而png,JPG属于压缩图片。
4.如何使用纹理呢?
//1.读取文件
void glReadPixels(GLint x,GLint y,GLSizei width,GLSizei height, GLenu
m format, GLenum type,const void * pixels);
//2.载入纹理
void glTexImage2D(GLenum target,GLint level,GLint internalformat,GLsi
zei width,GLsizei height,GLint border,GLenum format,GLenum type,void
- data);
//3.分配纹理对象
指定纹理对象的数量和指针:指针指向一个无符号整形数组,由纹理对象标识符填充
void glGenTextures(GLsizei n,GLuint * textTures);
//4.绑定纹理对象 GL_TEXTURE_1D、GL_TEXTURE_2D、GL_TEXTURE_3D
需要绑定的
void glBindTexture(GLenum target,GLunit texture);
//5.删除绑定纹理对象
void glDeleteTextures(GLsizei n,GLuint *textures);
//6.测试纹理对象是否有效
GLboolean glIsTexture(GLuint texture);
//7.设置纹理的相关参数
放大缩小邻近线性过滤
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
纹理缩小时一般使用邻近过滤(出现小正方形但清晰)
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
纹理放大时一般使用线性过滤(无小正方形但模糊)
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
设置x轴y轴环绕方式
//x,y,z,w
//s,t,r,q
glTextParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAR_S,GL_CLAMP_TO_EDGE);
glTextParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAR_T,GL_CLAMP_TO_EDGE);
网友评论