-
-
Desde que comenzó la “revolución 3D” en el ámbito de los juegos de computadora, allá por mediados de la década de los 90’, la tendencia de la tecnología aplicada a este rubro ha sido trasladar el trabajo de procesamiento de gráficos tridimensionales, desde la CPU hacia la tarjeta de video.
En primer lugar fue el filtro de las texturas, para lo cual se crearon chips especialmente dedicados para realizar esta tarea. Así nacieron las famosas placas aceleradoras 3D, que incorporaban dichos chips y un cantidad de memoria propia en la misma tarjeta. Luego, con la salida del GeForce 256 de NVIDIA, el procesador gráfico pasó a encargarse de lo que, hasta ese momento, realizaba la CPU. Estamos hablando de la función de Transformación e Iluminación (Transform & Lighting), utilizada para llevar a cabo los cálculos de geometría y de iluminación general de una escena en 3D. Hubo una versión mejorada de este motor, a la que se llamó de Segunda Generación. Ésta vino incluida a partir de la GeForce 2 y la gama Radeon de ATI, avanzando un poco más en cuanto a materia gráfica.
El gran cambio se dio a partir de la incorporación de los Píxel shaders y Vertex shaders. Esto permitió a los programadores una mayor libertad a la hora de diseñar gráficos en tres dimensiones, ya que puede tratarse a cada píxel y cada vértice por separado. De esta manera, los efectos especiales y de iluminación puede crearse mucho más detalladamente, sucediendo lo mismo con la geometría de los objetos. Veamos de qué se tratan estas dos características, tan importantes dentro de una tarjeta de video hoy en día.
Así se los denomina normalmente. Sin entrar en terrenos de difícil comprensión, podemos decir que son pequeños programas que se encargan del procesamiento de vértices (Vertex shaders) y de pixeles (Píxel shaders). La principal ventaja es que, como su naturaleza lo indica, pueden ser programados por el desarrollador, otorgando una flexibilidad que hasta antes de la aparición de los shaders era poco más que impensada. Recursos como las operaciones condicionales o los saltos se utilizan de forma similar que en los lenguajes más conocidos. Sin los shaders, muchos de los efectos eran realizados en conjunto con la unidad de procesamiento central, disminuyendo en gran medida el rendimiento y limitando el avance a nivel gráfico de los mismos.
La prueba de 3DMark 2003 que evalúa los shaders
Un vertex shader es una función que recibe como parámetro un vértice. Sólo trabaja con un vértice a la vez, y no puede eliminarlo, sólo transformarlo. Para ello, modifica propiedades del mismo para que repercutan en la geometría del objeto al que pertenece. Con ésto se puede lograr ciertos efectos específicos, como los que tienen que ver con la deformación en tiempo real de un elemento; por ejemplo, el movimiento de una ola. Donde toma una gran importancia es en el tratamiento de las superficies curvas, y su avance se vio reflejado en los videojuegos más avanzados de la actualidad. Particularmente, en el diseño de los personajes y sus expresiones corporales.
En cambio, un píxel shader no interviene en el proceso de la definición del “esqueleto” de la escena (Wireframe), sino que forma parte de la segunda etapa: la rasterización (Rendering). Allí es donde se aplican las texturas y se tratan los pixeles que forman parte de ellas. Básicamente, un píxel shader especifica el color de un píxel. Este tratamiento individual de los pixeles permite que se realicen cálculos principalmente relacionados con la iluminación del elemento del cual forman parte en la escena, y en tiempo real. Teniendo la posibilidad de iluminar cada píxel por separado es como se lograron crear los fabulosos efectos de este estilo que se pueden apreciar en Doom 3, Far Cry y Half Life 2, por mencionar sólo los más conocidos. La particularidad de los píxel shaders es que, a diferencia de los vertex shaders, requieren de un soporte de hardware compatible. En otras palabras, un juego programado para hacer uso de píxel shaders requiere si o si de una tarjeta de video con capacidad para manipularlos.
Para establecer los comandos de las funciones de píxel y vertex shaders se utiliza el lenguaje HLSL (High Level Shader Languages), que vendría a ser un lenguaje de alto nivel para trabajar con estos programas. Existe uno de bajo nivel, bastante más difícil de programar, que se denomina ensamblador. Su sintaxis comparte muchas características con los ensambladores utilizados para programar sobre las CPU. La ventaja del HLSL es la de todo lenguaje de alto nivel: facilidad para llevar a cabo operaciones mediante unas pocas instrucciones de fácil aprendizaje. Como punto débil encontramos el mismo defecto que poseen todos los lenguajes de este tipo, y es la falta de optimización del código. Trabajando directamente sobre el hardware, es mucho más factible que se lleguen a aprovechar todas sus posibilidades. En cambio, habiendo un compilador de por medio, siempre se pierde algo de rendimiento en el programa final.
Los vertex shaders no obligan a que esté presente el hardware necesario para ejecutarlos en el ordenador
Una aplicación -no un lenguaje- destinada a trabajar con píxel shaders es RenderMonkey. Fue creada por ATI, fabricante de los populares chips Radeon. Se puede descargar gratuitamente de la pagina oficial (vean los links relacionados a la nota) para que cualquier programador o artista pueda crear un shader y verlo en funcionamiento. Una importante característica es que permite la modificación de elementos en tiempo real, viendo como repercuten los cambios al momento de establecerlos.
Cambiando de tema, cuando hablamos de la compatibilidad con DirectX nos referimos al conjunto de instrucciones de shaders incluidas en estas librerías de Microsoft. En realidad, las instrucciones de píxel y vertex shaders vinieron a partir de DirectX 8 en adelante. Por ello, cuando se dice que una tarjeta de video es compatible con esta u otra versión posterior de DirectX por hardware, se está especificando que es capaz de aprovechar las instrucciones de shaders incorporadas en estas librerías. Por cierto, en algunos lados se declara la compatibilidad a nivel general, tanto con píxel como con vertex shaders. El conjunto de ambas funciones se conoce como Shader Model x, donde x es la versión de este modelo de referencia (que depende de las versiones de los propios shaders). El último y más reciente es el Shader Model 3.0, compuesto por píxel shader 3.0 y vertex shaders 3.0. Hasta el momento, escasos juegos aprovechan las posibilidades de este modelo, pero los que lo hacen son espectaculares. Sin ir más lejos, tenemos el reciente caso de The Elder Scrolls: Oblivion, considerado como el videojuego con mejores gráficos de todos los tiempos.
Hubo una evolución lógica de los shaders en estos últimos años. Este progreso tiene que ver, principalmente, con cuestiones internas de programación. Parámetros como la cantidad de registros disponibles, el número de instrucciones permitido por programa y la incorporación de instrucciones aritméticas más complejas, entre otros, aumentaron la flexibilidad a la hora de programar los shaders. Estos valores son los que diferencian una versión de Shader Model de otra.
Tarjeta de Leadtek con chip GeForce 3, el primero en soportar shaders por parte de NVIDIA
A continuación veremos una lista de las distintas versiones de DirectX con soporte para shaders y los procesadores gráficos compatibles con cada una. Vale aclarar que existe la retro-compatibilidad, por lo que, por ejemplo, si una GPU soporta Shader Model 2.0, también lo hace con Shader Model 1.1.
DirectX 8.0 (Pixel Shader 1.1 – Vertex Shader 1.1): Familia GeForce 3, de NVIDIA.
DirectX 8.1 (Pixel Shader 1.3 y 1.4 – Vertex Shader 1.1): Familia GeForce 4 TI, de NVIDIA (hasta Pixel Shader 1.3). Radeon 8500, 9000, 9100, 9200 y 9250, de ATI (hasta Pixel Shader 1.4).
DirectX 9.0 (Pixel Shader 2.0 – Vertex Shader 2.0): Familia GeForce FX, de NVIDIA. Radeon 9500, 9700, 9800 y Familia Xx00, de ATI. Familia 900 y 950, de Intel. Familia Volari, de XGI. Deltachrome y Gammachrome, de S3.
DirectX 9.0c (Pixel Shader 3.0 – Vertex Shader 3.0): Familia GeForce 6 y GeForce 7, de NVIDIA. Familia X1000, de ATI.
Como verán, ATI implementó la cuarta versión de los shaders recién a partir de su última línea (la X1000). Por su parte, NVIDIA fue pionera al utilizarlo desde la familia GeForce 6 (6200, 6600 y 6800), salida mucho tiempo antes que la recién mencionada de ATI, obteniendo una leve ventaja. Pero, como ya dijimos, recién ahora se está empezando a utilizar el Shader Model 3.0 en los juegos de ordenador. Por esa razón es que se justifica la decisión de ATI de no realizar un cambio de arquitectura prematuro.
El futuro de estas funciones programables es prometedor. Microsoft ya está ultimando detalles de lo que será la próxima versión de DirectX, denominada DirectX 10. En ésta se incluirá la quinta versión de los shaders, conformando en Shader Model 4.0. Por supuesto, NVIDIA y ATI están pensando en esta tecnología para optimizar sus productos y sacarle el mayor provecho. Hasta el momento, sólo se conocen los nombre clave de estos futuros chips: el G80 en el caso de NVIDIA y el R600 por parte de ATI.
Far Cry, una pequeña muestra de lo que pueden lograr los shaders 3.0
Habrá que esperar hasta el año que viene, cuando llegue Windows Vista (fecha en la cual se planea lanzar DirectX 10) para descubrir, a través de imágenes y videos de demostración, que se puede lograr a través de la quinta generación de shaders.Para descargar RenderMonkey desde la web de ATI Más detalles sobre los shaders en Wikipedia (en inglés) -
¿Y tú, qué opinas?
-
#1angel_100 domingo, 01 de julio de 2007, 21:02
hola q buen buen tema estan presentando me callo como anillo al dedo y quisiera saber si algun amigo ya sea el dueño del sitio o algun usuario me pueda asesorar sobre de donde puedo descargar o conseguir el pixel shader q tanto me hace falta mi tajeta de video es una ati radeon 9250 se los agradeseria muchisimo gracias
-
#2
-
#3CoTeCiO martes, 10 de julio de 2007, 22:52
Y yo tengo una Radeon 9200 y no me funciona ni el Aero del windows vista, quedó evidentemente claro que mi computadorcito quedó algo viejo ya... Sin contar que no tiene puerto PCI-X asi que no puedo aprovechar de las nuevas targetas de la gama Shader Model 3, y por cierto, no hablaste del Colin McRae Dirt, que igual tiene unos graficos bastante buenos.
-
#4Saracatunga jueves, 19 de julio de 2007, 23:58
Tengo una Ati Radeon x1050 de 256mb .. pero instalo el Splinter Cell: Double Agent .. que necesita Pixel Shaders 3.0 .. y me tira error .. Alguien me podria dar una mano ? pq no entiendo .. si la x1050 supuestamente soporta shaders 3.0 .. o quizas exista algun patch o algo para fixearlo .. muchas gracias .. mi mail es ke.bajon@gmail.com si tienen alguna idea mandenla ahi por favor
-
#5
-
#6viernes, 17 de agosto de 2007, 07:00
Solo quiero decir GRACIAS!!! por explicar todo esto bien y sencillo... y tengo la misma preg. k los demas sobre los pixel shaders no se pueden bajar de internet la única forma de conseguirlos es comprandote una trajeta de video que soporte los pixel shader ??,... segun tengo entendido solo se pueden tener comprando una tarjeta de video k la tenga y lo digo por que no he podido jugar juegos como fable: the lost chapters, ni Prince of Persia: the sands of time por mi tarjeta una Geforce 4 MX, pero increiblemente si pude jugar prince of persia warrior within y the two thrones.
-
#7
-
#8
-
#9miércoles, 22 de agosto de 2007, 04:22
hola tengo un problema tengo una tarjeta de video Intel® 945G Express Chipset y cuando intalo algunos juegos me dice no cuenta con shader :S cosa q es falso por q en la pag dice q mi tarjeta si cuenta con esto :S o nose si esta desacrivado tengo el directx 9.0c y el ultimo driver de mi tarjeta pero aun no soluciono el problema q podra ser espero q me puedas ayudar
-
#10sábado, 01 de septiembre de 2007, 07:35
segun lo que veo (todavia no lo probe en la mia) con el programa rendermonkey para las ati y el cgshaders para las nvidia se puede como "emular" el pixel shaders, segun lo que tengo entendido, tengo una radeon 9250 y no me andan varios juegos pero probare con el rendermonkey a ver si me ahorro unos cuantos pesos.Saludos
-
#11
-
#12
-
#13rafiki jueves, 13 de septiembre de 2007, 01:47
hola quisiera saber que tarjetas soportan el pixel shader 3.0 o cuales lo tienen porke mi tarjeta es una ati radeon x550 de 512 Mb pero tiene el pixel shader 2.0 y quiero jugar el lost planet rainbowsix vegas y no me deja jalarlos por esa falla de pixel shader.. porfavor ayudenme rafa_07_07@hotmai.com
-
#14mauricio miércoles, 19 de septiembre de 2007, 03:13
Tengo una Ati Radeon x330 o x550 de 256mb .. pero instalo el lost planet : que necesita Pixel Shaders 3.0 .. y me tira error .. Alguien me podria dar una mano ? pq no entiendo .. si la x330 o x550 supuestamente soporta shaders 3.0 .. o quizas exista algun patch o algo para fixearlo .. muchas gracias .. mi mail es mvaldivia_g@hotmail.com si tienen alguna idea mandenla ahi por favor
-
#15
-
#16mati lunes, 24 de septiembre de 2007, 02:32
bueno les cuento mi caso quiero jugar al spider-man 3, tengo todos los requicitos menos uno, tengo la placa ATI RADEON X800 GT y tiene 2.0 Pixel Shaders y Vertex Shaders y el spider pide 3.0 x solo eso cuando pongo el juego no se ve la imagen(pantalla en negro) algunas opciones para que vea el juego??
-
#17
-
#18rykrd0 martes, 02 de octubre de 2007, 07:38
bueno px, les explico mazo como es esto del shader en las taejetas ati, para los ke no sepan cuales modelos tiene y cuales no un determinado tipo de shader: Ati radeon 7000<->8000(pixel sahder 1.1) Ati radeon 8500<->9250(pixel shader 1.4) Ati radeon 9550<->x800(pixel sahder 2.0) Ati radeon 1300<->1950(pixel shader 3.0) Ati radeon HD2300<->2900(pixel shader 4.0) asi ke iia saben, ke grafica comprar y cual no, dependiendo de cual sea su necesidad o su economia
-
#19jueves, 11 de octubre de 2007, 20:22
Hola Tengo una ati 9200 que compre hace no mucho, y me acabo de dar cuenta que no servia desde hace casi 2 años ya, pues nisiquiera tiene el ps 2.0 Con esto me he percatado de que lo mas importante para ver la compativilidad de la tarjeta grafica con un juego no es la ram si no la version de shader y vertex. Las fabricantes de tarjetas graficas deberian poner mas enfacis en esto... de que me sirve una ati 2250 con 250 mb si solo tiene ps1.4? los 250 mb pesan menos que un popcorn, gracias
-
#20
-
Cargando...
-
nuevo comentario
Nombre Campo obligatorio
Email Escriba una dirección de correo electrónico con el formato sunombre@ejemplo.com.
Campo obligatorio
-



