Grafika 3D czasu rzeczywistego. Nowoczesny OpenGL - Helion
ISBN: 978-8-3011-8047-8
stron: 396, Format: ebook
Data wydania: 2016-02-19
Księgarnia: Helion
Cena książki: 45,87 zł (poprzednio: 73,98 zł)
Oszczędzasz: 38% (-28,11 zł)
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 shaderó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.
Osoby które kupowały "Grafika 3D czasu rzeczywistego. Nowoczesny OpenGL", wybierały także:
- 3ds Max 2015. Kurs video. Poziom pierwszy. Modelowanie 3D, oświetlenie i renderowanie 79,00 zł, (23,70 zł -70%)
- 3ds Max 2015. Kurs video. Poziom drugi. Modelowanie zaawansowane, ustawienia renderingu, materiały i tekstury 79,00 zł, (23,70 zł -70%)
- 3ds max 2010. Animacja 3D od podstaw. Szkoła efektu 96,45 zł, (29,90 zł -69%)
- Skuteczne programowanie Lego Mindstorms 57,56 zł, (25,90 zł -55%)
- Autodesk 3ds Max 2014. Oficjalny podręcznik 77,59 zł, (43,45 zł -44%)
Spis treści
Grafika 3D czasu rzeczywistego. Nowoczesny OpenGL eBook -- spis treści
Wstęp
Rozdział 1. Inicjowanie okna w tradycyjnym OpenGL
Kilka ustaleń
Profil zgodności i profil rdzenny
Tworzenie projektu i dostosowanie go do wspóÅ‚pracy z OpenGL
Tworzenie okna za pomocÄ… funkcji WinAPI. Klasa okna
Przystosowanie okna do wspóÅ‚pracy z OpenGL za pomocÄ… funkcji biblioteki WGL. Klasa OknoGL
Informacje o używanej wersji OpenGL i karcie graficznej
Przygotowanie i rysowanie sceny
Kolory
Zabawy kamerÄ…
Tryb pełnoekranowy
Rozdział 2. Wektory i macierze kwadratowe
Wektory
Zapis za pomocÄ… wersorów
Iloczyn skalarny
Iloczyn wektorowy
Przykład
Macierze kwadratowe
Czym sÄ… macierze?
Iloczyn macierzy oraz mnożenie wektora przez macierz
Przykład
Mnożenie macierzy nie jest przemienne
Macierz jednostkowa
Macierz odwrotna
Wyznacznik macierzy
Przykład
Sprytny zapis iloczynu wektorowego
Obliczanie macierzy odwrotnej
Przykład
Macierz transponowana
Operator gwiazdka
Macierz ortonormalna
Macierz przeksztaÅ‚cenia ukÅ‚adu wspóÅ‚rzÄ™dnych
Iloczyn skalarny wektorów i macierze
Rzut wektora na kierunek wyznaczony przez inny wektor. Składowa wektora w kierunku wyznaczonym przez inny wektor
Macierze 4 × 4
Zadania
RozdziaÅ‚ 3. Macierze w OpenGL i wspóÅ‚rzÄ™dne jednorodne
PrzeksztaÅ‚cenia ukÅ‚adów wspóÅ‚rzÄ™dnych w potoku renderowania OpenGL
Macierz rzutowania
Macierz model-widok oraz macierze świata i widoku
WspóÅ‚rzÄ™dne jednorodne
Rozdział 4. Tworzenie kontekstu renderowania. Profil zgodności. Rozszerzenia
Korzystanie z rozszerzeń ARB
Zawirowania z tworzeniem kontekstu
Użycie glext.h i wglext.h
Użycie biblioteki GLEW, zarządzającej rozszerzeniami
Użycie biblioteki DLL
DoÅ‚Ä…czenie kodu źródÅ‚owego GLEW do projektu aplikacji
Rozdział 5. Profil rdzenny. Bufory
Bufory werteksów
Tablica indeksów i bufor indeksów
Nawijanie i ukrywanie tylnych powierzchni
Konsolidacja buforów
Klasa werteksu
Przełączenie na profil rdzenny i liczenie strat
Rozdział 6. Shadery
Podstawy GLSL
Najprostsze shadery
Kompilacja shadera
Kolor i indeksy atrybutów werteksu
TrochÄ™ zabawy
Parametry shadera
Macierze świata, widoku i rzutowania
Kolumny i wiersze
Plan awaryjny
Zadania
Rozdział 7. Macierze używane w grafice 3D
Macierze rzutowania
Macierz rzutowania izometrycznego
Macierz rzutowania perspektywicznego
Różnice funkcji glFrustum i gluPerspective
WspóÅ‚rzÄ™dne viewportu
Przykład
Macierz świata
Translacja
Skalowanie i odbicia wzglÄ™dem pÅ‚aszczyzn ukÅ‚adu wspóÅ‚rzÄ™dnych
Obroty
Obrót wokóÅ‚ dowolnej osi
Macierze obrotu a kwaterniony jednostkowe
ZÅ‚ożenie obrotów i translacji – obrót wokóÅ‚ dowolnego punktu 164 Pochylenie
Rzut na płaszczyznę
Macierz widoku
Przykład złożenia macierzy widoku, świata i rzutowania
Zadania
RozdziaÅ‚ 8. Implementacja wektorów i macierzy
Wektory
Projekt interfejsu
Szablon TWektor
Specjalizacje szablonu dla wektora trój- i czteroelementowego
Testy
Macierze
Szablon TMacierzKwadratowa
Szablon TMacierzGrafika3D
Klasa MacierzOpenGL
Użycie obiektów macierzy w programie
Zadania
Rozdział 9. Sterowanie kamerą
Kontrola obrotów kamery za pomocÄ… klawiszy
Tryby działania kamery
Kontrola orientacji kamery za pomocÄ… myszy
Przesuwanie kamery myszÄ…
Użycie rolki myszy
Swobodne obroty i ich powolne wygaszanie
Zadania
Rozdział 10. Aktorzy. Rysowanie brył. Animacja
Abstrakcja
Kwadrat
Zmiany w klasie okna
Pierwsza bryła
Optymalizacja rysowania wielu ciÄ…gów
Bufor głębi i pomijanie tylnych powierzchni
Kwadryki
Sfera
Aktor z buforem indeksów
Sfera z buforem indeksów
Końcowy zestaw brył: sfera, walec i sześcian
Animacja sceny
Zadania
Rozdział 11. Oświetlenie. Model Phonga
Model Phonga
Model Lamberta światła rozproszonego
Model rozbłysku Phonga
Uśrednianie normalnych
Definiowanie normalnych
Implementacja oÅ›wietlenia w shaderze werteksów
Aktualizacja położenia kamery
Ustawianie parametrów oÅ›wietlenia i materiaÅ‚u
Macierz normalnych
Osłabienie oświetlenia wraz z odległością
Obliczanie oświetlenia per pixel
Cel-shading
Zadania
Rozdział 12. Cienie rzucane
Implementacja metody rzutowania cieni
MateriaÅ‚ jako źródÅ‚o informacji o kolorze aktorów
Rozdział 13. Odwzorowywanie tekstur
WspóÅ‚rzÄ™dne teksturowania
Filtrowanie tekstur i mipmapy
Zmiany w klasie werteksu i klasach aktorów
Wczytanie tekstur
Przygotowanie zestawu tekstur
Implementacja teksturowania w shaderze fragmentów
Tworzenie i usuwanie tekstur
Zawijanie tekstur
Tekstury w służbie realizmu
Zadanie
Rozdział 14. Użycie wielu tekstur
Dwie tekstury
Kombinacje tekstur
Globus i odwzorowywanie rozbłysku
Zadania
Dodatek. Biblioteki GLFW i GLM
Biblioteka GLM
Dodanie biblioteki GLM do projektu
Przykład użycia funkcji GLM
Biblioteka GLFW
Dodanie biblioteki GLFW do projektu
Inicjowanie okna z użyciem GLFW
PÄ™tla gÅ‚ówna
Obsługa zdarzeń
Indeks