Three.js: three.js的法线贴图习惯是什么?

创建于 2017-05-11  ·  3评论  ·  资料来源: mrdoob/three.js

对此进行记录可能会有所帮助。 @emackey指出了GLTF2Loader(https://github.com/donmccurdy/three-gltf-viewer/issues/10)的问题,法线图反转似乎是造成该问题的原因。 为了进行比较:

BabylonJS:x 轴 = 左,y 轴 = 下
OpenGL:x轴=右,y轴=上
DirectX:x轴=右,y轴=向下

Question

最有用的评论

答案已经由@WestLangley@donmccurdy在这里解决: https :

希望我能正确总结一下:

  • ThreeJS的默认法线贴图习惯是OpenGL(右手使用),与glTF相同。
  • ThreeJS 的默认 UV 原点在左下角,与 glTF 的左上角 UV 原点相反。
  • 结果,GLTFLoader必须翻转UV,然后翻转正常的惯用性进行补偿。

所有3条评论

在这方面有进展吗?

在我自己的项目中,我通过设置手动修复此问题

    material.normalScale.x = -1;

我什么都没听到。 知道这很高兴,但是我倾向于只翻转normalScale.x如果它可以与示例模型一起正常使用)。

答案已经由@WestLangley@donmccurdy在这里解决: https :

希望我能正确总结一下:

  • ThreeJS的默认法线贴图习惯是OpenGL(右手使用),与glTF相同。
  • ThreeJS 的默认 UV 原点在左下角,与 glTF 的左上角 UV 原点相反。
  • 结果,GLTFLoader必须翻转UV,然后翻转正常的惯用性进行补偿。
此页面是否有帮助?
0 / 5 - 0 等级