Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Grafika 3D
Tok studiów:
2018/2019
Kod:
JIS-1-021-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka Stosowana
Semestr:
0
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr inż. Malinowski Janusz (malinowski@fis.agh.edu.pl)
Osoby prowadzące:
dr inż. Malinowski Janusz (malinowski@fis.agh.edu.pl)
Krótka charakterystyka modułu

W ramach wykładu przedstawione zostaną podstawy programowania grafiki 3D. Kanwę dla opisywanych zagadnień stanowić będzie biblioteka OpenGL.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Student zna i rozumie podstawowe pojęcia i opis matematyczny wykorzystywany w grafice 3D. IS1A_W01 Aktywność na zajęciach,
Egzamin,
Udział w dyskusji,
Wykonanie ćwiczeń laboratoryjnych
M_W002 Student zna i rozumie podstawowe algorytmy wykorzystywane w grafice 3D. IS1A_W02 Aktywność na zajęciach,
Egzamin,
Udział w dyskusji,
Wykonanie ćwiczeń laboratoryjnych
Umiejętności
M_U001 Student potrafi stworzyć aplikację 3D uruchamianą w systemie Windows. IS1A_U05 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U002 Student potrafi od podstaw zaimplementować najważniejsze elementy sceny 3D. IS1A_U06 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U003 Student potrafi korzystać z programowalnego potoku przetwarzania 3D. IS1A_U06 Egzamin,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U004 Student umie przygotować dokumentację wykonanego projektu. IS1A_U01, IS1A_U04 Wykonanie projektu
Kompetencje społeczne
M_K001 Student potrafi pracować w zespole programistycznym IS1A_K01 Wykonanie projektu
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Student zna i rozumie podstawowe pojęcia i opis matematyczny wykorzystywany w grafice 3D. + - + - - - - - - - -
M_W002 Student zna i rozumie podstawowe algorytmy wykorzystywane w grafice 3D. + - + - - - - - - - -
Umiejętności
M_U001 Student potrafi stworzyć aplikację 3D uruchamianą w systemie Windows. + - + - - - - - - - -
M_U002 Student potrafi od podstaw zaimplementować najważniejsze elementy sceny 3D. - - + - - - - - - - -
M_U003 Student potrafi korzystać z programowalnego potoku przetwarzania 3D. - - + - - - - - - - -
M_U004 Student umie przygotować dokumentację wykonanego projektu. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Student potrafi pracować w zespole programistycznym - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Wprowadzenie. Podstawowe pojęcia i definicje.

    Czym jest OpenGL? Założenia i konwencje. Biblioteka GLUT. Pierwszy program z wykorzystaniem OpenGL. Prymitywy w OpenGL.

  2. Podstawy OpenGL. Część pierwsza.

    Operacje na macierzach. Podstawowe transformacje w przestrzeni trójwymiarowej. Ograniczanie, okrawanie i obcinanie sceny. Prymitywy biblioteki GLUT.

  3. Podstawy OpenGL. Część druga.

    Kolory i cieniowanie. Krawędzie i powierzchnie prymitywów. Bufor głębokości. Oświetlenie. Wektory normalne.

  4. Podstawowe właściwości obiektów.

    Materiały. Mieszanie kolorów. Efekt mgły. Antyaliasing.

  5. Kompilacja i bufory.

    Listy wyświetlania. Bufor szablonowy. Bufor akumulacyjny.

  6. Grafika rastrowa i przetwarzanie obrazów.

    Mapy bitowe. Mapy pikselowe. Przetwarzanie obrazów (ARB_imaging).

  7. Tekstury.

    Tworzenie tekstur. Mipmapy. Kontrolowanie własności tekstur. Kontrolowanie środowiska tekstur. Wieloteksturowanie. Inne własności tekstur.

  8. Selekcja i sprzężenia zwrotne.

    Selekcja objektów. Sprzężenie zwrotne. Testy zasłaniania.

  9. Tablice wierzchołków.

    Tablice wierzchołków. Systemy cząstek.

  10. Krzywe i powierzchnie parametryczne.

    Powierzchnie Beziera. Non-Uniform Rational B-Spline (NURBS). Kwadryki.

  11. Obiekty buforowane i mapowanie wypukłości.

    Obiekty buforowane. Wytłaczane mapowanie wypukłości. Mapowanie wektorów normalnych.

  12. Cienie

    Tworzenie cieni: rzutowanie cieni płaskich, bryły cieni, mapy cieni.

  13. Programy cieniowania.

    Programy cieniowania: obiekt programu cieniowania, zmienne jednorodne i atrybuty wierzchołków, język cieniowania (GLSL – OpenGL Shading Language).

