E-book details

Matematyka w programowaniu gier i grafice komputerowej. Tworzenie i renderowanie wirtualnych środowisk 3D oraz praca z nimi

Matematyka w programowaniu gier i grafice komputerowej. Tworzenie i renderowanie wirtualnych środowisk 3D oraz praca z nimi

Penny de Byl

Ebook

Matematyka jest niezbędna do zrozumienia reguł rządzących tworzeniem grafiki komputerowej w czasie rzeczywistym, a także zasad manipulowania obiektami i środowiskami 3D. Idealnym narzędziem ułatwiającym uchwycenie tych zależności jest język Python wraz z bibliotekami Pygame i PyOpenGL. Dzięki nim łatwo zrozumiesz, w jaki sposób komputery tworzą i wprowadzają zmiany w środowiskach trójwymiarowych.

Ta książka wyjaśni Ci rolę matematyki w tworzeniu, renderowaniu i zmienianiu wirtualnych środowisk 3D, a ponadto pozwoli odkryć tajemnice najpopularniejszych dzisiaj silników gier. Za sprawą licznych praktycznych ćwiczeń zorientujesz się, co się kryje za rysowaniem linii i kształtów graficznych, stosowaniem wektorów i wierzchołków, budowaniem i renderowaniem siatek, jak również przekształcaniem wierzchołków. Nauczysz się używać kodu Pythona, a także bibliotek Pygame i PyOpenGL do budowy własnych silników. Dowiesz się też, jak tworzyć przydatne API i korzystać z nich podczas pisania własnych aplikacji.

W książce między innymi:

  • praca w Pythonie z edytorem PyCharm, bibliotekami Pygame i PyOpenGL
  • różne polecenia rysowania z różnych graficznych API
  • najważniejsze zagadnienia trygonometrii w odniesieniu do środowisk 3D
  • wektory i matryce w przenoszeniu, ustawianiu kierunku i skalowaniu obiektów 3D
  • renderowanie obiektów 3D z teksturami, kolorami, cieniami i oświetleniem
  • przekształcanie wierzchołków w celu przyspieszenia renderowania opartego na GPU

Matematyka: najlepszy sprzymierzeniec programisty i grafika!

O autorze

O korektorach

Wstęp

CZĘŚĆ 1. Podstawowe narzędzia

Rozdział 1. Witaj, graficzne okno, czyli początek podróży

  • Wymagania techniczne
  • Rozpoczęcie pracy z językiem Python, edytorem PyCharm i biblioteką Pygame
  • Tworzenie podstawowego okna graficznego
  • Praca z oknem i układem kartezjańskim
    • Do dzieła!
    • Twoja kolej!
  • Podsumowanie
  • Odpowiedzi

Rozdział 2. Zacznijmy rysować

  • Wymagania techniczne
  • Kolor
    • Do dzieła!
    • Twoja kolej!
  • Linie
    • Do dzieła!
    • Twoja kolej!
    • Do dzieła!
  • Tekst
    • Do dzieła!
    • Twoja kolej!
  • Wieloboki
    • Do dzieła!
    • Twoja kolej!
  • Obrazy rastrowe
    • Do dzieła!
  • Podsumowanie
  • Odpowiedzi

Rozdział 3. Kreślenie linii piksel po pikselu

  • Wymagania techniczne
  • Najprostszy sposób - rysowanie linii metodą prób i błędów
    • Do dzieła!
  • Ulepszone podejście - wprowadzenie do algorytmu Bresenhama
    • Do dzieła!
  • Rysowanie okręgów sposobem Bresenhama
    • Do dzieła!
  • Wygładzanie krawędzi wyświetlanych obiektów
  • Podsumowanie

