Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
10
Wstęp
wzakresie,wjakimsąpotrzebnewgrafice).Idąctymtropem,przedstawiamteż
kod,którykorzystającwyłączniezfunkcjiWinAPI,umożliwiatworzenieokiengo-
towychdowyświetlaniagrafikigenerowanejzużyciemOpenGLwprofilurdzen-
nym,wrazzobsługąklawiaturyimyszy.BibliotekęGLFW,któramogłabynas
wtymwyręczyć,podobniejakbibliotekęGLM,omawiamwdodatkudoksiążki.
Takiepodejściepowoduje,żewwielumiejscachksiążkamabardzofitech-
niczny”charakter.Opisujęwniejkażdązmianękodu,starającsięunikaćniedo-
powiedzeń–każdyzmodyfikowanyfragmentjestzaznaczonyiomówiony.Jedną
zkonsekwencjitakiegopodejściajestsporaróżnorodnośćomawianychzagadnień.
Mimożegłównymtematempozostajeoczywiściegrafika3D,omawiamtakżeza-
gadnieniazwiązanezWinAPI,takiejaktworzenieokna,obsługaurządzeńwejścia
czyimplementacjawektorówimacierzywC++.Korzystamrównieżzjęzyka
GLSLpozwalającegonabezpośrednieprogramowaniekartygraficznej.Należysię
wobectegospodziewaćsporejliczbylistingów,któretrzebabędzieanalizować.
Choćksiążkapomyślanajestjakopodręcznikakademicki,wktórymniestronię
odwzorów(wczęścirozdziałówjestichnawetcałkiemsporo)iktórypozwoli
studentowilubosobiezainteresowanejprogramowaniemgrafiki3Dnastosunkowo
pełnezrozumieniepodstawtejdziedziny,poziomtrudnościniejestwyśrubowany.
Wzoryniewykraczająpozaprosteoperacjenamacierzach.
Książkętęmożnatraktowaćrównieżjakoopisprostejplatformydotworzenia
aplikacjikorzystającychzgrafiki3DwOpenGL.Wszystkieelementyzamknięte
sąwklasy(np.OknolubAktor),którychmożnaswobodnieużywaćwswoich
projektach,wpostaciopisanejwksiążcelubdowolnieprzekształconych.
AzatemCzytelniktrzymawrękupodręcznikpodstawgrafikitrójwymiarowej
omawianychnaprzykładzieOpenGL.Zasadnejestpytanie,dlaczegowybrałem
OpenGL,skoroświatgierkomputerowychjestdziśzdominowanyprzezkonkuren-
cyjnyDirectXMicrosoftu.Owadominacjajestniezaprzeczalnainiewielezmienia
fakt,żeOpenGLznajdujeobecnienoweprzyczółki:jestjedynymAPIpozwalają-
cymnatworzenieaplikacji3DwsystemieAndroid(mamnamyśliOpenGLES),
obiecującejesttakżewłączeniegodoHTML5(modułWebGL).Najważniejszym
powodemwyboruOpenGLbyłojednakcośinnego.Zaimponowałomiśmiałe
posunięciegrupyKhronoszarządzającejrozwojemOpenGL,którazdecydowała
sięnaodświeżenietegointerfejsuprogramistycznego,dostosowującgodomożli-
wościwspółczesnychkartgraficznych,alejednocześnierezygnujączezgodności
zestarszymiwersjami.Biorącpoduwagęmodeldystrybucjinowychwersji,moc-
nozwiązanyzzakupemnowegosprzętu,tobyłobardzoodważneposunięcie.
Wprawdzieniedokońcaudałosięjekonsekwentnieutrzymać–koniecznybył
kompromiswpostaciprofiluzgodności,aleprofilrdzennyjestcorazczęściejuży-
wanyipowolistajesięstandardemOpenGL,choćuczciwietrzebaprzyznać,że
nadaldalekomudozdobyciadominacjinarynkugier.
JacekMatulewski,maj2014rok