Grafika 3D czasu rzeczywistego
  • -5%

ebook Grafika 3D czasu rzeczywistego Jacek Matulewski

Jacek Matulewski
Wydawca: Wydawnictwo Naukowe PWN
Rok wydania: 2014
Opis Spis treści Szczegóły Recenzje

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 9

Rozdział 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

Średnia ocena

0.0
0 recenzji

  • Reviews (0)

@CUSTOMER_NAME@

@COMMENT_TITLE@

@COMMENT_COMMENT@

@COMMENT_AVATAR@

@CUSTOMER_NAME@

@AUTHOR_PROFILE@ @COMMENT_ISO_COUNTRY@ @VERIFY_PURCHASE@
@COMMENT_DATE@
@COMMENT_NO_APPROVE@

@COMMENT_COMMENT@

Reply
@COMMENT_AVATAR@

@CUSTOMER_NAME@

@AUTHOR_PROFILE@ @COMMENT_ISO_COUNTRY@ @VERIFY_PURCHASE@
@COMMENT_DATE@
@COMMENT_NO_APPROVE@

@COMMENT_COMMENT@

Reply

Na jakich urządzeniach mogę czytać ebooki?

Ikona ebooka Na czytnikach Kindle, PocketBook, Kobo i innych
Ikona komutera Na komputerach stacjonarnych i laptopach
Ikona telefonu Na telefonach z systemem ANDROID lub iOS
Ikona urządzenia elektroniczne Na wszystkich urządzeniach obsługujących format plików PDF, Mobi, EPub
  • -5%
-5% 74,00 zł
70,39 zł
Najniższa cena z 30 dni: 70,39 zł