Rozdział 4. Komponenty silników graficznych i gier

  • Wymagania techniczne
  • Odkrywanie potoku graficznego z OpenGL
    • Do dzieła!
  • Rysowanie modeli za pomocą siatek
    • Do dzieła!
    • Twoja kolej!
  • Patrzenie na scenę za pomocą kamer
  • Projekcja pikseli na ekranie
  • Systemy współrzędnych 3D w OpenGL
    • Projekcja perspektywiczna
    • Twoja kolej!
    • Projekcja do znormalizowanych współrzędnych urządzenia
    • Do dzieła!
    • Twoja kolej!
  • Podsumowanie
  • Odpowiedzi

Rozdział 5. Rozświetlmy to!

  • Wymagania techniczne
  • Dodawanie efektów oświetlenia
    • Do dzieła!
    • Twoja kolej!
  • Umieszczanie tekstur na siatkach
    • Do dzieła!
  • Podsumowanie
  • Odpowiedzi

Rozdział 6. Odświeżanie i rysowanie środowisk graficznych

  • Wymagania techniczne
  • Wprowadzenie do pętli głównej
  • Aktualizowanie i rysowanie obiektów
    • Do dzieła!
    • Twoja kolej!
  • Mierzenie czasu
    • Do dzieła!
  • Podsumowanie
  • Odpowiedzi

Rozdział 7. Interakcja za pomocą klawiatury i myszki w dynamicznych programach graficznych

  • Wymagania techniczne
  • Praca z danymi wejściowymi z myszki
    • Do dzieła!
    • Twoja kolej!
    • Łączenie środowiska 2D z 3D
    • Do dzieła!
    • Przekształcanie pozycji myszki na współrzędne projekcji
    • Do dzieła!
    • Twoja kolej!
    • Do dzieła!
  • Dodawanie poleceń z klawiatury
    • Do dzieła!
    • Twoja kolej!
    • Do dzieła!
  • Podsumowanie
  • Odpowiedzi

CZĘŚĆ 2. Podstawy trygonometrii

Rozdział 8. Powtórka wiedzy o trójkątach

  • Wymagania techniczne
  • Porównywanie trójkątów podobnych
    • Twoja kolej!
  • Praca z trójkątami prostokątnymi
    • Twoja kolej!
  • Obliczanie kątów za pomocą sinusa, cosinusa i tangensa
    • Twoja kolej!
  • Badanie trójkątów przez rysowanie obiektów 3D
    • Do dzieła!
  • Podsumowanie
  • Odpowiedzi

Rozdział 9. Podstawy wektorów

  • Wymagania techniczne
  • Zrozumienie różnicy między punktami a wektorami
    • Do dzieła!
    • Twoja kolej!
  • Definiowanie kluczowych działań na wektorach
    • Do dzieła!
  • Ustalanie długości wektora
    • Twoja kolej!
  • Związek między kątami a wektorami
    • Iloczyn skalarny
    • Iloczyn wektorowy
  • Podsumowanie
  • Odpowiedzi

Rozdział 10. Zapoznanie się z liniami, promieniami i liniami normalnymi

  • Wymagania techniczne
  • Definiowanie linii, odcinków i promieni
  • Używanie parametrycznej postaci linii
    • Twoja kolej!
    • Do dzieła!
  • Obliczanie i wyświetlanie prostych normalnych
    • Twoja kolej!
    • Do dzieła!
    • Twoja kolej!
  • Podsumowanie
  • Odpowiedzi

Rozdział 11. Zmiana oświetlenia i tekstury trójkątów

  • Wymagania techniczne
  • Wyświetlanie linii normalnych siatki zbudowanej z trójkątów
    • Do dzieła!
  • Definiowanie stron wieloboku za pomocą linii normalnych
    • Praca z widocznymi stronami wieloboku
  • Odrzucanie wieloboków zgodnie z liniami normalnymi
    • Do dzieła!
  • Odkrywanie wpływu prostych normalnych na oświetlenie
    • Do dzieła!
  • Podsumowanie

CZĘŚĆ 3. Najważniejsze przekształcenia

