Obsah

¨

Shader (Stínovač)

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.


Hlavní typy shaderů

Moderní grafika vzniká v tzv. grafické rourě (Graphics Pipeline), kde na sebe různé typy shaderů navazují:

1. Vertex Shader (Vrcholový)

Zpracovává jednotlivé body (vrcholy) 3D modelů. Stará se o jejich pozici v prostoru, rotaci a deformaci.

2. Geometry Shader (Geometrický)

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.

3. Pixel / Fragment Shader (Pixelový)

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.


Vývoj shaderů: Od fixních k programovatelným


Praktické využití shaderů

Kromě her se shadery používají v mnoha dalších oblastech:


Jazyky pro psaní shaderů

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.