我这样定义纹理坐标问题出在哪里?
我绘制了一个四面体,并且想在四面体的每个面上贴上纹理,我的做法是:给四面体的四个顶点分别赋予纹理坐标。然后按照每个纹理坐标绘制三角面片。代码如下。p0,p1,p2,p3分别代表顶点坐标,他们的纹理坐标分别是(0,0),(1,0),(0.96,1),(0.38,0.266);但我出来的效果图确出现了问题,四面体的某些面出现了相同的图形。并且有一个面的纹理图像出现了模糊不清(可能是扭曲)。请各位大侠指点。谢谢
glColor3f(1.0,1.0,0.0);
glBegin(GL_TRIANGLES);
glTexCoord2f(0.0,0.0);
glVertex3f(p0.x,p0.y,p0.z);
glTexCoord2f(0.96,1.0);
glVertex3f(p2.x,p2.y,p2.z);
glTexCoord2f(1.0,0.0);
glVertex3f(p1.x,p1.y,p1.z);
glEnd();
//second p0,p1,p3
glColor3f(1.0,0.0,0.0);
glBegin(GL_TRIANGLES);
glTexCoord2f(0.0,0.0);
glVertex3f(p0.x,p0.y,p0.z);
glTexCoord2f(1.0,0.0);
glVertex3f(p1.x,p1.y,p1.z);
glTexCoord2f(0.38,0.266);
glVertex3f(p3.x,p3.y,p3.z);
glEnd();
//third p3,p2,p0
glColor3f(0.0,1.0,0.0);
glBegin(GL_TRIANGLES);
glTexCoord2f(0.38,0.266);
glVertex3f(p3.x,p3.y,p3.z);
glTexCoord2f(0.96,1.0);
glVertex3f(p2.x,p2.y,p2.z);
glTexCoord2f(0.0,0.0);
glVertex3f(p0.x,p0.y,p0.z);
glEnd();
//forth
glColor3f(0.0,1.0,1.0);
glBegin(GL_TRIANGLES);
glTexCoord2f(0.96,1.0);
glVertex3f(p2.x,p2.y,p2.z);
glTexCoord2f(0.38,0.266);
glVertex3f(p3.x,p3.y,p3.z);
glTexCoord2f(1.0,0.0);
glVertex3f(p1.x,p1.y,p1.z);
glEnd();