¨
Shader je krátký program napsaný ve specializovaném jazyce (např. HLSL pro DirectX nebo GLSL pro OpenGL), který grafická karta používá k vykreslení scény. Na rozdíl od běžných programů, které běží na procesoru (CPU) postupně, shadery běží na tisících jader grafického procesoru (GPU) současně, což umožňuje plynulé vykreslování složité 3D grafiky v reálném čase.
Moderní grafika vzniká v tzv. grafické rourě (Graphics Pipeline), kde na sebe různé typy shaderů navazují:
Zpracovává jednotlivé body (vrcholy) 3D modelů. Stará se o jejich pozici v prostoru, rotaci a deformaci.
Dokáže vytvářet novou geometrii přímo za běhu. Může vzít jeden bod a vytvořit z něj trojúhelník nebo jiný tvar.
Nejdůležitější pro výsledný vzhled. Počítá barvu každého bodu na obrazovce. Bere v úvahu světlo, textury a stíny.
Kromě her se shadery používají v mnoha dalších oblastech:
Podobně jako se programy píší v C++ nebo Pythonu, shadery mají své jazyky:
| Jazyk | Rozhraní (API) | Vývojář |
|---|---|---|
| HLSL | DirectX | Microsoft |
| GLSL | OpenGL / Vulkan | Khronos Group |
| Metal Shading Language | Metal | Apple |
| Cg | Multiplatformní | NVIDIA (ukončený vývoj) |
Související pojmy: DirectX, GPU, Pixel, Ray Tracing, Post-processing, OpenGL.