OpenGL对于立方体贴图遵循的约定是什么?
我遵循了这个约定(可在网站上找到),并使用对应的GLenum指定6个面GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT
,但我总是得到错误的Y,因此我必须将Y面反转为N面。为什么?
________
| |
| pos y |
| |
_______|________|_________________
| | | | |
| neg x | pos z | pos x | neg z |
| | | | |
|_______|________|________|________|
| |
| |
| neg y |
|________|
最佳答案
但是我总是错Y,所以我必须用负Y面反转正Y。为什么?
嗯,是的,这是关于多维数据集贴图的最奇怪的事情之一。请放心,您不是唯一一个喜欢它的人。你看:
已指定多维数据集贴图遵循RenderMan规范(无论出于何种原因),并且RenderMan假定图像的原点位于左上角,这与通常的OpenGL行为相反,即图像原点位于左下角。这就是为什么事物会沿Y方向交换的原因。它完全打破了通常的OpenGL语义,完全没有意义。但是现在我们坚持下去了。
请注意,左上与左下是在从模型空间到NDC空间的身份转换的上下文中定义的
关于opengl - OpenGL立方体贴图中的面约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11685608/