opengl - OpenGL立方体贴图中的面约定

标签 opengl 3d geometry glsl

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/

相关文章:

graphics - 在体素上渲染 3D 形状

c - VBO究竟如何保存其内容?

java - OpenGL:设置文本颜色?

algorithm - 最大线性维度 2d 点集

geometry - 给定一个多边形和一个二维点,如何找到最接近该点的多边形的特征(顶点或边)?

android - 为什么绘制我的 OpenGL-ES VBO 网格会阻止显示其他三角形?

c++ - 像真正的风力涡轮机一样旋转物体

opengl - 现代图形管道有多少帧深?

python - 测地线上的点

iphone - OpenGL ES 和现实世界的开发