使用标准多边形方法将纹理映射到OpenGL中的曲面时,您可以执行以下操作:
size = 10
glBegin(GL_POLYGON)
glNormal3f(0.0, 0.0,-1.0)
glTexCoord2f(0.0, 0.0); glVertex3f(0.0, 0.0, 0.0);
glTexCoord2f(size, 0.0); glVertex3f(0.0, size, 0.0);
glTexCoord2f(size, size); glVertex3f(0.0, size, size);
glTexCoord2f(0.0, size); glVertex3f(0.0, 0.0, size);
glEnd()
但是,我使用tesselation渲染表面,所以我的代码如下所示:
gluTessBeginPolygon(self.tessellator, None)
gluTessBeginContour(self.tessellator)
for vertex in vertices:
gluTessVertex(self.tessellator, vertex, vertex)
gluTessEndContour(self.tessellator)
gluTessEndPolygon(self.tessellator)
gluTess
是否有可用于指定纹理坐标的函数,例如可用于不使用tesselation的多边形的glTexCoord2f
函数?
如果没有指定纹理坐标,似乎选择纹理的第一个像素的颜色然后显示在整个表面上,而不是实际显示纹理。