Tutorial Sistemas de Coordenadas y cámaras en XNA
Hola bueno siguiendo con la introducción a la lógica de los juegos 3D necesitamos saber más de estos. En este post veremos el sistema de coordenadas que usa XNA y la importancia de las cámaras.
Antes de imaginarnos las coordenadas en 3D imaginemos en 2D, que tenemos, pues X y Y, donde podemos ubicar un punto en el espacio digamos en (0,0) o en (10,5) o en (-5,-3) etc. Pues bien ahora que tenemos ese concepto necesitamos saber que para manejar 3D necesitamos una coordenada más la cual es Z la cual punta hacia nosotros en un esquema se verían así
Donde tenemos objetos tridimensionales y Z aumenta hacia nosotros y disminuye cuando se aleja.
Vectores
Para manejar posiciones en XNA usamos vectores, y si usaremos mucho las matemáticas y algo de física aquí, así que si has tomado clases de Calculo Vectorial o aun que sea has visto vectores te va servir mucho. Tendremos vectores de posición de velocidad, de aceleración, etc. Pero no se desanimen solo será lo más básico, como suma de vectores. Para usar vectores en XNA tendremos que usar la Clase Vector3, (si ya llevaste un curso de XNA en 2D veras que también hay Vector2).
El constructor de esta clase recibe, en el caso más común, tres parámetros 3 Flotantes que representan X, Y e Z respectivamente.
Cámara
La cámara es un objeto de vital importancia en el mundo 3D ya que con ella se muestra al usuario un vista 2D del mundo 3D, pero que significa esto. Significa que con la cámara “tomamos” un video del mundo el cual se representa en la pantalla de 2D .
XNA nos provee un método para poder visualizar en nuestra PC o Xbox lo que está capturando una cámara en un momento. El método se llama CreateLookAt que es un miembro estático de la clase Matrix (hablaremos más tarde de esta clase), los parámetros que recibe son: la posición de la cámara, el objetivo de la cámara, y la posición a la cual se requiere como arriba. Para estos tres parámetros utiliza Vectores, por ejemplo se puede enviar siempre el Vector3.Up (que representa un vector que siempre apunta al cielo) para decirle a la cámara donde es arriba.
Además contamos con un método estático para poder lograr perspectivas.
CreatePerspectiveFieldOfView este método recibe como parámetros: campo de visión, relación de aspecto, tope cercano y tope lejano.
Como indica la imagen la cámara necesita capturar los objetos en el mundo. Los topes cercano y lejano sirven para indicar que objetos si van a ser dibujados en la pantalla y cuáles no. Por ejemplo si pusiéramos como valores para tope cercano 100 y lejano 1000 solo los objetos que estén a esta distancia podrán ser mostrados, y si tenemos un objeto a una distancia de 1200 no será mostrado en la pantalla.
Bien ya ha sido mucha teoría para el siguiente post dibujaremos nuestro primer modelo en 3D.
Saludos y no se olviden de comentar.








