纹理使用六步囊:
1. 分配编号,纹理编号,创建纹理对象。 glGenTextures
2. 预创建纹理对象,程序中要使用的纹理对象。glBindTexture。OpenGL中有一维,二维,三维纹理等纹理类型,使用纹理的时候,需要指定纹理类型,以及该类型对应的纹理对像
3. 设置纹理对象参数,设置纹理参数。GlTextParameter/ glTextEnv
4. 载入图片,纹理图片。glTextImage2D.
5. 选择纹理对象,所要使用的纹理对象,glBindTexture。
6. 开始画。glTextCoords
纹理也有自己的坐标体系。glMatrixMode(GL_TEXTURE),切换到纹理矩阵,进行各种变换
纹理对象就是缓存机制,先创建数个纹理对象,在使用的时候指定要使用的对象。好处就是:避免运行时载入纹理,加快运行速度。
GLuint texture_ID;
glGenTextures(1, &texture_ID); // 分配一个纹理对象的编号
或者:
GLuint texture_ID_list[5];
glGenTextures(5, texture_ID_list); // 分配5个纹理对象的编号
纹理对象在使用时,使用glBindTexture选择某个纹理,如果不使用该函数,OpenGL某人使用编号为0的纹理对象。一切操作都在编号为0的对象上使用,在使用glGenTexture的时候,一般是不会返回为0编号的对象的,就如所述,因为那时默认会被使用的对象。
注意纹理图片的宽度和高度,目前很多OpenGL的实现都还要求其值为2的整数次方,如果纹理图象本身并不满足这个条件,可以使用gluScaleImage函数来进行缩放。为了正确的使用纹理,需要设置纹理参数。
1. 分配编号,纹理编号,创建纹理对象。 glGenTextures
2. 预创建纹理对象,程序中要使用的纹理对象。glBindTexture。OpenGL中有一维,二维,三维纹理等纹理类型,使用纹理的时候,需要指定纹理类型,以及该类型对应的纹理对像
3. 设置纹理对象参数,设置纹理参数。GlTextParameter/ glTextEnv
4. 载入图片,纹理图片。glTextImage2D.
5. 选择纹理对象,所要使用的纹理对象,glBindTexture。
6. 开始画。glTextCoords
纹理也有自己的坐标体系。glMatrixMode(GL_TEXTURE),切换到纹理矩阵,进行各种变换
纹理对象就是缓存机制,先创建数个纹理对象,在使用的时候指定要使用的对象。好处就是:避免运行时载入纹理,加快运行速度。
GLuint texture_ID;
glGenTextures(1, &texture_ID); // 分配一个纹理对象的编号
或者:
GLuint texture_ID_list[5];
glGenTextures(5, texture_ID_list); // 分配5个纹理对象的编号
纹理对象在使用时,使用glBindTexture选择某个纹理,如果不使用该函数,OpenGL某人使用编号为0的纹理对象。一切操作都在编号为0的对象上使用,在使用glGenTexture的时候,一般是不会返回为0编号的对象的,就如所述,因为那时默认会被使用的对象。
注意纹理图片的宽度和高度,目前很多OpenGL的实现都还要求其值为2的整数次方,如果纹理图象本身并不满足这个条件,可以使用gluScaleImage函数来进行缩放。为了正确的使用纹理,需要设置纹理参数。