Desde hace ya algún tiempo, los chips aceleradores de gráficos con que están equipadas la mayor parte de las tarjetas gráficas instaladas en ordenadores compatibles PC, disponen de funciones de aceleración de gráficos 3D por hardware. Para generar una imagen en tres dimensiones la posición de cada punto que aparece en la pantalla viene definida por tres coordenadas, denominadas (x, y, z). La función básica de un acelerador 3D es tomar dichas coordenadas tridimensionales y proyectarlas sobre una superficie plana, en este caso la pantalla. Para obtener esta proyección se siguen varios pasos que vamos a analizar a continuación. Normalmente la posición de los objetos 3D que se generan se definen utilizando un sistema de coordenadas 3D local, es decir, propio del objeto concreto que se está tratando. Dichas coordenadas locales tienen como referencia un origen de coordenadas que tiene unas determinadas coordenadas 3D mundiales, es decir, que toman como origen de coordenadas el utilizado en el universo virtual que maneja la aplicación. Para efectuar el render de un objeto en primer lugar es preciso transformar las coordenadas locales de todos los vértices que forman parte de los polígonos del objeto a coordenadas mundiales. Esta operación se realiza multiplicando las coordenadas (x, y, z) de cada vértice por una matriz de 4 por 4 elementos mediante la que se obtienen las coordenadas mundiales. Una vez que se han obtenido éstas es preciso obtener las coordenadas de cada vértice según el sistema de ejes definido por el punto en el que está colocada la cámara virtual que capta los objetos y la dirección en la que ésta se encuentra orientada. Nuevamente esta operación se realiza multiplicando las coordenadas (x, y, z) por una matriz de 4 por 4 elementos mediante la que las coordenadas mundiales se transforman en coordenadas que tienen como referencia los ejes formados por la dirección en la que está orientada la cámara y sendos ejes perpendiculares a dicho eje, siendo los tres perpendiculares entre sí. Una vez obtenidas estas coordenadas se proyectan sobre la pantalla dividiendo las coordenadas x e y entre la z del vértice.

Los aceleradores 3D convencionales usan parte de la memoria que gestionan para almacenar la coordenada Z de cada pixel que aparece en pantalla, de forma que cuando se va a dibujar un pixel, se comprueba si el que ya está presente en la pantalla tiene una coordenada Z más próxima al observador que la del pixel que se pretende dibujar. De esta forma se puede realizar una eficiente eliminación de las superficies ocultas. La pega de este sistema es que para dibujar cada pixel hay que realizar varias operaciones de lectura, comparación y escritura sobre el buffer Z, lo cual consume una buena parte del ancho de banda disponible para acceder a la memoria.

Algunas soluciones que están apareciendo en el mercado no usan buffer Z. Estas técnicas suelen dividir la pantalla en zonas cuadradas de idéntico tamaño (32 por 32 pixeles), realizando el render de la imagen en fases en las que se generan polígonos que tienen pixeles en la zona concreta que se está tratando. Una vez que el controlador del acelerador 3D dispone de los datos de todos los triángulos a generar se procede a enviarlos al procesador gráfico, el cual normalmente se encarga de ordenarlos de forma que se procesen de una sola vez todos los polígonos cuyos pixeles forman parte de un bloque concreto. Con esta tecnología un polígono podría generarse varias veces ya que puede ocupar más de un bloque de pantalla. Esta metodología es necesaria ya que se ha eliminado el buffer Z, por lo que sólo es posible dibujar pixeles definitivos. Entre las soluciones comerciales que usan esta tecnología están los chips PowerVR PCX1 y PCX2 de Nec.

Varias compañías norteamericanas están trabajando en hardware de este tipo, por lo que no es de extrañar que durante el presente año aparezcan aceleradores 3D que utilicen técnicas de render que se alejan algo de la técnica tradicionalmente utilizada para acometer este problema.