Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2
ZrozumiećGPU
Kodpisanyprzezmłodegoprogramistęrozpoczynającegoprzygodęzprogramo-
waniemjestnajczęściejdedykowanycentralnemuprocesorowiCPU.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ącegrakę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-
nezprogramowaniemprocesoragrakiprzyuż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-
nioprzezprocesorkartygracznejGPU.Programytesądostosowanedowykony-
waniaobliczeńnadanychreprezentującychzarównogeometrięwprzestrzeni3D,
jakiobrazy,przyużyciuwysokozrównoleglonejarchitekturyprzetwarzaniaGPU.
WpoczątkowejfazierozwojuprogramowalnegopotokugracznegoOpenGL,
shaderybyłypisanewjęzykubardzoniskiegopoziomu,znanegopodnazwąARB
assemblylanguage.Uzyskaniebardziejzłożonychefektówgracznychniebyło