如何绑定纹理opengl的一部分

时间:2012-10-29 12:02:26

标签: c++ c opengl textures

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

您不希望做什么,因为glutSolidCube does not generate texture coordinates

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

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);

有关使用OpenGL自动纹理坐标生成的更多信息可用here。但是,我想要注意的是,这似乎是在即时模式OpenGL的时代出现的,它已被弃用。此外,不再维护GLUT,但freeglut是。

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