设置纹理对象内容
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // 设置纹理过滤方式
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // 设置纹理过滤方式
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // 设置纹理过滤方式
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); // 设置纹理过滤方式
// 同上,初始化纹理
glBindTexture(GL_TEXTURE_2D, Tname1);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, T1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
// 同上,初始化纹理
glBindTexture(GL_TEXTURE_2D, Tname2);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, T2);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt((GLfloat)X, (GLfloat)Y, (GLfloat)Z, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); // 视图变
换
// 激活纹理对象
glActiveTextureARB (GL_TEXTURE0_ARB); // 选中号纹理
glEnable(GL_TEXTURE_2D); // 使纹理可用
glBindTexture(GL_TEXTURE_2D, Tname0); // 激活纹理
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); // 设置纹理贴图方式
// 绘制正方形
glBegin(GL_QUADS);
glMultiTexCoord2fARB (GL_TEXTURE0_ARB, 0.0, 0.0);
glVertex3f(-4.0, 1.5, 0.0);
glMultiTexCoord2fARB (GL_TEXTURE0_ARB, 0.0, 1.0);
glVertex3f(-4.0, 3.5, 0.0);
glMultiTexCoord2fARB (GL_TEXTURE0_ARB, 1.0, 1.0);
glVertex3f(-2.0, 3.5, 0.0);