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ąprogramowaniegrafiki3DjestOpenGL
ES5(przyrostekodang.embeddessystems).OpenGLEStowistociepodzbiór
OpenGL.BibliotekatadostępnajestrównieżwsystemieiOSfirmyApple.Należy
równieżzwrócićuwagęnaWebGL,częśćHTML5,któryumożliwiaprogramo-
waniegrafiki3Dnastronachinternetowych(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
grafiki3D.
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łpóźniejstopniowowprowadzićnowości
OpenGL3.3+,ajednocześniepokazać,jaktrzebazmodyfikowaćwcześniejsze
programykorzystającezefistarego”OpenGL,abydziałaływnowychwersjach.Ta-
kiepodejściejestmożliwe,ponieważwnowychwersjachsądowyborudwapro-
file:profilrdzenny(ang.coreprofile),wktórymtrzebasamodzielnieprogramować
shadery,niemafunkcjioperującychnamacierzach,aoknowymagaspecjalnych
zabiegówpodczastworzeniatzw.konteksturenderowania,orazprofilzgodności
(ang.compatibilityprofile)pozwalającynaskompilowaniekoduprzygotowanego
doOpenGLwwersjach1.*i2.*.Wtymrozdzialeprzedstawięinicjowanieokna
doOpenGLwprofiluzgodności,awkolejnychbędęstopniowomodyfikował
kodprojektuwtakisposób,abyostateczniemożliwebyłoprzełączeniedoprofilu
5Zob.artykułJ.MatulewskiGrafika3DnaurządzeniachprzenośnychzsystememAndroid,
opublikowanywczasopiśmieelektronicznymfiSoftwareDeveloperJournal”3/2013,s.28–36
(http://sdjournal.pl/system/articles/attachment1s/15091/original/SDJ032013.pdf?1384430005).