我在 WebGL 项目中使用立方体贴图,我的同事为我提供了标记为前、后、左、右、上和下的面的图像资源。然而Three.js's example code使用标有 2 个字母的图像。 p 或 n 后跟 x、y 或 z。
经过一些尝试和错误,我相应地制定了我同事的 Assets 图:
- px = 左
- nx = 右
- py = 顶部
- ny = 底部
- pz = 返回
- nz = 前面
所以看一下,很明显 x、y 和 z 指的是轴,但 p 和 n 就不那么明显了。我当时的想法是正和负,但是当你观察传统上显示为从左到右递增的x轴时,这个理论就站不住脚了。 z 轴让我头疼,因为我不知道随着 z 值的增加,我是否会期望物体靠近我还是远离我。本能说更接近。
我的逻辑思维认为这是对“日常”语言更合适的翻译:
- px = 右
- nx = 左
- py = 顶部
- ny = 底部
- pz = 前面
- nz = 返回
我的同事是否提供了一组非标准 Assets ?这就是我们在 3D 建模中不使用日常语言(左、右、上等)的确切原因吗?我应该要求他们提供标记为 px、nx、py 等的文件吗?
经验丰富的专家提供一些指导将不胜感激。
最佳答案
按照惯例——可能基于 1990 年代的 RenderMan 规范——立方体贴图由 WebGL(和 Three.js)在坐标系中指定,在该坐标系中,当查找正 z 时,正 x 位于右侧axis——换句话说,在左手坐标系中。通过继续此约定,预先存在的立方体贴图将继续正确渲染。
two.js 使用右手坐标系。因此, Three.js 中使用的环境贴图似乎交换了 px
和 nx
。 (每个 Three.js 立方体贴图示例都是这种情况。)
三.js r.87
关于3d - 为什么立方体贴图的面标记为 px、nx、py、ny、pz、nz?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998274/