Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Shader

Z Wikipedie, otevřené encyklopedie
(přesměrováno zShadery)
Další významy jsou uvedeny na stránceShader (rozcestník).

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,XboxXbox 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.

Vertex shader

[editovat |editovat zdroj]

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

[editovat |editovat zdroj]

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 (fragment) shader

[editovat |editovat zdroj]

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]

Shadery pro teselaci

[editovat |editovat zdroj]

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

[editovat |editovat zdroj]

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.

Reference

[editovat |editovat zdroj]
  1. abcShader Stages (Direct3D 10) (anglicky)
  2. Tessellation Overview (anglicky)

Externí odkazy

[editovat |editovat zdroj]
Pahýl
Pahýl
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.
Autoritní dataEditovat na Wikidatech
Citováno z „https://cs.wikipedia.org/w/index.php?title=Shader&oldid=24258277
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp