【发布时间】:2021-02-14 05:30:41
【问题描述】:
我目前正在尝试从海绵宝宝方裤的房子中创建一个 squidward 模型。
我已经用 GL_TRIANGLE_STRIPs 创建了一个圆柱体,因为我不允许使用任何预定义的 OpenGL 模型来创建形状。
我正在尝试为圆柱体上的每个三角形进行纹理映射,但是纹理被拉伸而不是应该的那样。
这是我的圆柱体代码
glPushMatrix();
glTranslated(xPos, yPos, TABLETOP_Z - cubeLen);
glScaled(cubeLen / 2, cubeLen / 2, 1.0);
glBegin(GL_TRIANGLE_STRIP);
glTexCoord3f(xPos, yPos, TABLETOP_Z);
glTexCoord3f(xPos, yPos, TABLETOP_Z);
for (int i = 0; i <= 32; i++) {
double x_next = 1.0 * cos((i + 1) * 2.0 * PI/ (32 - 2.0));
double y_next = 1.0 * sin((i + 1) * 2.0 * PI / (32 - 2.0));
if (i % 2 == 0) {
glTexCoord3f(x_next, y_next, TABLETOP_Z + cubeLen);
glVertex3f(x_next, y_next, TABLETOP_Z + cubeLen);
} else {
glTexCoord3f(x_next, y_next, TABLETOP_Z);
glVertex3f(x_next, y_next, TABLETOP_Z);
}
}
glEnd();
glPopMatrix();
【问题讨论】: