- Model: Son las coordenadas en las que se modela el objeto. Por ejemplo, cuando modelamos un objeto siempre lo hacemos cerca del origen (Punto (0,0,0)).
- World: Son las coordenadas del objeto en el mundo. Como mundo podemos entender el sistema de coordenadas de OpenGL. Donde se encuentran todos los demás objetos de la escena.
- View: Son las coordenadas de como se ve el objeto desde una cámara situada en cierto punto.
- ViewPort: Son las coordenadas en 2D del objeto, es decir, se proyecta su forma sobre la pantalla.
Model x A = World (Segunda imagen)Después, aplicamos a esas coordenadas otra transformación con una matriz B, para pasar al sistema de coordenadas de una cámara virtual que enfoca a nuestro objeto:
World x B = View (Tercera imagen)Por último, realizamos una transformación lineal con una matriz C, desde el sistema de coordenadas View a ViewPort. Esto no es más que una proyección de nuestro objeto sobre un plano 2D, que en nuestro caso es la pantalla.
View x C = ViewPort (Cuarta imagen)Así podremos calcular de forma sencilla las coordenadas que ocupa sobre la pantalla nuestro objeto. Pero realizar tres transformaciones por cada punto del modelo es ineficiente y como las transformaciones matriciales se pueden concatenar podemos calcular las coordenadas con una sola transformación.
Como Model x A = World y World x B = View entonces si sustituimos World:
Model x A x B = ViewY como View x C = ViewPort si sustituimos View:
Model x A x B x C = ViewPortSi calculamos la matriz T = A x B x C obtendremos la matriz que realiza la transformación desde Model a ViewPort.
Model x T = ViewPort
No hay comentarios:
Publicar un comentario