Ćwiczenia laboratoryjne:
  1. Inicjalizacja OpenGL, obsługa klawiatury, ustawienia kamery, układ współrzędnych, linie trójkąty.

    Efekty kształcenia:
    - student potrafi skompilować i uruchomić prosty program graficzny wykorzystujący bibliotekę OpenGL, student rozumie czym w OpenGL jest macierz modelowania,
    - student potrafi ustawiać podstawowe parametry prymitywów (grubość lini, kolor)

  2. Transformacje, macierz widoku.

    Efekty kształcenia:
    - student potrafi manipulować macierzą modelowania w taki sposób by obiekty na scenie podlegały przesunięciu, obrotom lub skalowaniu
    - student rozumie czym jest macierz widoku, potrafi zmienić ją tak by reprezentowała ona rzut perspektywiczny bądź ortogonalny

  3. Bufor głębokości, wektory normalne i oświetlenie – wstęp

    Efekty kształcenia:
    - student potrafi zainicjować i korzystać z bufora głębokości,
    - student potrafi diagnozować problemy które występują przy niedziałającym buforze głębokości,
    - student potrafi włączyć obliczenia związane z oświetleniem sceny,
    - student rozumie znaczenie wektorów normalnych w grafice 3D i potrafi je obliczać,

  4. Materiały

    Efekty kształcenia:
    - student potrafi przypisać obiektom materiał o realistycznych właściwościach,
    - student rozumie jak działa mechanizm mieszania kolorów
    - student potrafi rysować wygładzone obiekty

  5. Bufor szablonowy i listy wyświetlania

    Efekty kształcenia:
    - student potrafi tworzyć i korzystać z list wyświetlania
    - student umie wykorzystać bufor szablonowy do uzyskania efektu lustrzanego odbicia

  6. Teksturowanie

    Efekty kształcenia:
    - student potrafi wczytać teksturę z pliku i nałożyć ją na obiekt
    - student potrafi ustawiać najważniejsze parametry środowiska tekstur

  7. Selekcja

    Efekty kształcenia:
    - student zidentyfikować który z obiektów na trójwymiarowej scenie został kliknięty przez użytkownika

  8. Powierzchnie i mapowanie wypukłości

    Efekty kształcenia:
    - student potrafi rysować powierzchnie parametryczne, nałożyć na nie teksturę i uzyskać efekt mapowania wypukłości

  9. Programy cieniowania cz.1

    Efekty kształcenia:
    - student potrafi wczytać i dołączyć do programu program GLSL
    - student rozumie czym jest programowalny potok przetwarzania wierzchołków i fragmentów
    - student potrafi przekazać z programu głównego zmienne do programów cieniowania wierzchołków oraz umie przekazywać wartości pomiędzy programem cieniowania wierzchołków a fragmentów

  10. Programy cieniowania cz.2

    Efekty kształcenia:
    - student potrafi korzystać ze środowiska tekstur wewnątrz programów cieniowania

  11. Projekt

    W trakcie semestru student realizuje projekt. Temat projektu wybiera student po konsultacji z prowadzącym laboratorium. W ramach projektu należy stworzyć działającą aplikację wyświetlającą grafikę 3D generowaną w czasie rzeczywistym.

    Efekty kształcenia:
    - student potrafi samodzielnie opracować aplikację wyświetlającą grafikę 3D,
    - student potrafi opracować logiczną strukturę aplikacji,
    - student potrafi opracować dokumentację opisującą proces tworzenia aplikacji, dokumentację użytkownika oraz dokumentację techniczną umożliwiającą rozbudowę opracowanego projektu.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 150 godz
Punkty ECTS za moduł 6 ECTS
Udział w wykładach 30 godz
Samodzielne studiowanie tematyki zajęć 68 godz
Przygotowanie do zajęć 10 godz
Udział w ćwiczeniach laboratoryjnych 0 godz
Dodatkowe godziny kontaktowe z nauczycielem 10 godz
Wykonanie projektu 30 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

