0

我希望在立方体上绑定纹理(使用 GlutSolidCube 而不是 glvertex 创建立方体),但整个纹理都已绑定。在图像文件中,我将所有纹理放在一起(为了速度并且因为老师要求),我只希望绑定部分纹理。我怎样才能做到这一点????

4

2 回答 2

4

纹理是纹理绑定的单位。如果你想“切掉”纹理的一部分,你可以通过调整你使用的纹理坐标来实现。

不要使用完整的 0..1 范围,而是使用与纹理内的子纹理位置匹配的较小值。

于 2012-10-29T12:12:24.717 回答
1

您要执行的操作是不可能的,因为glutSolidCube不会生成纹理坐标

但是,您还会注意到该问题的答案表明您可以使用以下命令让 OpenGL 在调用时为您生成纹理坐标glutSolidCube

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);

有关使用 OpenGL 的自动纹理坐标生成的更多信息,请参见此处。但是,我想指出,这似乎来自即时模式 OpenGL 的时代,它已被弃用。此外,不再维护 GLUT,但freeglut是。

总而言之,您最好使用glVertex调用并指定您自己的特定纹理坐标,正如 unwind 所建议的那样。您可以尝试 OpenGL 的纹理坐标生成,但它可能过于严格,无法处理您需要的内容。

于 2012-10-29T21:31:31.117 回答