Rage 6 Radeon
ATi apuesta definitivamente por los hardgamers
La realidad comercial de ATi se podría resumir en dos afirmaciones. La primera es que las tarjetas gráficas de ATi hace mucho tiempo que no pueden competir de igual a igual con productos destinados a los 'hard gamers' entre los que 3dfx y NVIDIA han copado el mercado. La segunda es que ATi se mantiene con una gran diferencia como el fabricante que más tarjetas gráficas vende. Efectivamente, no sólo de los juegos vive el fabricante de hardware gráfico...
Sin embargo el mercado de los hard gamers no deja de resultar atractivo y bien vale un intento. En ocasiones ese intento acaba con un mayor o menor fracaso o, por el contrario, en un éxito comercial. Todo depende del mercado y del producto. Para el Radeon, se encuentra con un mercado en el que la estrategia de acoso y derribo de NVIDIA y sus continuos lanzamientos se lo ponen muy difícil a cualquier posible competidor. En cuanto al producto en sí... no es de los que ya están vencidos incluso antes de salir al mercado. Las Radeon realmente prometen y quizá sí que sean la competencia de la que los chips de NVIDIA están empezando a carecer. Fill Rate de 1.5 Gigapíxeles por segundo, tecnología T&L, hasta 128 Mb de memoria DDR de 200 MHz con velocidades de transmisión de 6.4 GigaBytes por segundo, AGPx4... Realmente promete...
ATi no sólo promete potencia, también innovación tecnológica. Con el Rage 6 Radeon ATi presenta el motor 'Charisma', una tecnología similar al T&L de NVIDIA, y la arquitectura 'Píxel Tapestry', que proporciona un mejor render con texturas 3d, tres texturas por píxel y otros efectos. Conozcamos con detalle lo que ATi nos tiene preparado... como para la educación, como para la medicina.
La utilización de este tipo de texturas también encuentra una gran utilidad a la hora de aplicarse junto a efectos de luces y sombras, transparencias... Será el programador el que marque hasta donde quiere llegar.
Radeon contará con un buen apoyo en forma de memoria local, tanto en lo referente a cantidad como a calidad. Junto a él se montará memoria DDR SDRAM de 200 MHz en una cantidad que puede llegar a ser de 128 Mb. El funcionamiento de esta memoria será optimizado por una nueva tecnología desarrollada por ATI y denominada HyperZ, que promete aumentar la efectividad en el ancho de memoria hasta en un 20%. Además se almacenarán en el propio chip los cachés de píxel, texel y vertex, con el consiguiente ahorro de ancho de memoria. Las velocidades de transferencia anunciadas se acercan a los 6.5 GB/sg. Por supuesto el Rage 6 Radeon también podrá trabajar con memoria SDRAM y es posible que esta configuración salga al mercado en un formato más económico.
/es/node/Array En el apartado de las 2d, lo principal es la completa descompresión MPEG2 (DVD) por hardware. Nada de soluciones conjuntas o emulaciones de hardware por software. Radeon permitirá disfrutar de los DVDs con la máxima calidad independientemente del sistema en el que se quieran reproducir. En cuanto a otras funciones, además del soporte de monitores planos DVI, destaca la decodificación para formatos de televisión de alta definición (HDTV), las que no tardaremos demasiado en poder disfrutar, y una mejor calidad en la reproducción de vídeo. Para esta mejora en la reproducción Radeon aprovecha una especie de filtrado denominado 'Adaptive de-interlacing' y que se encarga de eliminar defectos como el feathering (superposición de los bordes de objetos fijos sobre las imágenes en movimiento), o las molestas imágenes 'quemadas' que producen los objetos de colores muy vivos.
El soporte del Radeon está garantizado gracias al total aprovechamiento de las Apis Direct3d y OpenGL, incluidas la nueva Mezcla Geométrica (Multi-Matrix Vertex Blending & Skinning) y la interpolación Keyframe y para el inevitable Windows 2000 y Millennium, además de las nuevas innovaciones de las DirectX 8.
En las siguientes páginas vamos a describir y mostrar ejemplos de las innovaciones del Radeon que, a nuestro parecer, más van a aportar al continuo avance del foto realismo de la escena 3d.
La efectividad de esta aceleración por hardware y su sus ventajas resultan obvias. Para hacernos un idea, podemos fijarnos en el siguiente ejemplo. En el gráfico siguiente aparecen dos modelos 3d formados con 900 y 9000 polígonos cada uno. Evidentemente el modelo es más realista cuanto mayor sea el número de polígonos que lo forma. Mediante la aceleración TCL, el sistema trabajaría con el modelo de la derecha del mismo modo que lo haría con el de la izquierda de no contar con ella.
La ejecución mediante hardware de las funciones que poco a poco se vayan estandarizando es algo del todo lógico y a lo que el hardware ha de tender. A medida que nuevas funciones se vayan utilizando en la programación de juegos, los fabricantes de hardware las soportarán mediante hardware en sus nuevos productos de modo que su ejecución genere el mínimo esfuerzo para el sistema.
Calcular cada deformación de estos miles de polígonos y sus nuevas coordenadas en la escena, además de la aplicación sobre ellos de efectos luminosos, texturados, filtrados... El trabajo que supone para el sistema gráfico es tremendo. En eliminar esa inmensa carga se basa la tecnología del "esqueleto 3d". La "animación esqueletal" se basa en crear el modelo sobre una arquitectura o esqueleto y después recubrirlo de texturas (o piel). Con esta técnica, cada miembro del gorila del ejemplo se construiría recubriendo de polígonos un "hueso" (bone) del esqueleto. Las ventajas llegan cuando ese miembro se tiene que mover respecto al cuerpo. Cada hueso tendrá un movimiento limitado respecto al hueso con el que se une, exactamente del mismo modo que lo tiene el animal real. Cada parte móvil del modelo está formada a través de un hueso que tiene su propio recubrimiento de carne (polígonos) y su propia piel (texturas) y con la movilidad que el programador le quiera dar. De este modo, el gorila del ejemplo podría tener un hueso que le permita mover el brazo respecto al hombro, el antebrazo respecto al resto del brazo, la mano respecto al antebrazo, los dedos respecto a la mano... El movimiento es mucho más realista y, sobre todo, requiere muchos menos recursos del sistema al no tener que calcular la deformación de los polígonos que hasta ahora se utilizaban para representar las articulaciones.
El único problema que representa la creación de modelos 3d a partir del un esqueleto se encuentra en la unión de los distintos huesos. Entre un hueso y otro existe un espacio que, siguiendo el símil con el cuerpo de los vertebrados reales, llamaremos articulación. Esta articulación se contrae, se estira y de deforma de distintas formas dependiendo del movimiento que hagan los dos huesos que une. en el siguiente gráfico podemos ver de lo que hablamos...
La grieta que se crea entre ambos huesos es algo que no se puede mostrar en la imagen final. Para esconderla se utiliza la técnica "Skinning" que, como su nombre indica, se encarga de recubir de piel estas imperfecciones.
Mediante esta piel flexible, que une cada uno de los vértices de un hueso con el correspondiente en el otro, se da continuidad al objeto y se acerca mucho al movimiento totalmente natural que podemos observar en cualquier ser vivo. Un problema que genera esta "piel" radica en la textura que recubre esta piel. Ese problema se encarga de resolverlo el Vertex Skinning que veremos en la siguiente página.
La anterior explicación intenta dar a entender un complejo sistema de cálculos en tiempo real encaminados o evitar problemas como el del gráfico que vemos a continuación...
El brazo del modelo (en rojo) se une al torso (en azul). Cada color representa una de las matrices y, como vemos, la unión entre ambas es poco natural. Tarjetas como las ATi Radeon soportan hasta cuatro matrices por hardware, por lo que en ejemplos como este, añadiendo una tercera matriz se solucionaría el problema. Lo vemos...
Entre las matrices roja y azul, se ha introducido una tercera matriz representada en verde. Esta matriz se introduce entre las otras dos actuando como una especie de colchón flexible que hace que la unión de las otras dos sea más natural. En caso de que el resultado no fuese el buscado, se podría introducir una cuarta matriz y perfeccionar aún más el resultado. Otra de las ventajas de contar con más matrices a la hora de representar un modelo, es que se puede definir el comportamiento de la textura (piel) que recubre cada matriz. Si se trata de representar la piel de un animal, la textura que recubre la matriz central se estirará mientras que la que recubre las otros dos matrices permanecerá igual. Del mismo modo, cada matriz puede verse afectada de forma diferente por la luz, ensombreciendo o aclarando la textura que la recubre.
La gran ventaja de las ATi Radeon es que calcula hasta cuatro de estas matrices por hardware. Calcular estas matrices por software sería imposible ya que el procesador principal quedaría completamente colapsado ante tal afluencia de operaciones de cálculo en tiempo real.
En el siguiente gráfico podemos ver un ejemplo real en un juego, el Dungeon Siege de Microsoft, en el que se pueden ver las cuatro matrices en distintos colores.
Cada color representa una matriz, la unión entre ellas será totalmente natural gracias al Vertex Skinnig.
Sin embargo, la aplicación más efectiva de las distintas matrices, donde más efectiva se muestra es en las transiciones automáticas. Los conocidos "morphings"... Lo veremos en la página siguiente.
Seguramente todos hemos visto transiciones de morphing en las que una cara se transforma en otra o en las que se envejece un rostro... Esas transformaciones se consiguen definiendo una serie de vértices dentro de la imagen inicial y asignándoles una correspondencia en la imagen final. El proceso de morphing se limita a ir cambiando la posición y el color de los píxeles iniciales hasta hacerlos corresponder con los de la imagen final. Para conseguir un buen efecto de morphing hay que trabajar duro definiendo los píxeles más apropiados, limitando la velocidad de movimiento... Todo ello porque la transformación se realiza en dos dimensiones, sin las limitaciones lógicas que una imagen 3d más real genera. En el morphing es posible colocar la boca de la imagen inicial por encima de los ojos en la imagen final. No hay ninguna limitación lógica más que la que el autor del morphing quiera dar...
El Vertex Morphing que presenta ATi en sus tarjetas Rage 6 Radeon parte de trabajar con modelos 3d. Estos modelos 3d constan de una serie de partes móviles y otras fijas. Usemos un ejemplo...
El rostro de la izquierda puede ser el inicial y el de la derecha el final, o al revés. Se trada de un modelo 3d en el que hay definidas una serie de matrices que actuan con una determinada flexibilidad u otra. La zona de la comisura de los labios y los ojos será mucho más flexible que la de la frente o la nariz...
Lo que el Vertex Morphing nos ofrece es la transformación automática y totalmente por hardware de una imagen en otra del modo que muestran las dos imágenes centrales. Las posibilidades de esta técnica en juegos de rol o aventuras son tremendas. Tan solo habrá que definir la cara de un personaje en circunstancias normales y sólo habrá que predefinir cómo sería esa cara en condiciones de miedo, felicidad, ira o todas aquellas expresiones que se quiera. Una vez el juego esté en marcha, será el propio hardware el encargado de transformar los rasgos de una u otra manera con solo darle la instrucción de hacerlo. El chip gráfico se encargará de calcular qué matrices habrá de deformar en cada uno de los frames que llevan de una expresión a otra. El hecho de que las transformaciones se vayan generando frame a frame (fotograma a fotograma), hacen que estas transformaciones también sean conocidas como "Keyframe Interpolation" (similar al Vertex Blending de las GeForce).
Otra de las ventajas de esta transformación frame a frame se refiere a la adaptación de la propia transformación al sistema en el que se está realizando. Si se trata de un Pc con la suficiente potencia y memoria, la transición se hará a través de gran cantidad de fotogramas, de modo que ésta sea lo más suave y natural posible. Sin embargo, si el Pc no cuenta con los suficientes recursos como para calcular tantos fotogramas distintos en tiempo real, el propio chip gráfico adaptará la transformación de modo que se muestre el mismo resultado pero de un modo menos costoso para el sistema, aunque la transición sea algo más brusca.
Vemos como los rendimientos se mantienen hasta que se empiezan a usar más de dos texturas por píxel. A más texturas, más efectiva se muestra la Radeon, sobre todo si las texturas se aplican en cantidades multiplos de 3.
Si en Quake 3 disparamos contra una pared, lo que haremos será producir una pequeña mancha sobre la textura de esa pared. Esa mancha desaparecerá en pocos segundos porque no es más que el dibujo de una transparencia que el programa sitúa en el sitio adecuado y que no puede mantener ahí indefinidamente a riesgo de consumir demasiados recursos. Disparemos con lo que disparemos ocurrirá lo mismo, con la diferencia de que la mancha en la pared será mayor o menor o de un color u otro...
Supongamos que las texturas que recubren las pareces son en 3d. Estas texturas, además de representar unos dibujos pintados en la pared, grietas, musgo o lo que fuese, están construidas mediante distintas capas superpuestas. La primera capa seria la que se muestra normalmente. Inmediatamente después vendría una capa con una textura que representase, por ejemplo, el blanco de una pared de escayola. La siguiente capa mostraría la textura de una pared de ladrillos... Bien, si disparamos sobre una pared cubierta con una de estas texturas 3d, la primera capa de textura quedaría "agujereada" y se mostraría la segunda capa de textura... se vería el yeso de la pared. Si seguimos disparando o usamos un arma más potente, atravesaríamos también esa capa de modo que veríamos el ladrillo que se ocultaba tras la escayola... ¿más realismo?.
Lo mismo se puede aplicar sobre objetos 3d. Si se rompe una botella, no hará falta construir un modelo 3d de la botella rota. Simplemente habrá que diseñar una textura 3d que simule en interior hueco de una botella, del mismo modo que si se rompe una sandía, se podrán ver en su interior la carne rosada y las pipas negras. Las texturas 3d tienen por tanto grandes posibilidades, por ejemplo, a la derecha se muestra una cabeza con textura 3d. Su utilización puede ser perfecta tanto para los juegos, como para la educación, como para la medicina.
La utilización de este tipo de texturas también encuentra una gran utilidad a la hora de aplicarse junto a efectos de luces y sombras, transparencias... Será el programador el que marque hasta donde quiere llegar.
El primero y más sencillo es el Emboss Bump Mapping, que se basa en la creación de de un mapa de alturas sobre el que luego se aplica la textura y los correspondientes efectos de luz. El segundo es el denominado Dot Product 3 Bump Mapping, que se basa en asignar un vector a cada píxel de modo que cada uno actué frente a la luz de la manera que le indique ese vector. Es más efectivo que el Emboss ya que permite representar reflejos además de las clásicas sombras. La última, más compleja y más efectiva técnica de Bump Mapping la constituye el ya conocido Environment Mapped Bump Mapping (EMBM), ya utilizado por las últimas tarjetas Matrox y también conocido como Bump Mapping de perturbación. Este efecto se basa en la misma técnica que el Dot Product 3 de aplicar un vector a cada píxel de modo que éste sepa cómo actuar ante cada circunstancia de luz. La diferencia del EMBM radica en que ese vector es variable, pudiendo modificarse las propiedades de cada pixel constantemente. Este bump mapping es especialmente efectivo a la hora de mostrar superficies rugosas en movimiento, como puede ser el mar desde un avión. en los siguientes gráficos vemos un ejemplo simple de cada tipo de bump mapping existente.
Como vemos, el velero de la imagen que no usa la "niebla de distancia", aparece por la derecha de forma mucho más repentina y artificial que el de la imagen que sí usa este efecto. El velero de la imagen de la derecha muestra su proa mientras que su popa permanece todavía oculta en la bruma ya que esa proa se encuentra más cerca del punto de observación, cosa que prioriza el "buffer de prioridad".
- Hierarchical Z: Esta técnica se basa en corregir uno de los mayores problemas que se generan al dibujar entornos 3d; el overdraw (redibujar). Para explicar el overdraw lo mejor es servirse de un ejemplo. Imaginemos una habitación 3d al fondo de la cual hay una puerta que da a otra habitación. Si la puerta está abierta nos permitirá ver a través de ella una porción de la habitación siguiente, mientras que la pared nos oculta el resto. El problema radica en que aunque al observador no se le muestre esa parte de la habitación oculta tras la pared, el sistema la está dibujando completamente para después dibujar encima la pared que la oculta. Es decir, el sistema comienza a dibujar la escena desde el punto mas lejano al observador para luego ir redibujando plano sobre plano aquellos puntos que oculte cada objeto que se vaya encontrando en el angulo de visión del observador. Como es lógico, esto consume una gran cantidad de memoria en cada escena.
El Hierarchical Z corrige este problema analizando previamente la escena y discriminando entre qué texels van a quedar a la vista del observador y cuáles no. Los que no van a ser vistos por el observador por encontrarse tras un objeto o pared que los oculte, sencillamente no se dibujan. El ahorro de memoria y la repercusión en la velocidad de relleno alcanzadas por esta técnica son más que interesantes.
- Z Compression: Como su nombre indica, se trata de un algoritmo de compresión optimizado para la increíblemente rápida transferencia de información existente entre la memoria y el chip gráfico. El problema de estas compresiones suele venir de la pérdida de información propiciada por la necesidad de comprimir y descomprimir en tiempo real. La Compresión Z permite una buena compresión de la información con una nula pérdida de información.
- Fast Z Clear: Cada fotograma que forma una escena 3d se dibuja y se borra antes de dibujar el siguiente fotograma, es decir, cada punto que se dibuja en la escena tiene que ser borrado antes de que se pueda volver a dibujar sobre él. Actualmente los distintos chips gráficos borran cada píxel asignándoles un valor nulo o cero. El Fast Z Clear hace innecesaria la operación de sobrescribir estos píxeles con el valor cero consiguiendo una considerable reducción en el consumo de memoria.
La Radeon cuenta con una importante baza a su favor. Su fabricante, ATi, es el que más hardware gráfico vende en el mundo con una gran diferencia. Eso se traduce en potencial y si ese potencial se dirige a crear un hardware lo más efectivo posible para los jugadores, podemos estar contentos. De momento, su Radeon ya marca diferencias. Veamos las siguientes tablas. No hemos de olvidar que toda esta información ha sido proporcionado por la propia ATi.
Velocidad de llenado con texeles | |
ATi Rage 6 Radeon | 1200MTexels/s |
ATi Rage Fury MAXX | 500MTexels/s |
NVIDIA GeForce 256 | 480MTexels/s |
S3 Diamond Viper II | 500MTexels/s |
Velocidad de llenado con píxeles | |
ATi Rage 6 Radeon | 400Mpixels/s |
ATi Rage Fury MAXX | 500Mpixels/s |
NVIDIA GeForce 256 | 480Mpixels/s |
S3 Diamond Viper II | 250Mpixels/s |
Características más diferenciadoras | |||
Number of Pipelines | 2 | 4 | 4 |
Velocidad de Reloj | 200 MHz | 120 MHz | 200 MHz |
Veloc. Rell. Texel | 1200 Mtexel/s | 480 Mtexel/s | 1600 Mtexel/s |
Veloc. Rell. Píxel | 400 Mpixel/s | 480 Mpixel/s | 800 Mpixel/s |
Deberemos esperar a terminar las pruebas para saber a ciencia cierta en qué casos un producto como la Radeon nos interesa por encima de opciones como la GeForce GTS. Personalmente, lo que voy viendo de la Radeon me gusta. Una calidad visual excelente y aportaciones que creo marcarán un avance importante hacia la imagen "virtualmente real". Tan sólo habrá que pedirle que sus rendimientos no sean tan bajos como para crear dudas a los más exigentes, que su compatibilidad sea completa y no existan problemas con los controladores y que su precio sea "interesante". Lo veremos a partir de Septiembre...