Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Wstęp
Otopodręcznikpodstawprogramowaniagrakitrójwymiarowejzapomocąbiblio-
tekiOpenGL.ZaplanowałemgojakoaktualizacjęksiążkiGraka.Fizyka.Metody
numerycznewydanejprzezWNPWNw2010roku.Składałasięzkilkuczęści:
pierwszadotyczyławłaśniegrakitrójwymiarowejOpenGL,kolejnezykikla-
sycznejpunktówmaterialnychibryłsztywnychorazmetodnumerycznychuży-
wanychwsymulacjachciałmiękkichibryłsztywnych.
Czterylata,któreminęłyodwydaniatamtejksiążki,wnajmniejszymstopniu
niewpłynęłynaaktualnośćopisanejwniejzyki.Niestetyczęśćdotyczącagraki
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łączniewmniejwydajnymproluzgodności.Prolrdzennypozbawio-
nyjesttakichudogodnień,jaknatychmiastoweprzesyłaniewerteksów,obsługa
macierzyczydomyślneshaderyimplementująceoświetlenieiteksturowanie.To
spororzeczy,któreteraznależyobsłużyćwinnysposóbkorzystajączbibliotek
znalezionychwinternecielubzaimplementowaćsamodzielnie.Wysiłek,jakiwiąże
sięzprzejściemdonowoczesnegoOpenGLwprolurdzennym,jestnatyleduży,
żewieluprogramistówniechcegopodejmować.Wrezultaciesporonowych
aplikacjinadalkorzystazOpenGLwproluzgodności,niewykorzystującpełnych
możliwościwspółczesnychkartgracznych.
Zadaniem,któresobiepostawiłem,pisząctęksiążkę,byłowprowadzenieCzy-
telnikawświatnowoczesnego,alejednocześniebardziejwymagającegoOpenGL,
anajegoprzykładziewświatnowoczesnejgrakitró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łnegozrozumieniapodstawgraki3D,awtymmacierzy(przynajmniej