A pixel shader is a type of shader program, often executed on a graphics processing unit. It is typically used for effects such as bump mapping and color toning, which provide crisper and more realistic graphics. Microsoft's Direct3D and Silicon Graphics' OpenGL support shaders. (Note: In OpenGL parlance this is called a fragment, so OpenGL calls these fragment shaders).
Contents |
A pixel shader computes color and other attributes of each pixel. Pixel shaders range from always outputting the same color, to applying a lighting value, to doing bump mapping, shadows, specular highlights, translucency and other phenomena. A pixel shader alone cannot produce very complex effects, because it operates only on a single pixel, without knowledge of a scene's geometry or of neighboring pixels. A pixel shader is a computation kernel function. Pixel shaders can alter the depth of the pixel (for Z-buffering), or output more than one color if multiple render targets are active.
A shader is a program which controls the shading of pixels and display such attributes of display processor. Basically the rasterization of image is affected by the pixel shader as extra processing is required for this purpose. The interpolation used to determine the intensities of different colors such as bicubic interpolation for putting the pixels in the frame buffer.
Shader" comes from Pixar's RenderMan ™ - which is a program that takes an entire description of a scene, from camera positions - through object geometry - to a final rendering. RenderMan was introduced in 1989, but it wasn't really until the 1995 release of the movie Toy Story that the general public was introduced to the power of RenderMan. About this same time there was a revolution taking place on the graphics boards of PCs - the boards were evolving at a faster and faster clip and the features that were showing up on "commodity" boards were rivaling those previously found only on workstations.
As Pixar continued to make hit after hit using RenderMan, soon other movie studios joined in. Meanwhile, the PC games community was finding new uses for the powerful graphics cards that new PCs were now equipped with. Light maps in particular were soon finding their way into games, followed by bump maps and procedural vertex generation. In fact it was the games community that soon started clamoring for more features, and in order to differentiate themselves from the pack, some graphics card vendors heeded this call and soon started layering more and more features onto their cards. This had a snowball effect of creating a larger and larger installed base of fairly sophisticated PC that had a good selection of graphics features.[1]
Pixel shaders uses different languages depending on which API they use. Popular APIs include DirectX and OpenGL.
This shows which cards, graphic chips, and DirectX-Version supports which Pixel-Shader-Version. Graphic chips usually are fully downward compatible (3.0 chip supports 2.0, 1.1, etc.).
| 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/Go 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 | - | - | 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 2900) | Intel GMA X3100, X3500 | - | 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 R8xx | - | GeForce 300 Series, GT300 Series | - | - | - |
While the ATI Radeon 7xxx series and NVIDIA GeForce2/GeForce4 MX series do have somewhat programmable pixel pipelines, they are not flexible enough to run shader programs of level 1.0. Shader Model 1.1 was the first standard used in games, and was first supported in DirectX 8.0.
As of 2008, there are still a large number of users with low end PCs. Software tweaks, such as SwiftShader, swShader and 3D-analyze, can sometimes be used as a workaround for games requiring pixel shaders. However, this often renders games unplayable. Forcing such games to run on unsupported cards usually results in unrendered textures and lighting, as well as poor performance. Additionally, many online anti-cheat systems (such as Punkbuster) perform file and memory scans to ensure that game files have not been modified. As a result, those who attempt to play online using such workarounds may be unable to play, and in a worst case scenario, may in fact have their account/CD-key banned.
Some entry-level video cards supporting pixel shaders are considered affordable. As a result, replacing an unsupported card with a newer one is not only viable, but may also be more desirable than using workarounds.
stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History