Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何绑定opengl中的部分纹理_C++_C_Opengl_Textures - Fatal编程技术网

C++ 如何绑定opengl中的部分纹理

C++ 如何绑定opengl中的部分纹理,c++,c,opengl,textures,C++,C,Opengl,Textures,我希望绑定立方体上的纹理(使用SolidCube而不是glvertex创建立方体),但整个纹理都已绑定。在图像文件中,我把所有的纹理放在一起(为了速度和老师的要求),我只希望绑定部分纹理。我该怎么做 纹理是纹理绑定的单位。如果要“剪切”纹理的一部分,可以通过调整使用的纹理坐标来实现 与其使用0..1的完整范围,不如使用与子纹理在纹理中的位置相匹配的较小值。纹理是纹理绑定的单位。如果要“剪切”纹理的一部分,可以通过调整使用的纹理坐标来实现 与其使用0..1的完整范围,不如使用与子纹理在纹理中的位置

我希望绑定立方体上的纹理(使用SolidCube而不是glvertex创建立方体),但整个纹理都已绑定。在图像文件中,我把所有的纹理放在一起(为了速度和老师的要求),我只希望绑定部分纹理。我该怎么做

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


与其使用0..1的完整范围,不如使用与子纹理在纹理中的位置相匹配的较小值。

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


与其使用0..1的完整范围,不如使用与子纹理在纹理中的位置相匹配的较小值。

您希望执行的操作是不可能的,因为

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

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
有关使用OpenGL的自动纹理坐标生成的更多信息。然而,我想指出的是,这似乎是在即时模式OpenGL的时代出现的,OpenGL已被弃用。此外,过剩不再维持,而是持续存在


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

您希望做的事情是不可能的,因为

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

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
有关使用OpenGL的自动纹理坐标生成的更多信息。然而,我想指出的是,这似乎是在即时模式OpenGL的时代出现的,OpenGL已被弃用。此外,过剩不再维持,而是持续存在


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

我想您理解的问题是错误的。我希望在使用SolidCube创建的对象上绑定纹理。问题是我使用相同的函数创建了一个完整的表。我希望纹理的不同部分被加载到这个立方体和那个立方体上的不同部分。由于我没有使用glvertex函数,我不能使用glTexCoord2d(U,V)加载部分纹理。顺便说一句,它也可以有一个C标记。Opengl可以与C或C++@macrian以及Java、Clojure和Smalltalk一起使用。但这并不意味着你应该为过去15年中使用的每一种语言添加一个标签。他回答了你的问题,调整UV坐标。如果你不能用GeulsCube做这个,不要使用GuangSuthBube。不,添加C作为标签的点是因为C和C++是相似的。非常相似。(我的意思是g++只识别C代码)顺便说一句,因为他的答案不适合我的问题,我不能接受答案。。。。。我的问题需要一个答案,而不是随意的回答。我想你们对这个问题的理解是错误的。我希望在使用SolidCube创建的对象上绑定纹理。问题是我使用相同的函数创建了一个完整的表。我希望纹理的不同部分被加载到这个立方体和那个立方体上的不同部分。由于我没有使用glvertex函数,我不能使用glTexCoord2d(U,V)加载部分纹理。顺便说一句,它也可以有一个C标记。Opengl可以与C或C++@macrian以及Java、Clojure和Smalltalk一起使用。但这并不意味着你应该为过去15年中使用的每一种语言添加一个标签。他回答了你的问题,调整UV坐标。如果你不能用GeulsCube做这个,不要使用GuangSuthBube。不,添加C作为标签的点是因为C和C++是相似的。非常相似。(我的意思是g++只识别C代码)顺便说一句,因为他的答案不适合我的问题,我不能接受答案。。。。。我的问题需要一个答案,而不是随机的。现在这是一个答案,不知道它是否有效,或者你是否正确,这是完全不可能的:P我明天会试试(在我的国家现在是凌晨2点),现在让你知道这是一个答案,不知道它是否有效,或者你是否正确,这完全不可能:P我明天会试试(现在在我的国家是凌晨2点),然后让你知道