Krzysztof Gdawiec
Programowanie warstwy wizualnej gry
Opis przedmiotu
Wykład:
IV rok INF Inż (PGK1) — czwartek 18:00-19:30 (przez pierwsze 7 tygodni), sala B-101A
Laboratorium:
IV rok INF Inż (PGK1) — czwartek 15:30-17:45 (przez pierwsze 10 tygodni), sala B-101A
Zajęcia poświęcone będą programowaniu grafiki z użyciem shaderów. Do celów prezentacyjnych wykorzystana zostanie biblioteka OpenGL w profilu rdzennym wraz z językiem GLSL. Główne tematy poruszane na wykładach to:
- powtórzenie najważniejszych wiadomości na temat OpenGL i GLSL,
- shadery geometrii,
- shadery tesselacji,
- shadery obliczeniowe,
- zapytania,
- transformacja sprzężenia zwrotnego,
- mapowanie środowiska (mapowanie odbić i załamań, efekt Fresnela, rozszczepienie chromatyczne),
- mapowanie nierówności (algorytmy Blinna, normal mapping, parallax mapping, relief mapping),
- selekcja obiektu 3D oraz poruszanie nim za pomocą myszki,
- rotacja sferyczna,
- bufor szablonowy,
- instancjonowanie,
- antialiasing,
- łączenie świateł i materiałów w tym cieniowanie opóźnione,
- cienie,
- wprowadzenie do WebGL.
Zasady panujące na zajęciach oraz zaliczenie
Warunkiem zaliczenia zajęć jest pozytywna ocena z projektu zaliczeniowego.
Ogólne uwagi odnośnie zajęć:
- każdy pracuje nad zadaniami samodzielnie,
- dozwolone jest douczanie się nawzajem oraz dzielenie się informacjami; za informacje nie uznaje się cudzego kodu, więc kopiowanie kodu jest traktowane jako oszustwo,
- należy przestrzegać zasad uczciwości akademickiej,
- wszelkie próby oszustwa, np. oddawanie cudzego kodu, skutkują brakiem zaliczenia przedmiotu.
Uwagi dotyczące projektu zaliczeniowego:
- projekty można wykonywać w zespołach maksymalnie trzyosobowych,
- każdy projekt może być wykonany z wykorzystaniem dowolnego silnika gier lub profilu rdzennego biblioteki OpenGL, nie wolno korzystać z profilu kompatybilnościowego,
- projekty wykonane z wykorzystaniem OpenGL będą wyżej ocenione jak analogiczne projekty z wykorzystaniem silnika gier,
- ocena projektu będzie zależała od typu grafiki (2D — 3, 3.5; 3D — 4, 4.5, 5) oraz ilości elementów OpenGL wykorzystanych w projekcie,
- algorytmy używane w projekcie powinny być zaimplementowane w taki sposób, aby działały w rozsądnym czasie,
- w kodzie projektu należy umieszczać komentarze ułatwiające zrozumienie kodu osobie z ,,zewnątrz'',
- jakość kodu (czytelność, odpowiednie nazwy zmiennych i funkcji itp.) będzie miała wpływ na ocenę,
- do każdego projektu powinien być dołączony opis (czego projekt dotyczy, możliwości programu, opis obsługi, użyte dodatkowe biblioteki); szablon ze strukturą dokumentu z opisem projektu: szablon.pdf, szablon.tex
- kompletny projekt (kod źródłowy + wszystkie pliki potrzebne do kompilacji, opis projektu w pliku pdf, wersja wykonywalna) w postaci archiwum zip lub 7z należy przesłać/dostarczyć do prowadzącego do 23:59:59 30.01.2025; struktura katalogów w archiwum powinna być następująca:
- bin — katalog z wersją wykonywalną projektu,
- doc — katalog z plikiem pdf z opisem oraz inne pliki prezentujące projekt,
- src — katalog ze źródłami, bibliotekami potrzebnymi do kompilacji itp.,
- oddanie projektu w terminie późniejszym niż wymieniony w poprzednim punkcie, ale nie później niż 23:59:59 19.02.2025, skutkuje obniżeniem oceny projektu o 0,5 stopnia,
- oddanie projektu w terminie późniejszym niż wymieniony w poprzednim punkcie skutkuje oceną niedostateczną w pierwszym terminie oraz obniżeniem oceny w drugim terminie o 1 stopnień,
- projekty na ocenę w drugim terminie można przesyłać do 23:59:59 08.03.2025,
- nie ma możliwości przesunięcia ostatecznego terminu oddawania projektów.