|
|
以下的代码能产生期望的输出:
glBegin(GL_QUADS);
glTexCoord3f(0,0,1);glVertex4f(-0.5,-0.5,0.5,1.0);
glTexCoord3f(0,1.0,1);glVertex4f(0.5,-0.5,0.5,1.0);
glTexCoord3f(1.0,1.0,1);glVertex4f(0.5,0.5,0.5,1.0);
glTexCoord3f(1.0,0,1);glVertex4f(-0.5,0.5,0.5,1.0);
glEnd();
但换成以下这段利用纹理坐标自动产生的代码却不能产生期望输出
static GLfloat sCoeff[] = {0.0, 1.0, 0.0, 0.5};
static GLfloat tCoeff[] = {1.0, 0.0, 0.0, 0.5};
static GLfloat rCoeff[] = {0.0, 0.0, 1.0, 0.5};
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glEnable(GL_TEXTURE_GEN_R);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGenfv(GL_S, GL_OBJECT_PLANE, sCoeff);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGenfv(GL_T, GL_OBJECT_PLANE, tCoeff);
glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGenfv(GL_R, GL_OBJECT_PLANE, rCoeff);
glBegin(GL_QUADS);
glVertex4f(-0.5,-0.5,0.5,1.0);
glVertex4f(0.5,-0.5,0.5,1.0);
glVertex4f(0.5,0.5, 0.5,1.0);
glVertex4f(-0.5,0.5,0.5,1.0);
glEnd();
但自动纹理坐标发生机制应为四边形的四个顶点产生如第一段代码一样的纹理坐标,但输出却不一样,那位能告诉我为什么。 有办法查看到这四个顶点世纪产生的纹理坐标吗?谢谢
|
|