使用GLU中的细分指定纹理坐标

2024-09-30 16:36:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在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()

但是,我正在使用细分来渲染曲面,因此我的代码如下所示:

gluTessBeginPolygon(self.tessellator, None)
gluTessBeginContour(self.tessellator)

for vertex in vertices:
    gluTessVertex(self.tessellator, vertex, vertex)

gluTessEndContour(self.tessellator)
gluTessEndPolygon(self.tessellator)

有没有一个gluTess函数可以用来指定纹理坐标,比如glTexCoord2f函数可以用于不使用细分的多边形?你知道吗

在不指定纹理坐标的情况下,似乎选择了纹理的第一个像素的颜色,然后在整个曲面上显示,而不是实际显示纹理。你知道吗


Tags: 方法函数self标准size多边形opengl细分