viernes, 23 de noviembre de 2007

Placas 3D. Que son y para que sirven.

Las aplicaciones gráficas fueron aumentando su complejidad en los últimos años. Debido a los avances en calidad grafica y efectos se torno en una tarea imposible de realizar para la CPU. En un inicio aparecieron aplicaciones que necesitaban de un coprocesador matemático, el cual posteriormente fue incluido en la CPU. Y con su constante evolución comenzaron a requerir hardware específico para realizar de forma más eficiente las operaciones necesarias de composición de imágenes, las cuales podemos apreciar cada vez que ejecutamos un juego.

3D Básico

¿Cómo se hace para visualizar objetos 3D en una pantalla bidimensional?
La forma es mediante una ilusión óptica, es un simple engaño a nuestros ojos para que nuestro cerebro interprete que lo que vemos es un objeto 3D. Se utiliza una técnica muy parecida a la perspectiva.
Entonces, básicamente lo que una aceleradora 3D hace es proveer de una serie de herramientas para realizar estos ‘engaños’ y liberar a l
a CPU de muchas operaciones intensivas de cálculos complejos.

Creación de un objeto 3D

Las imágenes u objetos tridimensionales están compuestas por polígonos. Se sabe que el polígono más simple es el triangulo, el cual combinándolo con otros se forman polígonos mas complejos. A mayor cantidad de polígonos, tendremos un objeto mas detallado.
El primer paso de la creación de un objeto 3D es el Wireframe (unión de todos los polígonos en un objeto). En todo objeto se puede definir su color, como se siente (si es suave o agrietado), y su capacidad de reflejar luz. Así, el wireframe necesita que se le aplique todas estas características si se quiere que se vea real. Para esto se hará uso de las texturas. Se parte de los ‘Texels’, utilizados por los artistas, que son píxeles individuales que forman una textura propiamente dicha. Con estos mapas de bits bidimensionales se ‘pintan’ los objetos para darles la apariencia que necesitan (ejemplo, cajas de madera o piedras).

Posterior a este proceso se aplica otro de los factores clave que nos hará creer que vemos un objeto que tiene volumen real: la iluminación. El brillo y las somb
ras son los que añaden una cuota extra de realismo, utilizándose también efectos de iluminación en tiempo real, o sea luces en movimiento (ejemplo, cuando en un juego se lanzan misiles y su recorrido se va iluminando). Aplicando los efectos anteriores se debe tener en cuenta la perspectiva, cuando los objetos se alejan o acercan (cuanto mas lejos mas pequeño y viceversa).

A continuación se puede apreciar las etapas de wireframe, transformación e iluminación y texturizado.


Nivel de Detalle

Todos los procesos básicos que generan imágenes 3D tienen ‘defectos’, los cuales producen la perdida del efecto realismo que se desea.
Por ejemplo, para le caso de las texturas, cuando dos lados de un objeto se juntan, estas no coinciden; o si nos acercamos mucho a ellas, las veremos cuadradas y sin detalles. Para este caso se recurren a técnicas de ‘filtrado’ (filtering) para hacerlas mar reales. Existen varios tipos, el más común es el bilinear filtering, después se encuentra el trilinear filtering y anisotropic filtering, por mencionar algunos.
Otro problema común a todas las imágenes es el efecto ‘alias’ o ‘efecto serrucho’ en los bordes de los objetos. Para solucionar estos ’detalles’, cada fabricante tiene sus propias técnicas (ejemplo, Antialias).

Utilizando el hardware

Para cerrar el concepto de las placas 3D, las aceleradoras 3D, de una forma u otra, implementan en hardware alguna o todas las operaciones, para liberar a la CPU de todos estos cálculos y, a su vez, agregar otra cantidad de efectos adicionales mas realísticos que los que una placa convencional puede brindarnos.
En principio, las aceleradoras tomaban el trabajo una vez que las expresiones matemáticas que componen el wireframe eran convertidas a una imagen bidimensional y las trayectorias de la iluminación ya estaban calculadas, todo esto realizado por la CPU. Las ultimas generaciones de aceleradoras fueron creadas con la idea de eximir a la CPU de estas intensas operaciones con coma flotante, a través de la implementación del motor de transformación e iluminación (T&L Engine).
Otro elemento que mencionamos al final, ya que es parte exclusiva de la aceleradora 3D, e
s el Z-Buffer. En este buffer se almacenan todas las coordenadas del eje Z (recuerden que en un espacio tridimensional tenemos ejes X, Y y Z). A través de distintos métodos de cálculo, la aceleradora debe terminar que puntos son visibles desde nuestra posición actual y, así, solo renderizar estos.

Le ha paresido útil la información presentada?