Odpowiedzialny za przedmiot oraz prowadzący wykłady: dr inż. hab. Radosław Mantiuk, prof. ZUT
Prowadzący laboratoria: dr inż. hab. Anna Lewandowska, prof. ZUT, dr inż. Maja Dziśko, dr inż. Edward Półrolniczak, dr. inż. Marek Wernikowski, mgr inż. Katarzyna Gościewska, dr inż. hab. Radosław Mantiuk, prof. ZUT
Tematyka wykładów:
Wprowadzenie do grafiki komputerowej.
Technologie sprzętowe (graphics_hardware).
System graficzny (pojęcia: obraz rastrowy, piksel, bufor ramki, karta graficzna, system graficzny, itp.).
Procesor GPU (sposoby zrównoleglania obliczeń, głórwne podzespołoy procesoró wCPU oraz GPU, porównanie procesorów CPU i GPU).
Wyświetlacze (budowa , parametry i zasady działania wyświetlaczy, synchronizacja wyświetlania obrazów z renderigiem, wkazówki głębi i wyświetlacze stereospopowe).
Obraz rastrowy (raster image, HDR, color).
Próbkowanie i integracja obrazu. Rozdzielczość próbkowania obrazu.
Kwantyzacja koloru.
Rekonstrukcja obrazu.
Aliasing i antyaliasing (artefakty aliasingu, techniki antyaliasingu).
Korekcja gamma (kodowanie koloru po renderingu oraz jego dekodowanie przez wyświetlacz).
Obrazowanie HDRI (obraz HDR, zakres dynamiki obrazu HDR, potok HDR, oświetlenia HDR).
Operatory tonów (algorytmy mapowania/kompresji tonów, operatory lokalne i globalne, fotograficzny operator tonów).
Profile kolorów (system zarządzania kolorami, profil koloru, profil sRGB, pojęcie kolorymetrii i metameryzmu, SPD, wykresy dopasowania barw, przestrzeń XYZ, wykres chromatyczności, gama barw, przestrzeń kolorów przeciwstawnych, percepcyjne przestrzenie kolorów).
Grafika rastrowa i wektorowa (raster_graphics, vector_graphics).
Rysowanie punktu, linii, okręgu, wypełnianie obszarów.
Kopiowanie fragmentów obrazu z wykorzystanie funkcji logicznych.
Przezroczystość.
Podstawowe transfromacje geometryczne.
Przekształcenia macierzowo-wektorowe, jednorodny układ przekształceń.
Przyspieszanie obliczeń.
Rendering obrazów za pomocą metody śledzenia promieni (scene, ray_tracing).
Scena 3D (reprezentacja obiektów geometrycznych, materiały, kamera, źródła światła, itp.).
Algorytm metody śledzenia promieni. Obliczanie widoczności obiektów. Obliczanie ceni.
Model oświetlenia (równanie oświetlanie).
Teksturowanie (mapowanie tekstur).
Generowanie i śledzenie promieni wtórnych.
Klasyczna metoda renderingu obrazów w czasie rzeczywistym (forward_pipeline, shading, texturing)
Potok graficzny (transformacje geometryczne, transformacja widzenia, rzutowanie, clipping, mapowanie do współrzędnych rastra).
Obliczanie widoczności za pomocą bufora Z.
Obliczenia w przestrzeni rastrowej (wypełnianie trójkąta, obliczanie koloru).
Teksturowanie (filtrowanie tekstur, mipmapping, bumpmapping, displacement mapping, itp.).
Graficzne interfejsy użytkownika (GUI).
Literatura:
Tomas Akewnine-Moller, Real-Time Rendering (Fourth edition), AK Peters, USA, 2018, 3
Kevin Suffern, Ray Tracing from the Ground Up, A K Peters/CRC Press, 2007, 1
Ben Shneiderman, Catherine Plaisant, Maxine Cohen, Steven Jacobs, Designing the User Interface: Strategies for Effective Human-Computer Interaction, Pearson, 2009, 5
Sylabus (tutaj).
Laboratoria (Wprowadzenie) (repozytorium GIT, kompendium GIT)
Wprowadzenie do zajęć laboratoryjnych.
Laboratoria (Blender) instrukcja (materiały dodatkowe: loco.zip):
Wprowadzenie do interfejsu aplikacji Blender. Tworzenie i transformacje obiektów.
Techniki edycji modelu.
Tworzenie złożonego obiektu.
Oświetlenie, materiały i rendering.
Laboratoria (Ray Tracer) (instrukcja - ray tracer, program wzorcowy):
Wprowadzenie do środowiska programistycznego. Tworzenie i używanie repozytorium.
Wykonywanie przekształceń geometrycznych za pomocą bublioteki GLM.
Zapoznanie się ze wzorcową strukturą klas ray tracera.
Implementacja rzutowanie na przykładzie kamery perspektywicznej.
Tworzenie obiektów oraz obliczanie ich widoczności na przykładzie kuli i trójkąta.
Obliczanie kolorów powierzchni z wykorzystanie modelu oświetlenia lokalnego oraz techniki teksturowania.
Implementacja elementów oświetlenia globalnego: obliczania cieni oraz odbić zwierciadlanych.
Laboratoria (Unity) (instrukcja, tekstura):
Wprowadzenie do środowiska Unity.
Tworzenie planszy gry.
Tworzenie obiektu gracza.
Sterowanie obiektem gracza.
Kolizje gracza z elementami sceny.
Obsługa kamery.
Materiały, oświetlenie oraz rendering obrazu.