Como funciona el renderizado 3D en Videojuegos (Parte 1)



Hola a todos, si te estas preguntando el porque de este Post supongo que no habréis leido ESTO; seguramente si no conoces los entresijos del renderizado en videojuegos o entornos virtuales, te habrás preguntado alguna vez como se logra y posiblemente hayas llegado a la respuesta correcta si te lo has planteado en serio; mediante matemáticas, y lo se puede ser muy intimidante, sobre todo para aquellos que han estudiado el nivel suficiente como para llegar a las matemáticas duras que dan miedo, pero en realidad es asequible si se va por partes, como decimos los programadores "Divide y Vencerás".

En esta primera parte vamos a olvidarnos en un principio de que existe una tercera dimensión, ya que nuestros cerebros aunque naturalmente procesan en 3 dimensiones, es mas sencillo hacerlo en 2 por que las imágenes que percibimos son siempre en 2 dimensiones.

Vamos a empezar por algo sencillo, esto es un cuadrado, como se puede ver, como todos los cuadrados esta formado por 4 puntos unidos por 4 lineas de la misma longitud:

Diagrama
V1-----------V2
| |
| |
| |
V3-----------V4

Representación
HTML not Work in this Browser

También vamos a ignorar las lineas, estas generalmente se representan en los archivos de modelos 3D como (V1, V2), es decir una pareja de los dos puntos a los que une. Un punto se define por un vector, conjunto de valores numéricos, por ejemplo V1 = (0, 0) siendo V1 un vector bidimensional.

Ahora Imaginemos que queremos mover el cuadrado dos unidades hacia la derecha, si queremos realizar este movimiento de forma matemática, este movimiento se puede traducir como el vector Md=(+2, 0); y como ya habréis podido imaginar este movimiento se realiza sumando, siempre se suma, la posición de cada punto más el vector de movimiento, es decir:

Nuevo_V1 = V1 + Md = (0, 0) + (2, 0) = (2, 0)

Este caso es muy intuitivo, pero se podría decir que sobre el se basan la mayoría de los cambios, ya con estas nociones, algo de ingenio, y unos pocos conocimientos de programación se podrían desarrollar juegos 2D sencillos o efectos interesantes, por ejemplo este:

HTML not Work in this Browser

En el siguiente post, explicaré las transformaciones matriciales, y es aquí cuando las cosas se pueden volver algo complejas, ya que este paso es donde empieza la diferencia entre el renderizado de 2D en 3D, ya que en este post simplemente se ha hecho una introducción al calculo vectorial y a como funciona el movimiento en los videojuegos y otros entornos virtuales.

Comentarios

0 Comentarios ¡Sé el primero!