Graphic Shaders are used throughout the game and movie industry to improve onscreen graphics. They are versatile, doing important tasks like making computer rendered aliens look realistic, providing the ripples on a background lake or growing fur on the latest Pixar monster. In the PC world, programmers are often delighted to find that shaders are nothing more than a miniature program that is optimized to run on the computers GPU.
This happiness fades when they start exploring the strange programming model underlying shaders however. Because shaders are strung together in an unusual fashion and run on a massive parallel processer developers shouldn’t use their traditional OO or procedural approach to writing code. Writing effective shaders requires a mind shift regarding how to craft a useful algorithm. To top it off, shaders are written in a unfamiliar C-like language. In the Microsoft DirectX world the dominant language is High Level Shader Language or HLSL.