Three.js: Что такое соглашение о ручности карты нормалей в three.js?

Созданный на 11 мая 2017  ·  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://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

Надеюсь, я правильно резюмирую:

  • По умолчанию для карты нормалей в ThreeJS используется OpenGL, правша, такая же, как у glTF.
  • Исходная точка UV по умолчанию для ThreeJS находится в левом нижнем углу, напротив левой верхней точки начала координат glTF.
  • В результате GLTFLoader должен перевернуть UV, а затем перевернуть нормальную ручку для компенсации.

Все 3 Комментарий

Есть ли в этом прогресс?

В своих проектах я исправляю это вручную , установив:

    material.normalScale.x = -1;

Я ничего не слышал. Было бы неплохо узнать, но я склонен просто перевернуть normalScale.x если это правильно работает с образцами моделей.

Ответы были разработаны @WestLangley и @donmccurdy здесь: https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

Надеюсь, я правильно резюмирую:

  • По умолчанию для карты нормалей в ThreeJS используется OpenGL, правша, такая же, как у glTF.
  • Исходная точка UV по умолчанию для ThreeJS находится в левом нижнем углу, напротив левой верхней точки начала координат glTF.
  • В результате GLTFLoader должен перевернуть UV, а затем перевернуть нормальную ручку для компенсации.
Была ли эта страница полезной?
0 / 5 - 0 рейтинги