Unity y sistema de coordenadas 3D y comparación con ue

sistema de coordenadas 3d

Tanto unity como ue usan el sistema de coordenadas para zurdos
Insertar descripción de la imagen aquí
. En el software 3D, la mayoría del software usa rojo para representar el eje x, verde para representar el eje y y azul para representar el eje z.
La diferencia es :
en Unity, el eje X representa la derecha, el eje Y representa la parte superior y el eje Z representa el frente;
en ue, el eje X representa el frente, el eje Y representa la derecha , y el eje Z representa la parte superior;
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Mover, rotar, hacer zoom

Escalado : escalado según uno mismo, no afectado por el sistema de coordenadas
(el movimiento y la rotación se dividen en dos tipos: basado en el sistema de coordenadas mundial y el propio sistema de coordenadas)

Movimiento : generalmente se repite en cada cuadro en el método update(), que puede ser implementado tanto por las clases Vector3 como Transform. Transform gira alrededor de su propio sistema de coordenadas y Vector3 gira alrededor del sistema de coordenadas mundial (global). Cuando el sistema de coordenadas propio y el sistema de coordenadas mundial coinciden, los dos métodos tienen el mismo efecto.

Rotación : Unity utiliza la representación de cuaterniones internamente .

Los cuaterniones muestran valores de ángulos de Euler equivalentes en el Inspector para facilitar la edición. Los cuaterniones se pueden utilizar para representar la orientación o rotación de los objetos del juego. Esta representación consta internamente de cuatro números (llamados x, y, z y w en Unity), pero estos números no representan ángulos ni ejes y, por lo general, no es necesario acceder a ellos directamente. A menos que desee profundizar particularmente en las matemáticas de los cuaterniones, solo necesita saber que los cuaterniones representan rotaciones en el espacio 3D. Por lo general, no necesita conocer ni modificar las propiedades x, y y z.
De la misma manera que los vectores pueden representar posición u orientación (dirección medida desde el origen), los cuaterniones pueden representar dirección o rotación: rotación medida desde el "origen" o "Identidad" de la rotación. Debido a la forma en que se mide la rotación (de una dirección a otra), los cuaterniones no pueden representar rotaciones más allá de 180 grados.
Ventajas: La rotación del cuaternión no se ve afectada por el bloqueo del cardán.
Limitaciones: un solo cuaternión no puede representar rotaciones superiores a 180 grados en ninguna dirección.
Limitaciones: las representaciones numéricas de cuaterniones son difíciles de entender intuitivamente.

Ventajas de los ángulos de Euler
: Los ángulos de Euler tienen un formato "legible" intuitivo y constan de tres ángulos.
Ventajas: Los ángulos de Euler pueden representar rotaciones de una dirección a otra a través de un giro mayor a 180 grados
Limitaciones: Los ángulos de Euler se ven afectados por el Gimbal Lock. Cuando se aplican tres rotaciones secuencialmente, la primera o segunda rotación puede hacer que el tercer eje se oriente en la misma dirección que uno de los dos ejes anteriores. Esto significa que se han perdido "grados de libertad" ya que no se puede aplicar un tercer valor de rotación alrededor de un único eje.

https://docs.unity.cn/cn/2019.4/Manual/QuaternionAndEulerRotationsInUnity.html

Comprensión personal: debido a que la rotación de los ángulos de Euler se lleva a cabo en un orden determinado, es un proceso en lugar de mirar los resultados directamente. Durante el proceso de rotación, el eje exterior impulsa el eje interior para que gire juntos, pero el eje interior no puede impulsar el eje exterior para que gire. Por lo tanto, cuando el eje intermedio gira a 90 grados, el eje más exterior y el eje más interior serán coplanares, Provocando un punto muerto. Pérdida de libertad. Este defecto surge de la definición de los propios ángulos de Euler. Así que no queda otra solución que evitarlo en la medida de lo posible. Por ejemplo, al girar una cámara en Unity, normalmente realiza crucero (rotación a lo largo del eje y), cabeceo (rotación a lo largo del eje x) y alabeo (rotación a lo largo del eje z) con la frecuencia más baja, por lo que la El eje z se utiliza como eje intermedio. Para resolver completamente este problema, utilice cuaterniones.
Al revisar la información, descubrí que la mayoría de los artículos utilizan un marco de equilibrio para ilustrar el fenómeno coplanar de que el eje interior no puede hacer girar el eje exterior. Sin embargo, cuando se opera en software de ingeniería real, se descubre que no importa cómo girar o qué eje se gira, los tres ejes cambiarán al mismo tiempo, así que supongo que esencialmente este software usa cuaterniones para la rotación interna, y es más intuitivo usar ángulos de Euler para la representación. Y usar cuaterniones también es más fácil de interpolar.

Supongo que te gusta

Origin blog.csdn.net/weixin_48251552/article/details/129066439
Recomendado
Clasificación