Sombreador de píxel

De Wikipedia, la enciclopedia libre

Un sombreador de píxel (del inglés pixel shader, con sigla PS) es un programa de sombreado, normalmente ejecutado en la unidad de procesamiento gráfico. En OpenGL se conoce como sombreador de fragmento (fragment shader).

Función[editar]

La función de un sombreador por píxeles es permitir realizar efectos gráficos con mayor precisión; o técnicas que bien o no son posibles de realizar por vértice, o alternativamente requerirían una malla de gran densidad. Por ejemplo, es posible implementar el modelo de sombreado Phong píxel a píxel logrando reflexiones especulares definidas. Para emular este efecto sin un sombreador de pixeles, se podría utilizar un sombreador de vértices pero con una malla de gran densidad, lo que aumenta los requerimientos de memoria en el host.

Otros efectos tales como mapeado de normales, bump-mapping, mapeo de paralaje, requieren procesamiento por pixel y es donde el sombreador de pixeles ha abierto posibilidades gigantescas.

Asimismo, se utiliza para procesamiento de imágenes 2D a través de la GPU.

Programación[editar]

Los sombreadores de píxeles están programados en los siguientes lenguajes: Ensamblador, Cg, GLSL (OpenGL), HLSL (DirectX).

Compatibilidad[editar]

Hardware[editar]

El siguiente cuadro muestra un resumen, de las tarjetas gráficas, que junto con el chip gráfico soporta la versión DirectX de sombreador de píxel. Chips gráficos que generalmente son plenamente compatibles con qué versión de sombreadores de píxeles empezando por los primeros (v 1.1 en adelante).

(Los productos que todavía no están disponibles se indican con cursiva.)


PS version Direct3D version 3DLabs ATI Intel Matrox NVIDIA S3 Graphics SiS XGI
1.0/1.1 8.0 - - - - GeForce 3 series - Xabre-Series -
1.2 8.0a Wildcat VP - - - - - - -
1.3 8.0a - - - Parhelia series GeForce 4 Ti/4200Go series - Mirage 2 -
1.4 8.1 - Radeon R200 (8500-9250) - - - - - Volari V3 series (except V3XT)
2.0 9.0 Wildcat Realizm Radeon R300 (9500-9800, X300-X600) Intel GMA 900, 950, 3000, 3100, 3150 - - DeltaChrome, GammaChrome, Chrome S2x series Mirage 3, Mirage 3+ Volari V3XT, Volari V5 series, Volari V8 series, Volari 8300, Volari XP10
2.0a 9.0a - - - - GeForce FX series - - -
2.0b 9.0b - Radeon R420 (X700-X850) - - - - - -
3.0 9.0c - Radeon R520 (X1300-X1950) Intel GMA X3000 - GeForce 6 series, GeForce 7 series - - -
4.0 10 - Radeon R600 (HD 2400-HD 2600 2900) Intel GMA X3100, X3500, X4500 - GeForce 8 series, GeForce 9 Series, GeForce 200 Series, Quadro FX 1700 - Mirage 4 -
4.1 10.1 - Radeon R600 (HD 3xxx), Radeon R700 (HD 4xxx) Intel GMA 500 - - Chrome 400 Series -
5.0 11 - Radeon R800 (HD 5xxx) - GeForce 400 Series, GeForce 500 Series, GT100 Series - - -

ndo la técnica [nivel de detalle LOD][1].

Píxel/Fragment shader: En primer lugar aclarar la difererencia entre fragmento y píxel. Desde la Khronos group se apuesta por diferenciar que fragmento es lo que se procesa puesto que existen múltiples relacionados con un mismo píxel de la pantalla. La terminología seguida por Microsoft y Nvidia es la de píxel que puede dar lugar a confusión ya que no se trabaja con lo de la pantalla sino con los de cada figura. En este procesador se pueden hacer diversas transformaciones como cambiar