如何绑定纹理openGL的一部分

how to bind part of the texture opengl

本文关键字:纹理 openGL 一部分 绑定 何绑定      更新时间:2023-10-16

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

纹理是纹理绑定的单位。如果您想"切出"纹理的一部分,则可以通过调整使用的纹理坐标来做到这一点。

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

您想要做的是不可能的,因为glutSolidCube不会生成纹理坐标。

但是,您还将注意到该问题的答案表明您可以使用以下内容使OpenGL生成纹理坐标,以便您在glutSolidCube

的电话中为您生成纹理坐标。
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);

此处提供了有关使用OpenGL自动纹理坐标生成的更多信息。但是,我想指出的是,这似乎是在即时模式OpenGL的日子中出现的,这是不推荐使用的。另外,不再维护插口,但是freeglut是。

总而言之,您最好使用glVertex调用并指定自己的特定纹理坐标,如Undind所建议的那样。您可以尝试OpenGL的纹理坐标生成,但是它可能太严格了,无法处理所需的东西。