| Artículos | 01 JUN 1997

Tarjetas aceleradores 3D

Tags: Histórico
ATI 3D Pro Turbo PC2TV, Creative Labs 3D Blaster PCI, Diamond Monster 3D, Matrox Mystique, Matrox Millennium, Number Nine Imagine 128II E, STB Velocity 3D, STB Nitro 3D y Videologic Apocalypse 3D
Eugenio Barahona.

La novedad más reciente en el campo de las tarjetas gráficas económicas es la aceleración 3D por hardware. Conozca con este artículo los productos que se comercializan en España, sus características, prestaciones y precios.

Actualmente, casi todas las tarjetas gráficas que aparecen en el mercado disponen de funciones implementadas directamente en el hardware que ayudan a acelerar determinadas tareas de tratamiento gráfico que, si no fuese así, tendría que realizarlas el microprocesador del PC. Si bien los ordenadores actuales disponen de buses, como PCI, que permiten un rápido acceso a la memoria de vídeo, la inclusión de procesadores especializados en la tarjeta gráfica hace que mientras éste elemento realiza una determina operación, el procesador del PC puede estar llevando a cabo cualquier otro tipo de tarea. En el terreno de los gráficos en tres dimensiones nos encontramos con varios problemas que, para su resolución, necesitan una considerable potencia de cálculo. Desde hace ya bastante tiempo se encontraban soluciones basadas en hardware que aceleraban la generación de gráficos tridimensionales aunque se trataba de productos de nivel profesional que tenían un precio demasiado elevado para el usuario medio de informática personal.

En el último año están apareciendo en el mercado tanto procesadores como tarjetas gráficas para el mercado doméstico que disponen de aceleración 3D por hardware. Uno de los factores que ha adelantado la introducción en el mercado de este tipo de productos ha sido la aparición de la API Direct3D, creada por Microsoft y cuya misión es conseguir que las aplicaciones desarrolladas para Windows 95, y en el futuro también Windows NT, utilicen las funciones de aceleración 3D por hardware de una forma independiente del dispositivo.

Esta API está orientada hacia el mercado de las aplicaciones interactivas, principalmente videojuegos, y de tipo multimedia por lo que el diseño de nuevo hardware acelerador 2D y 3D se ve influído grandemente por las características que Microsoft va añadiendo poco a poco a las nuevas versiones de esta API.

Eliminar las superficies ocultas

Uno de los problemas que debe afrontar cualquier programador o diseñador de aceleradores 3D es cómo eliminar de una forma eficiente los polígonos que no son visibles por el usuario, es decir, aquellos que son ocultados por otros polígonos. La solución más evidente para este problema, y una de las menos eficientes en términos de velocidad, es el denominado algoritmo del pintor. Mediante este algoritmo los polígonos que se dibujan en primer lugar son aquellos que se encuentran más alejados del punto de vista del observador. A medida que se procesa la escena 3D que se desea generar se van dibujando los polígonos que están más cercanos. Este algoritmo genera una imagen correcta a costa de una baja eficiencia, debido principalmente a que se realizan múltiples accesos a la memoria de vídeo para dibujar una y otra vez un mismo píxel.

Por lo tanto es necesario encontrar un método que evite accesos innecesarios a la pantalla, consiguiendo que sólo se dibuje un píxel si se encuentra más próximo al punto de vista que el que en ese momento se encuentra dibujado. Esta es la base del buffer Z, técnica que es utilizada tanto por gran número de motores de render 3D por software como por la inmensa mayoría de aceleradores 3D. Esta técnica consiste en almacenar en una zona de la memoria de vídeo un buffer que almacena la coordenada Z de cada uno de los píxeles de la pantalla.

Si se va a dibujar un nuevo píxel se compara su coordenada Z con la almacenada en el buffer Z de dicho punto. Si el píxel que se va a dibujar tiene un valor de Z inferior al del punto que está dibujado el nuevo píxel será almacenado en la pantalla y su valor de Z se guardará en el buffer Z.

Otra cuestión interesante es cómo averiguar si un determinado polígono de un modelo 3D está orientado hacia el punto de vista. Como el lector puede imaginar fácilmente cada polígono está formado por dos caras, de las cuales sólo una es visible, ya que la otra está en el interior del modelo 3D del que forma parte. Si la cara interior es la que está orientada hacia el punto de vista, dicha cara no será visible por lo que no será necesario dibujar dicho polígono. Para saber si un polígono está orientado hacia el punto de vista se debe calcular la normal al polígono, es decir, debemos calcular un vector perpendicular al polígono.

Esta operación se realiza efectuando el producto vectorial de las coordenadas de los vértices del polígono. Hay que resaltar que es importante el orden en el que se toman los vértices para efectuar esta operación, siendo lo normal tomarlos en el sentido de las agujas del reloj.

Ancho de banda y memoria de vídeo

Actualmente es posible encontrar tarjetas gráficas, tanto con aceleración 2D como 3D, que usan distintos tipos de memoria RAM: DRAM, EDO RAM, VRAM, SGRAM, WRAM, RDRAM y MDRAM. Los productos más económicos suelen estar basados en DRAM o en EDO RAM, siendo generalmente los que menor rendimiento proporcionan.

En el campo de la aceleración por hardware de gráficos en tres dimensiones es fundamental disponer de un subsistema gráfico que disponga de una elevada tasa de transferencia entre el procesador gráfico y la memoria de vídeo. Esto se debe a que para generar en la pantalla un triángulo con mapeado de texturas y filtrado bilineal y eliminación de superficies ocultas es necesario realizar varios accesos a la memoria del adaptador gráfico por cada píxel que se va a generar en la pantalla.

Supongamos que se va a dibujar un píxel correspondiente a un triángulo con mapeado de texturas, filtrado bilineal de texturas y utilizando un buffer Z para eliminar las superficies ocultas. En primer lugar podríamos determinar si el píxel debe ser dibujado, para lo cual compararíamos el valor de la coordenada Z del punto en cuestión con el correspondiente del píxel que en ese momento se encuentra en la pantalla. Este proceso implica una operación de lectura de la memoria de vídeo para obtener la coordenada Z del píxel que el usuario está observando. Si se determina que el punto que intentamos dibujar está más próximo al usuario debemos almacenar su coordenada Z en el buffer correspondiente, lo cual genera una operación de escritura. Al estar utilizando mapeado de texturas, se deben generar las operaciones de lectura necesarias para obtener la información correspondiente al o a los píxeles necesarios de la textura. Al usar un filtro bilineal de texturas es necesario leer la información de cuatro puntos de la textura vecinos al calculado por el acelerador 3D. Finalmente se generará una operación de escritura para dibujar el punto en la pantalla. Como puede comprobar el dibujo de un píxel puede implicar hasta siete accesos a la memoria de vídeo de la tarjeta gráfica.

Pruebas realizadas

Uno de los principales problemas con que nos hemos encontrado a la hora de evaluar estos productos ha sido localizar alguna aplicación mediante la cual sea posible valorar el rendimiento en tres dimensiones de cada una de las tarjetas gráficas que hemos probado. Finalmente hemos utilizado la aplicación Direct3D Benchmark, que se incluye en el kit de desarrollo de DirectX que Microsoft entrega a todos los programadores interesados en realizar aplicaciones que utilicen estas API. En el caso de las tarjetas que incluyen compatibilidad VGA y que, por lo tanto, también son aceleradoras 2D, hemos utilizado el programa Wintach para obtener una medida de su rendimiento en dos dimensiones.

ATI 3D Pro Turbo PC2TV

Esta tarjeta está equipada con un total de 4 MB de memoria de tipo SGRAM. El procesador gráfico ha sido diseñado por la propia ATI Technologies. Se trata del modelo 3D Rage II+ DVD, que dispone de funciones de aceleración 2D, 3D y reproducción de ví

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información