W ramach laboratorium studenci samodzielnie rozwiązują zadania. Oceniana jest aktywność studenta i poprawność wykonania zadania.
Dodatkowo na koniec semestru każdy student wykonuje samodzielnie projekt programistyczny.
Egzamin odbywa się po oddaniu projektu. Ocena końcowa obliczana jest jako średnia ważona wg wzoru:

OK = 0.1 x L + 0.4 x P + 0.5 x E

Uzyskanie pozytywnej oceny końcowej (OK) wymaga uzyskania pozytywnej oceny z ćwiczeń laboratoryjnych (L), projektu (P) i egzaminu (E).

Ocena wyliczana po zaliczeniu w drugim terminie:
X = 0.3*(pierwszy termin)0.7*(drugi termin)
ocena wyliczana po zaliczeniu w trzecim terminie:
X = 0.2*(pierwszy termin)0.3*(drugi termin)+0.5*(trzeci termin)

X == L, P lub E

Wymagania wstępne i dodatkowe:

- Znajomość podstaw algebry liniowej (operacje na wektorach i macierzach)
- Podstawowa umiejętność programowania w C/C++

Zalecana literatura i pomoce naukowe:

D. Shreiner, M. Woo, J. Neider, T.Davis. „The OpenGL Programming Guide – The Redbook”, Toronto, Addison-Wesley Professional, 2007

R.S. Wright, N. Haemel, G. Sellers, B. Lipchak “OpenGL SuperBible: Comprehensive Tutorial and Reference (5th Edition)”, Toronto, Addison-Wesley Professional, 2010

D. Shreiner “OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 (7th Edition)”, Toronto, Addison-Wesley Professional, 2009

J.Ganczarski “OpenGL w praktyce”, Legionowo, Wydawnictwo BTC, 2008

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Jakub KAMIŃSKI, Maciej ŚNIECHOWSKI, Sebastian WROŃSKI, Janusz MALINOWSKI, Jacek TARASIUK, Bone tissue engineering using combined additive manufacturing and microtomography with FEM verification , proc of 27th European conference on Biomaterials : 30 August – 3 September, Kraków, Poland, ESB 2015

Jakub KAMIŃSKI, Maciej ŚNIECHOWSKI, Sebastian WROŃSKI, Janusz MALINOWSKI, Jacek TARASIUK, Bone tissue engineering using combined additive manufacturing and microtomography with Finite Element Method verification, proc. Of Innovative technologies in biomedicine, 2nd international conference : October 12–14, 2015, Krakow, Poland

Informacje dodatkowe:

I – Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Nieobecność na jednych ćwiczeniach/zajęciach wymaga od studenta samodzielnego opanowania przerabianego na tych zajęciach materiału. Nieobecność na więcej niż jednych 20% zajęć wymaga od studenta samodzielnego opanowania przerabianego na tych zajęciach materiału i jego zaliczenia w formie pisemnej w wyznaczonym przez prowadzącego terminie lecz nie później jak w ostatnim tygodniu trwania zajęć. Student który bez usprawiedliwienia opuścił więcej niż 20% zajęć i jego cząstkowe wyniki w nauce były negatywne może zostać pozbawiony, przez prowadzącego zajęcia, możliwości wyrównania zaległości.

Obecność na wykładzie: zgodnie z Regulaminem Studiów AGH.

II – Zasady zaliczania zajęć:

ćwiczenia audytoryjnych (dawniej rachunkowych), lab. komputerowych, projektowych itp.: Podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze. Student może dwukrotnie przystąpić do poprawkowego zaliczania.
Student który bez usprawiedliwienia opuścił więcej niż 20% zajęć i jego cząstkowe wyniki w nauce były negatywne może zostać pozbawiony, przez prowadzącego zajęcia, możliwości poprawkowego zaliczania zajęć. Od takiej decyzji prowadzącego zajęcia student może się odwołać do prowadzącego przedmiot (moduł) lub Dziekana.

Warunkiem przystąpienie do egzaminu jest wcześniejsze uzyskanie zaliczenia z ćwiczeń.