Three.js: ¿Cuál es la convención de mano de mapa normal de three.js?

Creado en 11 may. 2017  ·  3Comentarios  ·  Fuente: mrdoob/three.js

Puede ser útil tener esto documentado. @emackey señaló un problema con GLTF2Loader (https://github.com/donmccurdy/three-gltf-viewer/issues/10) y la inversión normal del mapa parece ser la responsable. Para comparacion:

BabylonJS: eje x = izquierda, eje y = abajo
OpenGL: eje x = derecha, eje y = arriba
DirectX: eje x = derecha, eje y = abajo

Question

Comentario más útil

Las respuestas han sido resueltas por @donmccurdy aquí: https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

Ojalá esté resumiendo correctamente:

  • El mapa manual normal predeterminado de ThreeJS es OpenGL, diestro, igual que glTF.
  • El origen UV predeterminado de ThreeJS es inferior izquierda, opuesto al origen UV superior izquierdo de glTF.
  • Como resultado, GLTFLoader debe voltear los rayos UV y luego voltear la mano normal para compensar.

Todos 3 comentarios

¿Ha habido avances en esto?

En mis propios proyectos, estoy arreglando esto manualmente configurando:

    material.normalScale.x = -1;

No he escuchado nada. Sería bueno saberlo, pero me inclino a invertir normalScale.x si eso funciona correctamente con los modelos de muestra.

Las respuestas han sido resueltas por @donmccurdy aquí: https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

Ojalá esté resumiendo correctamente:

  • El mapa manual normal predeterminado de ThreeJS es OpenGL, diestro, igual que glTF.
  • El origen UV predeterminado de ThreeJS es inferior izquierda, opuesto al origen UV superior izquierdo de glTF.
  • Como resultado, GLTFLoader debe voltear los rayos UV y luego voltear la mano normal para compensar.
¿Fue útil esta página
0 / 5 - 0 calificaciones