Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.InicjowanieoknawtradycyjnymOpenGL
13
Czytooznacza,żeOpenGLjestrozwiązaniemniszowyminiewartymuwa-
gi?ByćmożewWindowsnieodzyskawnajbliższychlatachswojejdawnejpo-
zycji,aleostatnioutworzyłnoweprzyczółkiwinnychsystemachoperacyjnych.
WAndroidzie,platformienaktórąobecniepowstajechybanajwięcejaplikacji
igier,jedynąbibliotekąumożliwiającąprogramowaniegraki3DjestOpenGL
ES5(przyrostekodang.embeddessystems).OpenGLEStowistociepodzbiór
OpenGL.BibliotekatadostępnajestrównieżwsystemieiOSrmyApple.Należy
równieżzwrócićuwagęnaWebGL,częśćHTML5,któryumożliwiaprogramo-
waniegraki3Dnastronachinternetowych(działapostronieklienta).Jestjesz-
czeniezbytpopularny,alezewzględunaszybkorosnącąpopularnośćHTML5,
którywychodzizeswegonaturalnegoobszaruaplikacjiwebowychiprzenikado
światarozrywkiiaplikacjibiznesowych,wróżęWebGLwielkąkarierę.Aprzecież
torównieżodmianaOpenGL.Najważniejszejednak,żeOpenGLznowuszybko
sięrozwijaizpewnościąznówdotrzymujekrokuDirect3D.Wersje3.3i4speł-
niająwszystkiewymaganiastawianenowoczesnyminterfejsomprogramistycznym
graki3D.
WobectegoCzytelnikmożesobiezadaćpytanie,dlaczegodonaukiOpenGL
wybrałemakuratsystemWindows,wktórymniejestontakpopularny,jakDirectX,
aniektóryśzsystemówdourządzeńprzenośnychlubaplikacjęwebową.Powód
jestprosty.ChciałemprzedstawićpełnąwersjęOpenGL,bezograniczeń,najakie
skazanesąOpenGLESiWebGL.Mniejszeznaczeniemiałydlamniedoniesienia,
żenp.OpenGLjestszybszyodDirectXnawetwWindows.
Profilzgodnościiprofilrdzenny
WbrewtytułowiksiążkizaczniemyodtradycyjnegoOpenGL,zgodnegonawetze
starąwersją1.1.Dziękitemubędęmógłźniejstopniowowprowadzićnowości
OpenGL3.3+,ajednocześniepokazać,jaktrzebazmodykowaćwcześniejsze
programykorzystającezefistarego”OpenGL,abydziałaływnowychwersjach.Ta-
kiepodejściejestmożliwe,ponieważwnowychwersjachsądowyborudwapro-
le:prolrdzenny(ang.coreprole),wktórymtrzebasamodzielnieprogramować
shadery,niemafunkcjioperującychnamacierzach,aoknowymagaspecjalnych
zabiegówpodczastworzeniatzw.konteksturenderowania,orazprolzgodności
(ang.compatibilityprole)pozwalającynaskompilowaniekoduprzygotowanego
doOpenGLwwersjach1.*i2.*.Wtymrozdzialeprzedstawięinicjowanieokna
doOpenGLwproluzgodności,awkolejnychbędęstopniowomodykował
kodprojektuwtakisposób,abyostateczniemożliwebyłoprzełączeniedoprolu
5Zob.artykułJ.MatulewskiGraka3DnaurządzeniachprzenośnychzsystememAndroid,
opublikowanywczasopiśmieelektronicznymSoftwareDeveloperJournal”3/2013,s.28–36
(http://sdjournal.pl/system/articles/attachment1s/15091/original/SDJ032013.pdf?1384430005).