Esto es lo que mi profesor me dijo en el curso:
Solo consideramos 4 * 4 matrices. Estos se utilizan para rotar, escalar o traducir objetos (o cualquier combinación de estas operaciones). Las matrices también se usan más adelante en la implementación del modelo de cámara virtual. Si no conoce la diferencia entre una transformación de vector y una transformación de punto, búsquela.
Parece que no puedo encontrar una respuesta e hice una cuenta para este sitio web solo por esta pregunta.
Respuestas:
Aquí está la respuesta simple.
En 4D, para poder multiplicarlos por una matriz 4x4, los vectores se representan como (x, y, z, 0) y los puntos se representan como (x, y, z, 1).
Dado que la cuarta fila de una matriz 4x4 representa la traducción de la matriz, las representaciones anteriores hacen que los puntos se vean afectados por la traducción, pero los vectores no.
Sin embargo, tanto los vectores como los puntos se ven afectados por la rotación, el escalado, etc.
Consideración:
Hay una discusión más profunda si espera que los vectores tengan ciertas propiedades. Por ejemplo, si transforma la normalidad de un triángulo por la misma matriz que transforma los vértices del triángulo, probablemente ya no será el vector normal de ese triángulo. Esto se debe a que los vectores normales tienen una especie de relación inversa con los vértices a partir de los cuales se calculan.
fuente
Ahora la pregunta es: ¿cómo pasamos de un sistema de coordenadas 3D a uno 4D ? La respuesta es " coordenadas homogéneas ".
¿Cómo lo hacemos?
Distinguimos entre vectores de dirección y posición . Los vectores de dirección, como su nombre indica, tienen una dirección a la que apuntan; También nos importa su longitud, pero no se ven afectados por las traducciones, ya que no nos importa su posición. Los vectores de posición (o simplemente "puntos") se pueden traducir o mover; generalmente se representan con respecto al origen, es decir, como un vector desde el origen hasta el punto mismo.
fuente
Si busca la definición de un vector y un punto, entonces un vector es:
Y un punto es:
Entonces se podría decir que un vector es una dirección con escala, y un punto es una ubicación.
Entonces, si transforma un vector, simplemente gira y escala. Con un punto también lo traduce (la rotación y escala de un punto está alrededor del origen, ya que es solo una ubicación, el punto en sí no puede rotarse).
La mayoría de las veces un vector y un punto se colocan en el mismo contenedor, un vector con 4 componentes. La única diferencia es el componente w. Si el componente w es 0, entonces es una dirección. Si es 1, entonces el vector es un punto.
La razón de esto se puede encontrar en la matriz misma. Utiliza la forma en que multiplicas un vector con 4 componentes con una matriz 4x4. Si no sabe cómo funciona, sugeriría un google rápido.
Como puede ver, si el último componente es 0, entonces tiene una multiplicación con 0 y, por lo tanto, el resultado es 0 y no hay traducción.
Esto lo hace fácil en gráficos de computadora con objetos poligonales. Tiene la misma matriz de transformación para transformar las posiciones pero también las normales. Debido a que las normales tienen su componente w establecido en 0 y la posición 'componente w es 1, las normales simplemente se giran (y también se escalan, lo que puede conducir a algunas cosas extrañas, por lo que la mayoría de las veces la normalidad se normaliza después. No es' ¡Realmente recomiendo usar la misma matriz para posiciones y rotaciones debido a las cosas raras! Mire el comentario de @JarkkoL.) y las posiciones se traducen (y giran y escalan alrededor del origen).
Espero no haber cometido un error: P, ¡y esto te ayudó!
fuente