Rozdział 12. Opanowanie przekształceń afinicznych

  • Wymagania techniczne
  • Przenoszenie punktów w przestrzeni 3D
    • Unknown
  • Skalowanie punktów za pomocą współrzędnych x, y i z
    • Do dzieła!
    • Twoja kolej!
  • Obracanie punktów wokół osi obrotu
    • Do dzieła!
  • Odkrywanie kolejności przekształceń
  • Pochylanie i odbijanie
  • Podsumowanie
  • Odpowiedzi

Rozdział 13. Zrozumienie znaczenia macierzy

  • Wymagania techniczne
  • Definiowanie macierzy
  • Wykonywanie działań na macierzach
    • Dodawanie i odejmowanie macierzy
    • Mnożenie macierzy przez jedną wartość
    • Dzielenie macierzy
  • Tworzenie reprezentacji przekształceń afinicznych za pomocą macierzy
    • Przejście od równań liniowych do działań na macierzach
    • Łączenie przekształceń afinicznych
  • Zestawianie macierzy przekształceń na potrzeby złożonych manewrów
    • Do dzieła!
  • Podsumowanie
  • Odpowiedzi

Rozdział 14. Praca z przestrzeniami współrzędnych

  • Wymagania techniczne
  • Stos macierzy OpenGL
  • Praca z macierzą widoku modelu
    • Do dzieła!
    • Twoja kolej!
  • Praca z macierzą widoku
  • Praca z macierzą projekcji
    • Do dzieła!
    • Twoja kolej!
  • Podsumowanie
  • Odpowiedzi

Rozdział 15. Poruszanie się po przestrzeni widoku

  • Wymagania techniczne
  • Manewry latania
    • Do dzieła!
    • Twoja kolej!
  • Dziwactwa złożonych obrotów
  • Poprawa sterowania kamerą
    • Do dzieła!
  • Podsumowanie
  • Odpowiedzi

Rozdział 16. Obrót za pomocą kwaternionów

  • Wymagania techniczne
  • Wprowadzenie do kwaternionów
  • Obrót wokół dowolnej osi
  • Odkrywanie przestrzeni kwaternionowej
    • Do dzieła!
  • Praca z kwaternionami jednostkowymi
    • Twoja kolej!
  • Do czego służy normalizacja?
    • Do dzieła!
    • Twoja kolej!
  • Podsumowanie
  • Odpowiedzi

CZĘŚĆ 4. Podstawowe techniki renderingu

Rozdział 17. Cieniowanie wierzchołków i fragmentów

  • Wymagania techniczne
  • Wprowadzenie do cieniowania
  • Przenoszenie przetwarzania grafiki z CPU na GPU
    • Do dzieła!
  • Przetwarzanie piksel po pikselu
    • Do dzieła!
  • Podsumowanie

Rozdział 18. Niestandardowe potoki renderingu

  • Wymagania techniczne
  • Nadawanie koloru i tekstury wielokątom siatki
    • Do dzieła!
    • Twoja kolej!
  • Włączanie świateł
    • Oświetlenie otoczenia
    • Światło rozproszone
    • Phong
  • Podsumowanie
  • Odpowiedzi

Rozdział 19. Renderowanie realistycznej grafiki jak zawodowiec

  • Wymagania techniczne
  • Śledzenie odbić światła
  • Stosowanie prawa odwróconych kwadratów
  • Obliczanie dwukierunkowego odbicia
    • Funkcje rozkładu
    • Efekt Fresnela
    • Współczynnik tłumienia geometrycznego
  • Zebranie wszystkiego w całość
    • Do dzieła!
  • Podsumowanie

Skorowidz

  • Title: Matematyka w programowaniu gier i grafice komputerowej. Tworzenie i renderowanie wirtualnych środowisk 3D oraz praca z nimi
  • Author: Penny de Byl
  • Original title: Mathematics for Game Programming and Computer Graphics: Explore the essential mathematics for creating, rendering, and manipulating 3D virtual environments
  • Translation: Anna Mizerska
  • ISBN: 978-83-289-0880-2, 9788328908802
  • Date of issue: 2024-06-11
  • Format: Ebook
  • Item ID: matopr
  • Publisher: Helion