Podstawy Grafiki Komputerowej 2015/16
zaktualizowano 25.I.2016
Andrzej Łukaszewski
Literatura wymieniana poniżej
-
P. Shirley, "Fundamentals of Computer Graphics", A.K.Peters, Natick
Massachusetts 2002 (oraz nowsze wydania).
-
M. Jankowski, "Elementy grafiki komputerowej", WNT, Warszawa 1990.
-
J.D. Foley, A. van Dam, S.K. Feiner, J.F. Hughes, "Wprowadzenie do grafiki
komputerowej", WNT, Warszawa 1995.
-
"Graphics Gems", seria książek, Academic Press.
-
D.Schreiner, M.Woo, J.Neider, T.Davis, "OpenGL(R) Programming Guide",
2007. (dostępne także wersje wcześniejsze w sieci, dokumentacja
opengl.org)
-
NeHe OpenGL tutorials (WWW: link na stronie głównej)
- K.Shoemake - "Animating rotation with quaternion curves", Siggraph
1985 (WWW: np. ACM-DL).
- Mark Duchaineau et al. - "ROAMing terrain: real-time optimally
adapting meshes" VIS 1997 (WWW: np. ACM-DL)
- R.Żukowski - "Automatyczna dekompozycja sceny 3D na portale i
sektory", Wrocław, grudzień 2008,
PDF.
- Radosław Głogowski - "Agresywne wyznaczanie widocznych obiektów",
Wrocław, lipiec 2009,
PDF.
- Stefan Gustavson - "Simplex noise demystified"
pdf.
Program wykładu i źródła
- Wstep
- Sprzęt, standardy i biblioteki
- Bufor obrazu 2D: bitmapa
- Potok przetwarzania grafiki 3D
- Biblioteki graficzne 3D API: OpenGL
- Stary i nowy OpenGL
- Metody rysowania, VBO
- Shadery GLSL
- Przekształcenia współrzędnych w starym OpenGL
- Dodatkowe biblioteki: GLU, GLUT, GLFW, SDL
Źródła: wstępne informacje w zasadzie w każdym podręczniku np. [1],
część dotycząca OpenGL: RedBook [5]
- Przekształcenia geometryczne
- Preliminaria
- Przekształcenia liniowe afiniczne i rzutowe
- Prawo i lewoskrętny system współrzędnych, iloczyn wektorowy
- Transformacja wektora normalnego
- Wektory i wartości własne macierzy
- Diagonalizacja macierzy symetrycznej i rozkład SVD
- Rozkład rotacji na 3 ścięcia (shears): Paeth 1990
- Jednorodny system współrzędnych
- Reprezentacje rotacji
- Arcball
- Rzuty i przekształcenie perspektywiczne
- Model kamery wirtualnej
- Obcinanie do ostrosłupa/prostop. widzenia
- Przekształcenie współrzędnych świata na wsp. kamery
Źródła: większość w dowolnym z podręczników: [1], [2], [3];
arcball [4] lub [6], kwaterniony [7] lub [4](tom V).
- Widoczność
- Klasyfikacja
- Trywialne odrzucanie ścian tylnych (Culling)
- Algorytm bufora głębokości (z-bufora)
- Algorytmy sortujące : algorytm malarza
- Algorytm oparty na drzewach BSP
- Nierekurencyjna metoda śledzenia promieni (ray--casting)
- Generowanie promienia pierwotnego
- Znajdowanie przecięcia ze sferą
- Culling (c.d): ściany od tyłu, ostrosłup widzenia, zasłanianie
- Portal Rendering: portale i sektory
- Zbiory obiektów potencjalnie widocznych (PVS -Potentially Visible Sets)
- Algorytm GVS - Guided Visibility Sampling
Źródła: Punkty 1-4: [1] lub [2] (nawet wiecej w [2]), punkty 5-6 [1],
punkt 7 to uwagi ogólne zebrane z róznych miejsc, punkty 8-10:
można znaleść oryginalne prace szukając po angielskich nazwach lub
przeczytać odpowiednie części prac magisterskich [9] i [10].
- Obliczanie oświetlenia --- modelowanie odbicia światła
- Lokalny model oświeltenia Phonga
- Odbicie idealnie rozproszone
- Odbicie zwierciadlane
- Światło otoczenia (ambient)
- Model Phonga-Blinna
- Refrakcja: prawo Snell'a
- Odbicie zwierciadlane: funkcja Fresnela
- Cieniowanie wielokątów
- Cieniowanie stałym kolorem
- Cieniowanie Gouraud
- Interpolacja dwuliniowa --- bilinear interpolation
- Cieniowanie Phonga
- Pasma Macha
- Globalny model oświetlenia vs. lokalny
- Definicja funkcji BRDF
- Równanie oświetlenia/renderingu
- Rekurencyjna metoda śledzenia promieni (ray-tracing)
Źródła: Punkty 1-2: [1],[2] lub [3], punkt 3: [1] lub inne
- Reprezentacje wielościenne obiektów 3D
- Siatki trójkątów i czworokątów
- Winged--Edge
- SceneGraph
- LoD - Level of Detail
- Statyczne reprezentacje wielorozdzielczościowe
- Dynamiczny LoD: siatki adaptacyjne
- Algorytm ROAM (idea)
Źródła: [1] (lub większość poza winged-edge w [3] albo [2]) oraz
punkty 6,7: ROAM z pracy [8]
- Inne reprezentacje obiektów 2D/3D
- Powierzchnie parametryczne
- Krzywe Beziere'a
- Własności
- Gładkie łączenie, ciągłość geometryczna
- Algorytm de Casteljaux
- Prostokątne powierzchnie Beziere'a
- Trójkątne powierzchnie Beziere'a
- Reprezentacje wolumetryczne
- Zbiory wokseli
- Metoda maszerujących kwadratów
- Drzewa ósemkowe
- Drzewa BSP
- Konstruktywna geometria brył
- Światło i kolor
- Światło
- System widzenia człowieka
- Światło achromatyczne
- Postrzeganie różnic jasności
- Zakres dynamiczny
- Ile poziomów do pamiętania jasności
- Gamma
- Modele koloru
- Model CIE XYZ
- Model CIE xyY
- Diagram chromatyczny
- Definicje Światła białego
- Modele RGB
- Model sRGB
- Modele interfejsu HSV, HSL
- Modele percepcyjne L*u*v*, L*a*b*
- Teksturowanie
- Tekstury proceduralne 3D: proste przykłady drewno
- Wymagania dla szumu, szum kratowy
- Generowanie szumu: idea szumu Perlina
- Składanie szumu: FractalSum() i Turbulence()
Źródła: Ken Perlin lub [11]
- Rasteryzacja
- Rasteryzacja odcinka
- Równania prostej
- Prosty algorytm zmiennoprzecinkowy
- Algorytm Bresenhama
- Symetryczny dwukrokowy algorytm Wu-Rokne `87
- Algorytm Bresenhama dla okręgu
- Metoda przyrostowa/różnicowa i krzywe
- Problem aliasingu
- Próbkowanie i rekonstrukcja
- Granica Nyquista
- Filtry dolnoprzepustowe: filtry trójkątny Bartletta, gaussian
- Rasteryzacja odcinka z antialiasingiem
- Algorytm Gupty-Sproull'a `81
Źródła: [2],[3],[1] (brak algorytmu Gupty-Sproulla,
temat aliasingu więcej w [1] lub w podręcznikach z przetwarzania
obrazów)
- Algorytmy wycinania
- Algorytm Cohena--Sutherlanda
- Algorytm Lianga--Barsky'ego
Źródła: [2] lub [3]