Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Wstęp
Otopodręcznikpodstawprogramowaniagrafikitrójwymiarowejzapomocąbiblio-
tekiOpenGL.ZaplanowałemgojakoaktualizacjęksiążkiGrafika.Fizyka.Metody
numerycznewydanejprzezWNPWNw2010roku.Składałasięzkilkuczęści:
pierwszadotyczyławłaśniegrafikitrójwymiarowejOpenGL,kolejne–fizykikla-
sycznejpunktówmaterialnychibryłsztywnychorazmetodnumerycznychuży-
wanychwsymulacjachciałmiękkichibryłsztywnych.
Czterylata,któreminęłyodwydaniatamtejksiążki,wnajmniejszymstopniu
niewpłynęłynaaktualnośćopisanejwniejfizyki.Niestetyczęśćdotyczącagrafiki
zdążyłasiębardzozestarzeć.Niedługopowydaniuksiążki,wmarcu2010roku
pojawiłysięnowewersjeOpenGLonumerach3.3i4.0,którewtejksiążcebędę
nazywałnowoczesnymOpenGL.Problempoleganatym,żetewersjeniedodają
dopoprzednichnowychfunkcji,rozbudowującychjeonowemożliwości.Mamy
turaczejdoczynieniaznowymotwarciemalbowręczrewolucją.Wielefunkcji
tradycyjnych,częstowykorzystywanych,uznanozaprzestarzałeisąoneobsługi-
wanewyłączniewmniejwydajnymprofiluzgodności.Profilrdzennypozbawio-
nyjesttakichudogodnień,jaknatychmiastoweprzesyłaniewerteksów,obsługa
macierzyczydomyślneshaderyimplementująceoświetlenieiteksturowanie.To
spororzeczy,któreteraznależyobsłużyćwinnysposób–korzystajączbibliotek
znalezionychwinternecielubzaimplementowaćsamodzielnie.Wysiłek,jakiwiąże
sięzprzejściemdonowoczesnegoOpenGLwprofilurdzennym,jestnatyleduży,
żewieluprogramistówniechcegopodejmować.Wrezultaciesporonowych
aplikacjinadalkorzystazOpenGLwprofiluzgodności,niewykorzystującpełnych
możliwościwspółczesnychkartgraficznych.
Zadaniem,któresobiepostawiłem,pisząctęksiążkę,byłowprowadzenieCzy-
telnikawświatnowoczesnego,alejednocześniebardziejwymagającegoOpenGL,
anajegoprzykładzie–wświatnowoczesnejgrafikitrójwymiarowej,nieuciekając
siędogotowychrozwiązań.Niechodzimizatemoto,żebyominąćproblem,ko-
rzystajączgotowychbibliotek,aosamodzielnąimplementacjęcałegopotrzebnego
kodu.Dlaprzykładu:wprzypadkumacierzymożnabyużyćpopularnejbiblioteki
GLM,któraniewymagaznajomościalgebrymacierzyiumiejętnościjejsamodziel-
nejimplementacji,aprzytymjestjużdobrzeprzetestowanaiwobectegowiarygod-
na.Alewówczasniewykorzystalibyśmytejszansy,jakądajenowoczesnyOpenGL
–szansypełnegozrozumieniapodstawgrafiki3D,awtymmacierzy(przynajmniej