为什么立方体贴图的面标有px,nx,py,ny,pz,nz?

Mar*_*ner 3 3d webgl three.js

我在WebGL项目中使用立方体贴图,我的同事为我提供了标记为正面,背面,左面,右面,顶部和底部的面部的图像资源.但是,Three.js的示例代码使用标有2个字母的图像.pn后跟x,yz.

经过一些反复试验,我相应地制定了我同事的资产地图:

  • px =左
  • nx =对
  • py =顶部
  • ny = bottom
  • pz =回来
  • nz =前面

所以看一下,显然x,y和z指的是轴,但p和n并不那么明显.我正在思考正面负面,但当你看到传统上显示为从左到右增加的x轴时,理论就会失败.z轴让我的头部受伤,因为我不知道当z的值增加时,我是否希望物体靠近我或更远.本能说得更近了.

我的痴迷逻辑方面认为这是对"日常"语言的更合适的翻译:

  • px =对
  • nx =左
  • py =顶部
  • ny = bottom
  • pz =前面
  • nz =回来

我的同事提供了一套非标准的资产吗?这是我们在3D建模中不使用日常语言(左,右,顶等)的确切原因吗?我应该要求他们提供标有px,nx,py等的标签吗?

经验丰富的专家将给予一些指导.

Wes*_*ley 5

按照惯例 - 可能是基于从1990年代的RenderMan规范 - 立方体贴图采用WebGL(和three.js所)在坐标系中指定其中正x为仰视当正-Z轴向右 - 换句话说,在左手坐标系中.通过继续此约定,预先存在的立方体贴图继续正确呈现.

three.js使用右手坐标系.在three.js所使用,因此环境贴图看起来有pxnx交换.(每个three.js立方体贴图示例都是这种情况.)

three.js r.87