Three.js: Was ist die normale Konvention für Kartenhändigkeit von three.js?

Erstellt am 11. Mai 2017  ·  3Kommentare  ·  Quelle: mrdoob/three.js

Es kann hilfreich sein, dies dokumentieren zu lassen. @emackey wies auf ein Problem mit GLTF2Loader (https://github.com/donmccurdy/three-gltf-viewer/issues/10) hin und die normale Karteninversion scheint dafür verantwortlich zu sein. Zum Vergleich:

BabylonJS: x-Achse = links, y-Achse = unten
OpenGL: x-Achse = rechts, y-Achse = oben
DirectX: x-Achse = rechts, y-Achse = unten

Question

Hilfreichster Kommentar

Die Antworten wurden von @WestLangley und @donmccurdy hier https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

Hoffentlich fasse ich richtig zusammen:

  • Die Standard-Normal-Map-Händigkeit von ThreeJS ist OpenGL, rechtshändig, genau wie glTF.
  • Der standardmäßige UV-Ursprung von ThreeJS ist unten links, im Gegensatz zum oberen linken UV-Ursprung von glTF.
  • Infolgedessen muss der GLTFLoader die UVs und dann die normale Händigkeit umdrehen, um dies zu kompensieren.

Alle 3 Kommentare

Hat diesbezüglich Fortschritte erzielt?

In meinen eigenen Projekten behebe ich dies manuell, indem ich

    material.normalScale.x = -1;

Ich habe nichts gehört Es wäre schön zu wissen, aber ich neige dazu, normalScale.x einfach umzudrehen, wenn das mit den Beispielmodellen richtig funktioniert.

Die Antworten wurden von @WestLangley und @donmccurdy hier https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

Hoffentlich fasse ich richtig zusammen:

  • Die Standard-Normal-Map-Händigkeit von ThreeJS ist OpenGL, rechtshändig, genau wie glTF.
  • Der standardmäßige UV-Ursprung von ThreeJS ist unten links, im Gegensatz zum oberen linken UV-Ursprung von glTF.
  • Infolgedessen muss der GLTFLoader die UVs und dann die normale Händigkeit umdrehen, um dies zu kompensieren.
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen