Tarifas
Contacto

Hardware

UNA MIRADA AL MUNDO DE LOS GRaFICOS 3D APIs 3D

Aunque han visto muchos tests de placas 3D , en esta oportunidad, veremos varios conceptos aplicados a ellas. Estos dispositivos son muy accesibles hoy en dia e indispensables tanto para el jugador como para el diseñador y el animador

Cualquiera que lea las caracteristicas de una placa 3D se encontrara con un sinfin de numeros que intentan explicar algo. Velocidades, APIs, features, etc.

Para los que quieran saber un poco mas sobre este tema, va esta guia.

¿Que es una aceleradora 3D?

Una aceleradora 3D es, basicamente, una placa de video que puede dibujar poligonos utilizando solamente los vertices tridimensionales de los mismos y, ademas, puede agregarles texturas a los poligonos, como tambien darles forma.

No todas las aceleradoras son 3D. Ciertas aceleradoras son solo bidimensionales (2D) ya que no calculan el tercer elemento (el eje Z), aunque en la actualidad estas son muy pocas.

¿Que tipos de aceleradoras existen?

En el pasado, se usaban los upgrades que son placas que se conectan a las placas 2D existentes en el sistema. Esto no suele verse hoy en dia pero, en el comienzo, era el tipo mas comun. Ejemplos de esto son los chips Voodoo, Voodoo 2 y PowerVR.

En la actualidad, las aceleradoras hacen todo el trabajo 2D y 3D en una misma placa.

¿Cual es la diferencia entre AGP y PCI?

AGP es un bus grafico dedicado (no es compartido con ningun otro dispositivo), que opera a 66 MHz; es decir, el doble que PCI, el cual opera a 33 MHz. Ademas, el bus AGP llega a tener transferencias de 266 MB por segundo, comparado con los 132 del PCI.

Todo esto sin contar que las placas AGP pueden operar en modo 2X y 4X (o sea, multipliquen esa velocidad por 2 o 4, segun corresponda).

Finalmente, hay una caracteristica mas del AGP que lo hace sobresalir: puede acceder a la memoria del sistema, mas alla de la propia. Esto permite que los desarroladores realicen escenarios mas complejos e intensos.

¿Que es el chipset?

Es el chip en la placa, el cual provee procesamiento especializado para instrucciones de video mas rapidamente de lo que el microprocesador central de nuestro sistema podria realizar por el mismo.

¿Por que distintas placas dicen tener el mismo chip?

Las compañias que producen placas no suelen fabricar sus chips (aunque existen algunos casos en que si); esto puede ser porque no tienen la infraestructura necesaria para producir chips o porque es un negocio complicado y riesgoso. La mayoria prefiere diseñar la placa y sus drivers, y utilizar los chips de otro. Por ejemplo, 3DFX no producia placas hasta que adquirio a STB. Diamond Multimedia no producia chips hasta que adquirió a S3. NVIDIA solamente produce chips, no placas (aunque si drivers).

¿Necesito un monitor nuevo para tener una placa 3D?

No necesariamente. Mientras nuestro monitor actual soporte todas las resoluciones que vayamos a utilizar, no hara falta.

¿Cual es el mejor tipo de memoria?

En la actualidad, se utilizan dos tipos, SDRAM y DDR. La mejor, sin dudas, es la DDR ya que provee dos operaciones por ciclo de reloj (DDR significa Double Data RAM), mas que la SDRAM, aunque tambien es bastante mas cara. Para clarificar esto, es valido decir que una memoria DDR de 300 MHz seria equivalente a una SDRAM de 600 MHz.

¿Que es el RAMDAC?

El RAMDAC es el circuito encargado de traducir las señales digitales de la placa a señales analogicas, para que nuestro monitor sea capaz de mostrarlas. Como casi todo, si es mas rapido, es mejor.

¿Que es una API?

Las APIs son un conjunto de instrucciones y funciones que utilizan los programadores para acceder a otra aplicacion o dispositivo de hardware. En este caso especifico, las APIs 3D acceden a nuestra placa de video.

Para que quede mas claro, podriamos decir que las APIs actuan de puente entre, por ejemplo, nuestro juego favorito y la placa de video de nuestro sistema.

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 la 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 sombras 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, es 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.

Duda sobre rendimiento de placas 3D en general

La cantidad de memoria en si no implica que una placa va a ser o no mas lenta que otra (salvo el caso especial de resoluciones muy altas y filtros con mucho detalle). Es simple: La memoria de la placa de video se utiliza principalmente para almacenar las texturas con las cuales va a trabajar el GPU (el procesador de video). Mas memoria implica que puede almacenar texturas mas grandes, pero el quid de la cuestion es que, por mas de que pueda almacenarlas, el GPU tambien tiene que tener la potencia para hace ese proceso con una performance aceptable. Es por eso que, por ejemplo, una 6200 con 256MB por ejemplo, podria almacenar texturas para resoluciones altas y uso de filtros (antialiasing y anisotropic filtering), pero el GPU no es lo suficientemente potente para que funcione decentemente.

Por lo general, recien las placas Medium-high end (X800XL, 6800, y para arriba) tiene la potencia necesaria para aprovechar esa cantidad de memoria. Si hablamos de 512mb en video, recien una X1800XT/X1900XTX o 7800/7900GT/GTX la aprovechan.

Ahora, bien podriamos decir, que, si te vas a comprar una placa low end (o algo un poco mejor) para usarla sin filtros y resoluciones comunes, seria lo mismo comprarla de 128mb (que son dificiles de conseguir) o de 256MB. Esto seria asi en condiciones ideales, pero aca entra otro problema, que si afecta al rendimiento y es que los fabricantes de placas, para ahorrar costos, les suelen poner memorias mas lentas a las versiones de 256mb que a las de 128mb (el 99% de los casos es asi). Esta es la razon principal por la cual se recomienda no comprar placas low/mid end con 256 o 512 Mb.

Tambien te puedo decir que los parametros que influyen en el rendimiento de una placa de video son, a grandes rasgos: La potencia del GPU (la familia, la velocidad de clock, la cantidad de pixels y vertex shaders), el bus de memoria (64, 128, 256, etc bits) y la frecuencia de la misma.
Podemos deducir, a modo de ejemplo, que una 6600GT de 128mb (y bus de 128 bits de memoria), le va a pasar el trapo a una 6200 de 256mb y 128 bits de memoria.

Copyright © 1998-2012- DS Tecnologia® manager@dstecnologia.com.ar - Politica de Privacidad