Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.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++ 在OpenGL2.1中,即使在2d空间(具有2d纹理)中使用3D纹理坐标是否安全?_C++_Opengl_Wrapper_Vertex Array - Fatal编程技术网

C++ 在OpenGL2.1中,即使在2d空间(具有2d纹理)中使用3D纹理坐标是否安全?

C++ 在OpenGL2.1中,即使在2d空间(具有2d纹理)中使用3D纹理坐标是否安全?,c++,opengl,wrapper,vertex-array,C++,Opengl,Wrapper,Vertex Array,通过在OpenGL 2.1中将Z值设置为0,可以将3D tex coord函数用于2D纹理吗?是否有我不能用于2D的3D功能?我不能使用2D函数,因为这是用于2D/3D包装的,当两个函数可以一起使用时,尝试猜测用户是否输入2D或3D坐标效率太低。这听起来很有趣,但OpenGL中的所有纹理坐标始终是4D。顶点位置也是如此 为了更好地解释这一点,考虑一个被禁止的函数,如代码> GLTEXCORD2F(…),它自动指定 R > 0 < /强>和 Q>代码> = 1 < /强>。此行为扩展到顶点阵列

通过在OpenGL 2.1中将Z值设置为0,可以将3D tex coord函数用于2D纹理吗?是否有我不能用于2D的3D功能?我不能使用2D函数,因为这是用于2D/3D包装的,当两个函数可以一起使用时,尝试猜测用户是否输入2D或3D坐标效率太低。

这听起来很有趣,但OpenGL中的所有纹理坐标始终是4D。顶点位置也是如此

<>为了更好地解释这一点,考虑一个被禁止的函数,如代码> GLTEXCORD2F(…)<代码>,它自动指定<代码> R<代码> > <强> 0 < /强>和<代码> Q>代码> = <强> 1 < /强>。此行为扩展到顶点阵列,如果您的纹理坐标指针仅提供2个组件,则GL会自动将0.01.0指定给其余2个组件,如上图所示

顺便说一下,我建议您在提到纹理坐标时使用术语
strq
。您可以在着色器中以
xyzw
的形式访问它们,但是(固定函数)管道始终记录为通过
strq
引用它们