Shader jepočítačový program sloužící k řízení jednotlivých částíprogramovatelného grafického řetězcegrafické karty (přesnějiGPU). K tvorbě takových programů slouží specializovanéprogramovací jazyky tzv.shader jazyky (například jazykGLSL pro OpenGL,Cg od společnostiNVIDIA neboHLSL od společnostiMicrosoft určený pro APIDirectX,Xbox a Xbox 360). Shadery se rozdělují na několik základních typů podle toho, pro kterou jednotku grafického řetězce jsou určeny. V současnosti patří mezi nejdůležitější vertex, pixel a geometry shader. S příchodem posledních generací grafických karet a nových verzí grafických rozhraní (DirectX a OpenGL) se rovněž začínají rychle prosazovat shadery pro realizaciteselace.
Program, který se provede na každém vrcholu (vertexu) vstupní geometrie scény. Mezi nejčastější operace patří transformace vrcholu (násobení pohledovou a "world"maticí). Pomocí transformací lze však dosáhnout i různých grafických efektů — např. simulace pohybu vodní hladiny. Vždy do programu vstoupí jeden vrchol, je upraven a zase vystoupí, nelze tedy vrcholy přidávat či odebírat.[1]
Geometry shader na rozdíl od vertex shaderu umožňuje přidávat nebo odebírat vrcholy a tím ovlivňovat výslednou geometrii. Geometry shader lze využít například pro generování jednoduché vegetace (trávy) na povrchu nějakého objektu či k doplnění detailů existujícího modelu (např. vytvoření ostnů na modelu dinosaura) v reálném čase.[1]
Pixel shader je prováděn na každémpixelu rasterizované scény — pracuje tedy s jejím 2D obrazem. Mezi nejčastější operace patříaplikace textur případně další modifikace barvy pixelu.[1]
S příchodemDirect3D 11 aOpenGL 3.2 bylvykreslovací řetězec rozšířen o nové stupně realizujícíteselaci. Dva z těchto celkem tří stupňů jsou programovatelné. Názvy příslušných shaderů se u jednotlivých rozhraní liší. Pro Direct3D jsou toHull-shader aDomain-shader, pro OpenGL potomTessellation control shader (TC) aTessellation evaluation shader (TE). Tyto shadery umožňují měnit geometrii objektů (podobně jako geometry shader). Díky podpoře teselace zakotvené přímo vhardware (GPU) je možné do scény přidat velmi velké množství detailů (a to tam kde jsou potřeba např. dle vzdálenosti od kamery).[2]
Compute shader slouží k realizaci a možnému urychlení obecných algoritmů na grafickém procesoru. Ve specifikaciOpenGL se poprvé objevil ve verzi 4.3 aDirect3D přidalo jeho podporu ve verzi 11. Compute shader se také používá k technice zvanéGPGPU.
![]() | Tento článek je příliš stručný nebopostrádá důležité informace. Pomozte Wikipedii tím, že jej vhodněrozšíříte. Nevkládejte všakbez oprávnění cizí texty. |