Przedmiot: Programowanie gier komputerowych (S1)
Tematyka wykładów:
- Obraz rastrowy (pdf)
- Tworzenie obrazu rastrowego (pojęcia próbkowania, integracji i kwantyzacji).
- Częstotliwość próbkowania obrazu, teoria próbkowania Nyquista-Shannona.
- Reprezentacja obrazu w dziedzinie częstotliwości, przekształcenie Fourier’a.
- Rekonstrukcja i wyświetlanie obrazu.
- Aliasing i metody zmniejszania aliasingu.
- Korekcja gamma.
- Częstotliwość wyświetlania obrazów (pojęcie czasu rzeczywistego).
- Potok graficzny (pdf, pdf, pdf,pdf)
- Dane wejściowe w systemach graficznych – scena 3D.
- Wykorzystanie rachunku macierzowo-wektorowego do transformacji geometrii (podstawowe przekształcenia geometryczne, składanie i odwracanie przekształceń, przekształcenia euklidesowe i afiniczne).
- Architektura potoku graficznego czasu rzeczywistego (aplikacja->przetwarzanie geometrii->rasteryzacja).
- Transformacje modelu.
- Transformacja widzenia.
- Rzutowanie.
- Obcinanie.
- Transformacja do współrzędnych rastrowych.
- Wypełnianie trójkątów.
- Cieniowanie pikseli.
- Łączenie danych (bufor Z).
- Równanie oświetlenia i cieniowanie:
- Równanie oświetlenia Phonga i Blinna-Phonga.
- Model oświetlenia Phonga: obliczanie składowych ambient, diffuse, specular.
- Cieniowanie płaskie, Gourauda i Phonga.
- Potok teksturowania:
- Pojęcie tekstury.
- Mapowanie tekstur.
- Funcje korespondera.
- Filtrowanie tekstur (filtracja anizotropowa i perspektywiczna, mip-mapping).
- Typy teksturowania (mapowanie nierówności, przesunięć, środowiska, przezroczystości).
- Cache’owanie oraz kompresja tekstur, atlas tekstur.
- Tekstury proceduralne.
Zajęcia lab. i projektowe:
- Wprowadzenie do Unity (tworzenie nowego projektu, importowanie assetów, tworzenie podstawowej sceny wyłącznie z elementów dostarczonych przez Unity).
- Importowanie własnych assetów, tworzenie GameObject i Prefabów, wstęp do pisania skryptów (User Input, transformacje).
- Rozwinięcie User Input (wykorzystanie aspektu wieloplatformowości, obsługa przycisków i gałek na Shieldzie (materiały).
- Silnik fizyczny: tworzenie triggerów, interakcja między obiektami.
- Silnik fizyczny: wykorzystanie właściwości brył sztywnych.
- Dźwięk: tworzenie dźwięków przestrzennych, manipulowanie dźwiękiem.
- Animacja 3D: legacy i Mecanim.
- UI: tworzenie interfejsu użytkownika za pomocą wbudowanych w Unity narzędzi.
- AI: pathfinding z wykorzystaniem A* Pathfinding Project (materiały).
- Wykorzystanie Photon Networking do tworzenia gier sieciowych (materiały).