Pixel shaders y Vertex shaders

Me pareció interesante postearlo, ya que es bueno saberlo a la hora de elegir una placa de video...
¿Qué son? ¿Para qué se utilizan? ¿Qué placas lo incluyen? Todas estas preguntas y otras más serán contestadas en el siguiente informe



Pixel shaders y Vertex shaders


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.

Directx
Una tarjeta ASUS basada en el GeForce 256, primero en incorporar Transform & Lighting por hardware


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.

pixel
Una parte del famoso árbol que mostraba las bondades de
la tecnología de Transformación e Iluminación


Una breve explicación de qué son, cómo funcionan y dónde se implementan comúnmente
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.

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.

model
Comparen la diferencia entre aplicar y no aplicar pixel shaders. Es perceptible a simple vista, no como muchos otros efectos conocidos en el rubro


shader
Esquema de funcionamiento de una Unidad de Pixel Shader en la Radeon X800


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).

A lo largo de su corta historia, los shaders fueron evolucionando y mejorando sus prestaciones. Desde sus comienzos hasta el dia de hoy, detallado a continuación.
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.
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.

DirectX 10 (Pixel Shader 4.0 - Vertex Shader 4.0): Familia GeForce 8 de NVIDIA. Familia HD2000 de ATI.

DirectX 10.1 (Pixel Shader 4.1 - Vertex Shader 4.1): Familia HD3800 de ATI



vertex
Shader Model 3.0


Pixel shaders y Vertex shaders
Shader Model 4.0


Espero que les haya resultado interesante y/o útil. Saludos!

Fuente

Comentarios Destacados

@ThePavazo +15
Animal4146 dijo:-.-, no tendras algun link para descargarlos?????'?? los necesito para el bully scolarship edition

estupido
@XXXDERLISXXX +6
yo tengo Ati Radeon Xpress1200 pixel shader 2.0
Directx

41 comentarios - Pixel shaders y Vertex shaders

@leozyklon +3
tengo un GeForce 6200 de 256mb y no puedo jugar al Virtua Tennis 3 porque no tienen pixel shared 2.0
@Alvin_12
Probaste usando un Emulador de Pixel Shader?
@mayonero
lobo te pasaste......
@Hardcore
Muy buena info... leozyclon, son cosas que pasan....
@jmbenetti
Muy buen post. Había leído algo sobre esto pero no tan bien explicado.
@CHIPI
Muy interesante, nunca se me había dado por buscar sobre esto.. gracias.

+5
@nacho85
la gforce 6200 tiene 3.0...yo me estoy bajando justo el virtua tennis 3...espero q me ande...muy bueno el post
@abrasevisto
Buenisimo el resumen, para muchos, me incluyo, es util, no para comprar placas quiza, pero si para leer con mas claridad los requerimientos de las aplicaciones, fueran juegos u otras cosas. Me gusto +5
@Braku
la 6200 soporta 3.0, pero cuando pongan el juego, bajen el juego al minimo q sino se va cag*r para tirarlo
@masaplus +3
tengo un GeForce 6200 de 256mb y se puede jugar lo mas bien al call of duty 4
@lawill
holas hola tengo una nvidia gforce 6800 de 244 mb
no me corre ningun juego casi , por q tiene direct x 11 y vertex shader 4 , no tenes algun software o solucion ¿? yo baje el 3d analize y me lee algunos juegos nomas con el programa este.

chau aludos muy buen post
@Horusito
a mi me andan mal algunos juegos por no tener el fking pixel shader
@gonzalolog
shader model 4.0 ?????,yo tengo 3.0 y nvidia gforce 8600gt 512mb
@gonzalolog -1
,buena la info,pero las imagenges?
@Ea287
no hay imagenes!!
@gsam_12 +4
ME COMPRE UNA 9500 GT!!! ES LO MEJORRRR!!
@san5630
ATI RADEON 5670 512MB DDR5
@copy_paste +5
loco, antes venian las placas aceleradoras compatibles con todos los juegos, pero ahora un puto de mierda, que ojalá se rebuelque en su puta tumba, invento el pixer shader 3.0 y mas...
y la gente que tiene placas inferiores como yo (nvidia geforce 5200 fx) no puede jugar lo juegos que requieran esa cantidad de pixel shader.
@Nenoo -3
Nvidia XFX GeForce GT 220 1gb DDR2
support directX 10.1( tengo el 11) shader model 4.1
OpenGL 3.1 tbn...
tecnologia CUDA y PhysX

