Grafika 3D czasu rzeczywistego

Nowoczesny OpenGL

1 opinia

Format:

ibuk

WYBIERZ RODZAJ DOSTĘPU

Przepraszamy, z powodów technicznych pozycja chwilowo niedostępna.

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.


Liczba stron396
WydawcaWydawnictwo Naukowe PWN
ISBN-13978-83-01-18047-8
Numer wydania1
Język publikacjipolski
Informacja o sprzedawcyRavelo 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ń
W celu zapewnienia wysokiej jakości świadczonych przez nas usług, nasz portal internetowy wykorzystuje informacje przechowywane w przeglądarce internetowej w formie tzw. „cookies”. Poruszając się po naszej stronie internetowej wyrażasz zgodę na wykorzystywanie przez nas „cookies”. Informacje o przechowywaniu „cookies”, warunkach ich przechowywania i uzyskiwania dostępu do nich znajdują się w Regulaminie.

Nie pokazuj więcej tego powiadomienia