- -5%
ebook Grafika 3D czasu rzeczywistego
Jacek Matulewski
Wydawca:
Wydawnictwo Naukowe PWN
Rok wydania:
2014
Przedmiotem książki jest OpenGL, czyli popularny interfejs programistyczny służący do tworzenia aplikacji z grafiką 3D. W ostatnich dwóch latach został on całkowicie zreformowany, w efekcie czego większość książek i materiałów na jego temat stała się nieaktualna. W publikacji przedstawione są nowe wersje OpenGL (od wersji 3.3 wzwyż) w sposób odpowiedni zarówno dla początkujących programistów grafiki 3D, w szczególności studentów informatyki, jak i tych, którzy ze starego OpenGL chcieliby „się przesiąść” na nowego. Książkę można traktować jak podręcznik akademicki, w którym na przykładzie OpenGL omówione są podstawowe pojęcia grafiki 3D. Poznasz: ● sposoby tworzenia aplikacji korzystających z grafiki trójwymiarowej tworzonej za pomocą OpenGL, w tym z nowych wersji tej biblioteki, ● metody programowania shakerów w GLSL, ● teoretyczne podstawy rachunku macierzy niezbędne w grafice trójwymiarowej, ● model oświetlenia Phonga i nauczysz się go implementować. Powinieneś znać: ● podstawy programowania w C++, w tym programowania obiektowego, ● podstawy programowania dla systemu Windows.
Spis treści ebooka Grafika 3D czasu rzeczywistego
Wstęp 9Rozdział 1. Inicjowanie okna w tradycyjnym OpenGL 11
Kilka ustaleń 11
Profil zgodności i profil rdzenny 13
Tworzenie projektu i dostosowanie go do współpracy z OpenGL 14
Tworzenie okna za pomocą funkcji WinAPI. Klasa okna 16
Przystosowanie okna do współpracy z OpenGL za pomocą funkcji biblioteki WGL. Klasa OknoGL 25
Informacje o używanej wersji OpenGL i karcie graficznej 28
Przygotowanie i rysowanie sceny 29
Kolory 34
Zabawy kamerą 35
Tryb pełnoekranowy 39
Rozdział 2. Wektory i macierze kwadratowe 44
Wektory 44
Zapis za pomocą wersorów 45
Iloczyn skalarny 46
Iloczyn wektorowy 47
Przykład 48
Macierze kwadratowe 50
Czym są macierze? 50
Iloczyn macierzy oraz mnożenie wektora przez macierz 51
Przykład 52
Mnożenie macierzy nie jest przemienne 53
Macierz jednostkowa 53
Macierz odwrotna 54
Wyznacznik macierzy 54
Przykład 55
Sprytny zapis iloczynu wektorowego 57
Obliczanie macierzy odwrotnej 57
Przykład 58
Macierz transponowana 60
Operator gwiazdka 61
Macierz ortonormalna 61
Macierz przekształcenia układu współrzędnych 63
Iloczyn skalarny wektorów i macierze 64
Rzut wektora na kierunek wyznaczony przez inny wektor. Składowa wektora w kierunku wyznaczonym przez inny wektor 65
Macierze 4 × 4 66
Zadania 68
Rozdział 3. Macierze w OpenGL i współrzędne jednorodne 70
Przekształcenia układów współrzędnych w potoku renderowania OpenGL 71
Macierz rzutowania 74
Macierz model-widok oraz macierze świata i widoku 78
Współrzędne jednorodne 81
Rozdział 4. Tworzenie kontekstu renderowania. Profil zgodności. Rozszerzenia 84
Korzystanie z rozszerzeń ARB 84
Zawirowania z tworzeniem kontekstu 86
Użycie glext.h i wglext.h 88
Użycie biblioteki GLEW, zarządzającej rozszerzeniami 89
Użycie biblioteki DLL 90
Dołączenie kodu źródłowego GLEW do projektu aplikacji 91
Rozdział 5. Profil rdzenny. Bufory 94
Bufory werteksów 94
Tablica indeksów i bufor indeksów 101
Nawijanie i ukrywanie tylnych powierzchni 104
Konsolidacja buforów 106
Klasa werteksu 110
Przełączenie na profil rdzenny i liczenie strat 112
Rozdział 6. Shadery 115
Podstawy GLSL 116
Najprostsze shadery 117
Kompilacja shadera 119
Kolor i indeksy atrybutów werteksu 126
Trochę zabawy 128
Parametry shadera 131
Macierze świata, widoku i rzutowania 134
Kolumny i wiersze 137
Plan awaryjny 137
Zadania 138
Rozdział 7. Macierze używane w grafice 3D 139
Macierze rzutowania 139
Macierz rzutowania izometrycznego 141
Macierz rzutowania perspektywicznego 144
Różnice funkcji glFrustum i gluPerspective 148
Współrzędne viewportu 150
Przykład 150
Macierz świata 155
Translacja 156
Skalowanie i odbicia względem płaszczyzn układu współrzędnych 156
Obroty 157
Obrót wokół dowolnej osi 161
Macierze obrotu a kwaterniony jednostkowe 164
Złożenie obrotów i translacji – obrót wokół dowolnego punktu 164
Pochylenie 165
Rzut na płaszczyznę 166
Macierz widoku 169
Przykład złożenia macierzy widoku, świata i rzutowania 175
Zadania 178
Rozdział 8. Implementacja wektorów i macierzy 179
Wektory 179
Projekt interfejsu 179
Szablon TWektor 180
Specjalizacje szablonu dla wektora trój- i czteroelementowego 183
Testy 187
Macierze 188
Szablon TMacierzKwadratowa 189
Szablon TMacierzGrafika3D 196
Klasa MacierzOpenGL 207
Użycie obiektów macierzy w programie 208
Zadania 211
Rozdział 9. Sterowanie kamerą 213
Kontrola obrotów kamery za pomocą klawiszy 213
Tryby działania kamery 216
Kontrola orientacji kamery za pomocą myszy 221
Przesuwanie kamery myszą 226
Użycie rolki myszy 228
Swobodne obroty i ich powolne wygaszanie 228
Zadania 233
Rozdział 10. Aktorzy. Rysowanie brył. Animacja 235
Abstrakcja 235
Kwadrat 239
Zmiany w klasie okna 240
Pierwsza bryła 243
Optymalizacja rysowania wielu ciągów 248
Bufor głębi i pomijanie tylnych powierzchni 249
Kwadryki 251
Sfera 258
Aktor z buforem indeksów 261
Sfera z buforem indeksów 264
Końcowy zestaw brył: sfera, walec i sześcian 274
Animacja sceny 276
Zadania 280
Rozdział 11. Oświetlenie. Model Phonga 282
Model Phonga 282
Model Lamberta światła rozproszonego 284
Model rozbłysku Phonga 287
Uśrednianie normalnych 288
Definiowanie normalnych 289
Implementacja oświetlenia w shaderze werteksów 300
Aktualizacja położenia kamery 303
Ustawianie parametrów oświetlenia i materiału 304
Macierz normalnych 306
Osłabienie oświetlenia wraz z odległością 311
Obliczanie oświetlenia per pixel 313
Cel-shading 318
Zadania 319
Rozdział 12. Cienie rzucane 321
Implementacja metody rzutowania cieni 322
Materiał jako źródło informacji o kolorze aktorów 331
Rozdział 13. Odwzorowywanie tekstur 335
Współrzędne teksturowania 335
Filtrowanie tekstur i mipmapy 337
Zmiany w klasie werteksu i klasach aktorów 337
Wczytanie tekstur 346
Przygotowanie zestawu tekstur 355
Implementacja teksturowania w shaderze fragmentów 357
Tworzenie i usuwanie tekstur 361
Zawijanie tekstur 367
Tekstury w służbie realizmu 371
Zadanie 371
Rozdział 14. Użycie wielu tekstur 374
Dwie tekstury 375
Kombinacje tekstur 379
Globus i odwzorowywanie rozbłysku 380
Zadania 383
Dodatek. Biblioteki GLFW i GLM 384
Biblioteka GLM 384
Dodanie biblioteki GLM do projektu 384
Przykład użycia funkcji GLM 385
Biblioteka GLFW 388
Dodanie biblioteki GLFW do projektu 388
Inicjowanie okna z użyciem GLFW 389
Pętla główna 393
Obsługa zdarzeń 394
Indeks 396
Szczegóły ebooka Grafika 3D czasu rzeczywistego
- Wydawca:
- Wydawnictwo Naukowe PWN
- Rok wydania:
- 2014
- Typ publikacji:
- Ebook
- Język:
- polski
- Format:
- mobi,epub
- ISBN:
- 978-83-01-18047-8
- ISBN wersji papierowej:
- 978-83-01-17966-3
- Wydanie:
- 1
- Autorzy:
- Jacek Matulewski
- Miejsce wydania:
- Warszawa
- Liczba Stron:
- 396
Recenzje ebooka Grafika 3D czasu rzeczywistego
-
Reviews (0)
Na jakich urządzeniach mogę czytać ebooki?
Na czytnikach Kindle, PocketBook, Kobo i innych
Na komputerach stacjonarnych i laptopach
Na telefonach z systemem ANDROID lub iOS
Na wszystkich urządzeniach obsługujących format plików PDF, Mobi, EPub
- -5%
-5%
74,00 zł
70,39 zł
@CUSTOMER_NAME@
@COMMENT_TITLE@
@COMMENT_COMMENT@