lol
@Animal4146 -9
-.-, no tendras algun link para descargarlos?????'?? los necesito para el bully scolarship edition
@ThePavazo +15
Animal4146 dijo:-.-, no tendras algun link para descargarlos?????'?? los necesito para el bully scolarship edition

estupido
@proxy16 +1
quiero hacer un comentario imbecil y intel capo donde entra
@Alejandrosei1 -1
ThePavazo dijo:
Animal4146 dijo:-.-, no tendras algun link para descargarlos?????'?? los necesito para el bully scolarship edition

estupido

Busca un emulador pero cuidado que te cagan la Pc
@XXXDERLISXXX +6
yo tengo Ati Radeon Xpress1200 pixel shader 2.0
Directx
@Peraxxreal
gsam_12 dijo:ME COMPRE UNA 9500 GT!!! ES LO MEJORRRR!!


yo tmb pero de zotac y venia con tools para overclockear y mejorar rendimiento, ademas de un sticker para la torre del pc
@Oniisan -1
leozyklon dijo:tengo un GeForce 6200 de 256mb y no puedo jugar al Virtua Tennis 3 porque no tienen pixel shared 2.0

geforce es la placa para n99bs

Ati Radeon HD series 1gb pixelshader 3.0 r.r
@ANYEL_ZUAJ
veras men yo tengo un juego antiguo que se llama (just cause)pero me dice que no se puede iniciar por que me falta la actualizacion de mis controladores de mi tarjeta grafica y directx y que me asegure que soporte el vertex shader 1.1 y pixel shader 1.1. no tenia la menor idea asi que segun me descargue el directx 11 y segun lo instale y como tengo win7 le puse win/R o ejecutar y le puse dxdiag para ver que directx tenia y me dice que el 11. voy a everest para ver mi informacion del sistema de de mi tarjeta de video o a la opcion gpu y me dice que tengo lo siguiente: Intel(R) 82945G Express Chipset Family.Placa de video Intel 82945G/GC/GZ Graphics Controller. EL CASO QUE VOLVI A INICIAR EL MISMO JUEGO Y ME DICE LO MISMO SOBRE EL PIXEL Y EL VERTEX. VOY A RESUMEN DEL SISTEMA EN EVEREST IGUAL Y ME DICE QUE TENGO EL DIRECTX 11. BUENO EN FIN NECESITO UNA TARJETA DE VIDEO NUEVA? O QUE ES LO QUE NECESITO? POR SI ACASO MI INFORMACION DE MI PC ES.
*INTEL ATOM 230, 1600 MHZ
*DE LA COMPANIA ECS
*SEGUN TENGO EL DIRECTX 11.
*Placa de video Intel(R) 82945G Express Chipset Family (256 MB)
*Aceleradora 3D Intel GMA 950
*LA TARJETA YA VIENE INTEGRADA CON 256 MB. A LA PLACA MADRE.

Y POR ULTIMO COMO SE QUE ENTONCES QUE VERTEX O SHADER TENGO.. PENSÉ QUE YA VENIA CON EL DIRECTX 11. DISCULPA LA IGNORANCIA O PREGUNTAS TONTAS Q ALO MEJOR HICE AKI.
@guti_14
tengo una tarjeta de video ATI RADEON 9600 Family Pro de 256 mb con Pixel Shader y Vertx Shader de 2.0
@Pokemon150
tengo una ati radeon connect 3d 9550 ¿entra? mandame un mp lo necesito para el juego war inc battlezone .
@ThERicKy -6
AYUDA !! TENGO UN NVIDIA G210 1024 MB 64 BIT DDR3 QUE DEBO HACER
@elmayo_85 -21
yo tengo una gtx 580 1gb twin froz power edition
16gb de ram
y un I7 2600k

corro algo bueno con eso?
@wolfteca
Che una pregunta mi compu dice que tengo Pixel Shader version y Vertex Shader version 4.0 pero cuando descargo un juego me dice que no tengo?
@Alexzflame
Viejo post pero con una gran utilidad!!!