Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2
ZrozumiećGPU
Kodpisanyprzezmłodegoprogramistęrozpoczynającegoprzygodęzprogramo-
waniemjestnajczęściejdedykowanycentralnemuprocesorowi–CPU.Nauka
tworzeniategotypuprogramów,szczególnienapoczątkowychjejetapach,jeststo-
sunkowoprostainiewymagagłębszejznajomościmechanizmówdziałaniaukładu
obliczeniowego,atymbardziejszczegółówjegoarchitektury.Ważniejszaokazuje
sięnajczęściejznajomośćsamegojęzyka.ZprogramowaniemGPUsytuacjawy-
glądaniecoinaczej.Tutajznajomośćdziałaniachoćbyważniejszychmechanizmów
pracyukładuiprzetwarzaniapotokowegojestbardzoistotna.
NajwiększymobszaremzastosowańdlamocyobliczeniowejGPUsąaplikacje
czasurzeczywistego,generującegrafikę3D(wszczególnościgry).Aplikacjetego
typuczęstosąwydajnościowoniezwyklewymagające,cowymuszanaprogrami-
stachoptymalnerozporządzaniecałądostępnąmocąGPU.Tozkoleiwymaga
bardzodobrejznajomościzasaddziałaniamechanizmówukładu,naktórymtakie
aplikacjesąuruchamiane.
Wtymrozdzialepostaramysięprzybliżyćnajważniejszeelementy,związa-
nezprogramowaniemprocesoragrafikiprzyużyciuAPIOpenGL,uwzględniając
przytymjegoarchitekturę.Wyjaśnimy,czymtaknaprawdęsąshaderyorazgdzie
iwjakisposóbsąonewykonywane.Niebędzietojednakpełnekompendium
wiedzynatentemat,ajedyniezalążekowielebardziejrozległegotematu,na
którymożnabynapisaćosobnąksiążkę.
2.1.CotojestShader?
Shadertonapisanyprzezprogramistęprogram,któryjestwykonywanybezpośred-
nioprzezprocesorkartygraficznej–GPU.Programytesądostosowanedowykony-
waniaobliczeńnadanychreprezentującychzarównogeometrięwprzestrzeni3D,
jakiobrazy,przyużyciuwysokozrównoleglonejarchitekturyprzetwarzaniaGPU.
WpoczątkowejfazierozwojuprogramowalnegopotokugraficznegoOpenGL,
shaderybyłypisanewjęzykubardzoniskiegopoziomu,znanegopodnazwąARB
assemblylanguage.Uzyskaniebardziejzłożonychefektówgraficznychniebyło