Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
14
Shadery.ZaawansowaneprogramowaniewGLSL
wtedyłatwymzadaniem,tymbardziej,żedostarczanafunkcjonalnośćbyłabardzo
ograniczona.WspółcześnieprogramytesąpisanewjęzykupodobnymdoC/C++,
aichzastosowaniejestnatyleszerokie,żewykraczajużpozakonwencjonalne
generowaniegraki3D.
OcjalnymjęzykiemprogramowaniashaderówwbiblioteceOpenGLjest
GLSL.Jegopełnąspecykację[1](podobniejaksamegoAPI[2])możnaodnaleźć
naocjalnejstronieinternetowejbiblioteki(www.opengl.org).Zalecamywszystkim
osobom,szczególnietym,którepragnązawodowozwiązaćsięzprogramowalną
graką3D,zapoznaniesięztymdokumentemlubchociażjegoprzejrzenie.
BibliotekaOpenGLudostępniakilkarodzajówshaderów.Każdyznichjestwy-
specjalizowanywwykonywaniuinnychzadańijesturuchamianynainnymetapie
renderingu1.WOpenGL4.5istniejepięćpodstawowychshaderów(VS,TCS,TES,
GS,FS),powstałychzmyśląoprzetwarzaniugraki3Dorazzaprojektowanych
specjalniepodtymkątem.Pierwszeczteryodpowiadajązaprzetwarzaniegeome-
trii,natomiastostatnizajmujesięprzetwarzaniemobrazu.Istniejeponadtojeszcze
jedentypshadera,CS,zwanyshaderemobliczeniowym,któregomożliwościpo-
zwalająnabardziejotwarteielastyczneprogramowanieGPU.Nazwywszystkich
shaderówzaprezentowanowtabeli2.1.
Tabela2.1.NazwydostępnychwOpenGL4.5shaderów
Shaderwierzchołków
Shaderkontroliteselacji
Shaderewaluacjiteselacji
Shadergeometrii
Shaderfragmentów
Shaderobliczeniowy
Polskawersjastosowanawksiążce
Vertexshader
Tessellationcontrollshader
Tessellationevaluationshader
Geometryshader
Fragmentshader
Computeshader
Oryginalnaangielskawersja
Skrótstosowanywksiążce
TCS
TES
GS
CS
VS
FS
Krótkimomówieniemkażdegozpowyższychetapówzajmiemysięwroz-
dziale3.Wrozdziale6natomiastdokładnieomówimyichprogramowanie.
2.2.ArchitekturaGPU
SamaznajomośćjęzykaGLSLniedostarczapełnegoobrazudziałaniashaderów,
aszczególnietego,wjakisposóbsąonewykonywaneprzezwarstwęsprzętową.
Znajomośćdziałaniaprocesoragracznegoijegoarchitekturyjestszczególnieważ-
na,gdyzależynamnapisaniuoptymalnegokodu.Możnaoczywiścieprogramować
1Zewzględunaścisłepowiązanieshaderówzetapamiprzetwarzaniawpotoku,pojęciashader
ietapbędziemystosowaćzamiennie.