我在WebGL项目中使用立方体贴图,我的同事为我提供了标记为正面,背面,左面,右面,顶部和底部的面部的图像资源。但是Three.js's example code使用标有2个字母的图片。 p 或 n 后跟 x,y 或 z 。
经过一些反复试验,我相应地制定了我同事的资产地图:
所以看一下,很明显x,y和z指的是轴,但p和n并不那么明显。我在考虑正面和否定,但是当你看到传统上显示为从左到右增加的x轴时,这个理论就会失败。 z轴让我的头部受伤,因为我不知道当z的值增加时,我是否希望物体靠近我或更远。本能说得更近了。
我的痴迷逻辑方面认为这是对“日常”语言的更恰当的翻译:
我的同事是否提供了一套非标准的资产?这是我们在3D建模中不使用日常语言(左,右,顶等)的确切原因吗?我应该要求他们提供标有px,nx,py等的标签吗?
经验丰富的专家的一些指导将不胜感激。
答案 0 :(得分:5)
按照惯例 - 可能基于1990年代的RenderMan规范 - 立方体贴图由WebGL(和three.js)在坐标系中指定,其中正向x在向右查找时正z轴 - 换句话说,在左手坐标系中。通过继续此约定,预先存在的立方体贴图继续正确呈现。
three.js使用右手坐标系。因此,three.js中使用的环境贴图似乎已交换px
和nx
。 (每个three.js立方体贴图示例都是这种情况。)
three.js r.87