Radosław Mantiuk

West Pomeranian University of Technology, Szczecin, Poland

Przedmiot: Zaawansowana grafika komputerowa (S1)

Tematyka wykładów:

  • Metoda śledzenia promieni (pdf)
    • Algorytm ray tracingu (rekurencyjne śledzenie promieni pierwotnych i wtórnych, testowanie widoczności, wyznaczanie cieni).
    • Obliczanie promieni pierwotnych.
    • Obliczanie przecięć.
    • Równanie oświetlenia.
    • Teksturowanie.
    • Obliczanie promieni wtórnych (odbitych i załamanych).
    • Podziały przestrzeni (jednorodny podział przestrzeni, algorytm 3DDDA).
    • Antyaliasing.
  • Metoda energetyczna (pdf)
    • Równanie radiosity.
    • Współczynnik sprzężenia, metody obliczania współczynnika sprzężenia (analityczna, półsześcianów, Monte Carlo).
    • Metody rozwiązywania równania radiosity
      • Metoda podstawowa (ang. full matrix radiosity, rozwiązywanie układu równań liniowych (metoda Gauss’a-Seidel’a)).
      • Metoda progresywna (ang. progressive radiosity).
      • Shooting radiosity.
    • Hierarchiczna struktura mesh’a (ang. hierarchical radiosity)).
    • Rekonstrukcja obrazu w metodzie energetycznej.
  • Techniki obliczania oświetlenia globalnego (pdf)
    • Metoda map fotonowych
      • Algorytm metody map fotonowych (rola poszczególnych etapów algorytmu):
        • śledzenie fotonów (ang. photon tracing),
        • tworzenie map fotonowych (ang. photon maps),
        • ocena rozkładu gęstości prawdopodobiestwa (ang. density estimation),
        • final gathering.
    • Rozproszony ray tracing
    • Metoda śledzenia ścieżek (ang. path tracing)
    • Natychmiastowe radiosity (ang. instant radiosity)
    • Obliczanie przesłaniania środowiska (ang. Ambient Occlusion, AO):
      • szacowanie współczynników przesłaniania,
      • integracja z równaniem oświetlenia.
    • Przesłanianie środowiska w przestrzeni obrazów (ang. Screen Space Ambient Occlusion, SSAO):
      • próbkowanie otoczenia piksela,
      • szacowanie współczynników przesłaniania.
  • Metoda IBR (ang. Image Based Rendering) (pdf)
    • Algorytm metody IBR.
    • Mapa głębokości i mapa różnic głębokości.
    • Wyprowadzenie równania warpingu 3D.
    • Splatting i uzupełnianie braków informacji.
  • Metoda IBL (ang. Image Based Lighting) (pdf)
    • Mapa światła (obrazy HDR), tworzenie map światła (ang. light probes).
    • Identyfikacja źródeł światła na mapie światła (ang. importance sampling).
    • Rendering z wykorzystaniem map światła (oświetlanie komputerowych obiektów).
    • Oświetlanie obiektów naturalnych (ang. light stage system).
  • Wyświetlacze (pdf)(pdf)
    • Wyświetlacz LCD (zasada działania i parametry).
    • Wyświetlacz OLED (zasada działania i parametry).
    • Wyświetlacze stereoskopowe (systemy aktywne i pasywne, wyświetlacze VR).
    • Kodowanie i korekcja gamma.
    • Kalibracja kolorów
      • Przestrzenie kolorów RGB i XYZ, funkcje dopasowania barw, wykres chromatyczności.
      • Kolory podstawowe, punkt bieli i gama barw wyświetlacza.
      • Profile kolorów (profile sRGB) oraz system zarządzania kolorami (CMS).
  • Obraz cyfrowy (pdf)
    • Próbkowanie, integracja i kwantyzacja obrazu.
    • Rekonstrukcja obrazu (analogowego) z obrazu cyfrowego.
    • Aliasing i antyaliasing.
  • Techniki percepcyjne w grafice komputerowej (pdf)(pdf)
    • Fizjologia układu wzrokowego człowieka – profile kolorów.
    • Parametry widzenia (kontrast, rozdzielczość, kąt widzenia, zakres widzenia jasności, częstotliwość widzenia).
    • Kompresja jasności obrazów (operatory mapowania tonów).
    • Widzenie stereoskopowe (konflikt pomiędzy akomodacją i widzeniem dwuocznym).
    • Widzenie kierunkowe.

Laboratoria i projekt:

Na laboratoriach omawiana jest i ćwiczona implementacja kluczowych technik programistycznych stosowanych w ray tracingu. Na zajęciach projektowych studenci programują własną implementację metody śledzenia promieni z wybranym rozszerzeniem.

1. Implementacja operacji macierzowo-wektorowych w oparciu o bibliotekę GLM.

Operacje stosowane w raytracerze: dodawanie i odejmowanie wektorów, iloczyn skalarny i wektorowy, obliczanie długości wektora, mnożenie wektora przez liczbę, kopiowanie wektora, normalizacja wektora, mnożenie macierzy 3×3 razy wektor 3×1.

2. Zapis danych obrazu do pliku graficznego (wykorzystanie biblioteki FreeImage). Korekcja gamma.

3.  Obiektowa struktura ray tracera (raytracer.hscene_simple.txtimage_simple.png).

4. Obliczanie kierunku promienia pierwotnego.

5. Obliczanie przecięć (kula, trójkąt, obliczanie wektorów normalnych).

6. Równanie oświetlenia (wyznaczanie cieni).

7. Rekurencyjne śledzenie promieni odbitych od obiektów (scene_trian.txtscene_trian.png).

8. Teksturowanie (tylko dla kuli).