Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
10
Wstęp
wzakresie,wjakimsąpotrzebnewgrace).Idąctymtropem,przedstawiamteż
kod,którykorzystającwyłączniezfunkcjiWinAPI,umożliwiatworzenieokiengo-
towychdowyświetlaniagrakigenerowanejzużyciemOpenGLwprolurdzen-
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żdyzmodykowanyfragmentjestzaznaczonyiomówiony.Jedną
zkonsekwencjitakiegopodejściajestsporażnorodnośćomawianychzagadnień.
Mimożegłównymtematempozostajeoczywiściegraka3D,omawiamtakżeza-
gadnieniazwiązanezWinAPI,takiejaktworzenieokna,obsługaurządzeńwejścia
czyimplementacjawektorówimacierzywC++.Korzystamrównieżzjęzyka
GLSLpozwalającegonabezpośrednieprogramowaniekartygracznej.Należysię
wobectegospodziewaćsporejliczbylistingów,któretrzebabędzieanalizować.
Choćksiążkapomyślanajestjakopodręcznikakademicki,wktórymniestronię
odwzorów(wczęścirozdziałówjestichnawetcałkiemsporo)iktórypozwoli
studentowilubosobiezainteresowanejprogramowaniemgraki3Dnastosunkowo
pełnezrozumieniepodstawtejdziedziny,poziomtrudnościniejestwyśrubowany.
Wzoryniewykraczająpozaprosteoperacjenamacierzach.
Książkętęmożnatraktowaćrównieżjakoopisprostejplatformydotworzenia
aplikacjikorzystającychzgraki3DwOpenGL.Wszystkieelementyzamknięte
sąwklasy(np.OknolubAktor),którychmożnaswobodnieużywaćwswoich
projektach,wpostaciopisanejwksiążcelubdowolnieprzekształconych.
AzatemCzytelniktrzymawrękupodręcznikpodstawgrakitró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ółczesnychkartgracznych,alejednocześnierezygnujączezgodności
zestarszymiwersjami.Biorącpoduwagęmodeldystrybucjinowychwersji,moc-
nozwiązanyzzakupemnowegosprzętu,tobyłobardzoodważneposunięcie.
Wprawdzieniedokońcaudałosięjekonsekwentnieutrzymaćkoniecznybył
kompromiswpostaciproluzgodności,aleprolrdzennyjestcorazczęściejuży-
wanyipowolistajesięstandardemOpenGL,choćuczciwietrzebaprzyznać,że
nadaldalekomudozdobyciadominacjinarynkugier.
JacekMatulewski,maj2014rok