T&L, parte 1: Transformaciones y GPU
Transform & Lighting (T&L); esto es lo que hará ahora la flamante tarjeta gráfica que nos hemos comprado por un ojo de la cara y parte del riñón (mucho dinero por dos palabras). La idea es sencilla: liberar al micro del PC de parte del trabajo, que cae en el chip ultra-especializado de la tarjeta gráfica.
Las transformaciones son necesarias porque tenemos un mundo 3D que vive en nuestro disco duro en forma de juego, y del mismo modo que en el planeta Tierra tenemos coordenadas (con su origen 0,0 en el Golfo de África, en mitad del Atlántico), en ese mundo 3D existen coordenadas, con el 0,0 vaya usted a saber dónde.
Pero el problema es que nosotros jugaremos a ese juego, y manejaremos un personaje, y veremos ese mundo desde un "ojo virtual", o cámara, desde donde tendremos otro origen de coordenadas para poder calcular la iluminación (los programas 3D iluminan el mundo 3D lanzando rayos desde nuestro ojo hacia el resto del mundo). Para acabar de arreglarlo, tendremos que ver ese mundo desde nuestra pantalla, que, además de tener otro sistema de coordenadas, resulta que está en 2 dimensiones (al menos hasta que hagan pantallas 3D con hologramas como los de las películas).
Entonces, ¿qué es una transformación? Simplemente esos cambios de coordenadas. Todos los objetos se mueven, cambian de tamaño, giran en cualquier dirección... para calcular la nueva posición de cada punto del objeto se aplica una matriz de transformación al vector de puntos inicial, que da como resultado un vector de puntos final:
Pues si todas esas operaciones (16 multiplicaciones y 12 sumas) ya no las hace nuestro procesador, será todo un desahogo. Bien, con la tecnología T&L ahora tenemos una tarjeta gráfica que hace todo esto, justo lo mismo que intentan mejorar los más recientes micros, los AMD con sus instrucciones 3DNow! o el Pentium III con las SSE.
El hecho de contar ahora con un chip dedicado específicamente a estas tareas (el GeForce, denominado a veces GPU, Graphics Processing Unit) va a permitir aumentar la velocidad conque se realizan estos cálculos, y además podrá dibujar (=calcular) muchos más polígonos. Eso se traduce en una calidad MUY superior de imagen, como podéis observar en estos dibujos:
El "donut" de abajo (un toro, siendo más finos) es claramente mejor que el donut de arriba; si renderizamos y aplicamos texturas, la diferencia se reduce, pero sigue siendo bastante visible. Lo ideal será poder dibujar figuras como la de abajo, pero eso no es tan fácil...
¿Cuánta diferencia cree que hay entre un donut y otro? Hagan sus apuestas... Bien, la respuesta es que el donut de abajo tiene 10 veces más triángulos que el de arriba, apenas 2048 triángulos, y evidentemente nuestro ordenador va a tardar 10 veces más en dibujarlo. Si ese donut es uno de los 4 neumáticos de nuestro coche, y hay varios coches en pantalla, ya podemos tener un micro rápido, una tarjeta gráfica con T&L... o si no, más vale contentarse con el otro donut (por cierto, ahora mismo tengo más hambre que Homer Simpson).