Krzysztof Gdawiec
Wersja polska English version

Programowanie warstwy wizualnej gry

Opis przedmiotu

Wykład:
IV rok INF Inż (PGK) — wtorek 08:00-09:30 (co dwa tygodnie przez pierwsze 10 tygodni), sala B-110

Laboratorium:
IV rok INF Inż (PGK1) — środa 08:15-10:30 (przez pierwsze 10 tygodni), sala B-105
IV rok INF Inż (PGK2) — środa 10:45-13:00 (przez pierwsze 10 tygodni), sala B-105

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,
  • okluzja otoczenia,
  • 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 22.01.2024; 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 14.02.2024, 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 07.03.2024,
  • nie ma możliwości przesunięcia ostatecznego terminu oddawania projektów.