Grafika 3D czasu rzeczywistego

Nowoczesny OpenGL

1 ocena

Format:

epub, mobi, ibuk

DODAJ DO ABONAMENTU

WYBIERZ RODZAJ DOSTĘPU

44,40  74,00

Format: epub, mobi

 

Dostęp online przez myIBUK

WYBIERZ DŁUGOŚĆ DOSTĘPU

Cena początkowa: 74,00 zł (-40%)

Najniższa cena z 30 dni: 37,00 zł  


44,40

w tym VAT

TA KSIĄŻKA JEST W ABONAMENCIE

Już od 24,90 zł miesięcznie za 5 ebooków!

WYBIERZ SWÓJ ABONAMENT

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.


Rok wydania2014
Liczba stron396
KategoriaGrafika
WydawcaWydawnictwo Naukowe PWN
ISBN-13978-83-01-18047-8
Numer wydania1
Język publikacjipolski
Informacja o sprzedawcyePWN sp. z o.o.

Ciekawe propozycje

Spis treści

  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
RozwińZwiń