Nazwa modułu: Grafika komputerowa Rok akademicki: 2015/2016 Kod: ITE-1-514-s Punkty ECTS: 5 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Teleinformatyka Specjalność: - Poziom studiów: Studia I stopnia Forma i tryb studiów: - Język wykładowy: Polski Profil kształcenia: Ogólnoakademicki (A) Semestr: 5 Strona www: Osoba odpowiedzialna: Alda Witold (alda@agh.edu.pl) Osoby prowadzące: Alda Witold (alda@agh.edu.pl) 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 Zna i rozumie podstawowe pojęcia grafiki komputerowej, rastrowej i wektorowej TE1A_W06 M_W002 Dysponuje wiedzą na temat struktury i możliwości biblioteki OpenGL TE1A_W06, TE1A_W10 M_W003 Zna i rozumie transformacje geometryczne 3D, modele oświetlenia oraz operacje na teksturach. Umiejętności TE1A_W06, TE1A_W10 M_U001 Potrafi przygotować i wyrenderować animowaną scenę w programie Blender M_U002 Potrafi zrealizować w programie model oświetlenia i mapowania tekstur w OpenGL. M_U003 Potrafi złożyć średnio rozbudowany program graficzny w OpenGL i przenieść go do WebGL Kompetencje społeczne M_K001 Rozumie potrzebę i zna możliwości ciągłego dokształcania się TE1A_K01 1 / 5
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 audytoryjne laboratoryjne projektowe Konwersatori um seminaryjne praktyczne terenowe warsztatowe Inne E-learning Wiedza M_W001 M_W002 M_W003 Umiejętności M_U001 M_U002 M_U003 Zna i rozumie podstawowe pojęcia grafiki komputerowej, rastrowej i wektorowej Dysponuje wiedzą na temat struktury i możliwości biblioteki OpenGL Zna i rozumie transformacje geometryczne 3D, modele oświetlenia oraz operacje na teksturach. Potrafi przygotować i wyrenderować animowaną scenę w programie Blender Potrafi zrealizować w programie model oświetlenia i mapowania tekstur w OpenGL. Potrafi złożyć średnio rozbudowany program graficzny w OpenGL i przenieść go do WebGL Kompetencje społeczne M_K001 Rozumie potrzebę i zna możliwości ciągłego dokształcania się Treść modułu zajęć (program wykładów i pozostałych zajęć) Wykład 1. Wprowadzenie do grafiki komputerowej. Podstawowe pojęcia Klasyfikacja grafiki komputerowej. Scharakteryzowanie grafiki rastrowej i wektorowej, grafiki 2D i 3D. Analiza podstawowej postaci potoku graficznego nieprogramowanego i programowanego. Krótka charakterystyka sprzętu komputerowego. Przegląd zastosowania grafiki komputerowej w różnych dyscyplinach nauki i techniki. 2. Transformacje geometryczne.transformacje 3D. Omówienie przekształceń afinicznych. Reprezentacja przekształceń przez macierz transformacji. Używanie funkcji transformacji i bezpośrednie operowanie na macierzach. Składanie transformacji. Interpretacja transformacji w lokalnym i globalnym układzie współrzędnych. Ruch obiektów, a ruch kamery. Rzutowanie: rodzaje, parametry i macierze rzutowania. 2 / 5
3. Postrzeganie barwne. Modele oświetlenia Krótkie omówienie teorii barwy i podstawowych modeli barwnych. Ogólne dywagacje na temat złożoności i efektywności modelu oświetlenia. Omówienie podstawowego modelu lokalnego ADS. Wprowadzenie normalnych do obliczania oświetlenia. Omówienie modeli Phonga, Blinna i interpolacji oświetlenia według Gourauda. 4. Modelowanie powierzchni. Reprezentacja powierzchni za pomocą funkcji parametrycznych i funkcji uwikłanych. Poligonizacja. Informacja o metodzie Marching Cubes. 5. Wprowadzenie do modelowania 3D. Przegląd popularnych modelerów 3D. Tworzenie i edytowanie obiektów za pomocą programu Blender. 6. Tekstury. Podstawowe pojęcia dotyczące tekstur. Użycie tekstur w programie Blender. Tworzenie tekstur proceduralnych. 7. Renderowanie. Renderowanie kompletnej sceny w programie Blender. Tworzenie animacji. 8. Graficzne modelowanie zjawisk i procesów naturalnych. Omówienie podstaw modelowania zjawisk i procesów naturalnych dla potrzeb grafiki komputerowej. Porównanie modeli fizycznych i niefizycznych. Przykłady realizacji w programie Blender. 9. Wprowadzenie do OpenGL. Charakterystyka i historia biblioteki OpenGL. Ewolucja biblioteki i podstawowe różnice w dostępnych wersjach. Omówienie konstrukcji biblioteki, podstawowych funkcji, stałych i zmiennych systemowych. Przedstawienie pomocniczych bibliotek: freeglut do obsługi interfejsu graficznego i obsługi zdarzeń, Glew do sprawdzania możliwości sprzętu graficznego. Reprezentacja obiektów geometrycznych za pomocą siatki wielokątów. Struktura typowego programu w OpenGL. 10. Stos transformacji i tworzenie obiektów hierarchicznych. Omówienie zmiany układu współrzędnych poprzez odkładanie stanu transformacji na stos. Budowanie układów obiektów o wielu stopniach swobody. Szczegółowe omówienie przykładów typu układ planetarny i kroczący robot. 11. Architektura i programowanie procesorów graficznych. Przedstawienie logicznej struktury procesorów graficznych, na wybranym przykładzie. Omówienie współpracy CPU i GPU. Przedstawienie podstaw języka shaderów GLSL i zasad włączania go do programu OpenGL. 12. Oświetlenie sceny i mapowanie tekstur w OpenGL. Podstawy. Podstawowe pojęcia dotyczące oświetlenia i użycia tekstur. Przykłady w GLSL. Wczytywanie tekstury z pliku. Tworzenie listy tekstur, mapowanie tekstur na obiekty geometryczne. 13. Zaawansowane mapowanie tekstur.multiteksturowanie, łączenie tekstur z oświetleniem, mieszanie oświetlenia, omówienie techniki mipmappingu. Użycie tekstur do mapowania obrazu otoczenia (sphere mapping, cube mapping). Wprowadzenie do tekstur 3D. 14. Wprowadzenie do WebGL. Przedstawienie technologii przejścia z OpenGL do WebGL. Umieszczanie grafiki 3D na stronach internetowych. 15. Perspektywy grafiki komputerowej. Wykład końcowy. Przedstawienie perspektyw sprzętowych i programowych dla grafiki komputerowej. Łączenie grafiki komputerowej z innymi dyscyplinami. laboratoryjne 1. Zbudowanie i wizualizowanie prostej sceny 3D w programie Blender (2 godz.). 2. Edytowanie obiektów w programie Blender (4 godz.). 3. w stosowaniu zróżnicowanego oświetlenia sceny i użycia tekstur (4 godz.). 4. Generowanie tekstur proceduralnych w programie Blender (2 godz.). 3 / 5
5. Rendering i tworzenie animacji w programie Blender (2 godz.). 6. Przykłady modelowania zjawisk naturalnych (przepływ wody, dym, chmury) w programie Blender (2 godz.). 7. Realizacja podstawowych programów graficznych w OpenGL (2 godz.). 8. Manipulowanie transformacjami geometrycznymi w OpenGL. Przelot nad sceną (2 godz.).. 9. Stos transformacji. Budowa obiektu hierarchicznego (2 godz.). 10. Modelowanie oświetlenia w OpenGL (2 godz.). 11. Nakładanie tekstur (2 godz.). 12. Nakładanie tekstur typu Sphere mapping i Skybox oraz efekty specjalne (2 godz.). 13. w osadzaniu programów w WebGL na stronach WWW (2 godz.). Sposób obliczania oceny końcowej 1.Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnej oceny z laboratorium oraz kolokwium zaliczeniowego z wykładu. 2.Obliczamy średnią ważoną z ocen z laboratorium (75%) i wykładów (25%) uzyskanych we wszystkich terminach. 3.Wyznaczmy ocenę końcową na podstawie zależności: if sr>4.75 then OK:=5.0 else if sr>4.25 then OK:=4.5 else if sr>3.75 then OK:=4.0 else if sr>3.25 then OK:=3.5 else OK:=3 4.Jeżeli pozytywną ocenę z laboratorium i zaliczenia wykładu uzyskano w pierwszym terminie oraz ocena końcowa jest mniejsza niż 5.0 to ocena końcowa jest podnoszona o 0.5 Wymagania wstępne i dodatkowe Znajomość matematyki (elementarna algebra macierzy), podstawowa znajomość programowania w C/C++ Zalecana literatura i pomoce naukowe 1.Foley, van Dam, Hughues, Wprowadzenie do grafiki komputerowej, WNT Warszawa 1997 2.K.Kuklo, J.Kolmaga, Blender-kompendium, Helion 2008 3.M.Woo, J.Neider, T.Davies, OpenGL Programming Guide, Addison-Wesley 2009 4.Randi J. Rost et al. OpenGL Shading Language, Addison-Wesley 2009 5.R.S.Wright et al., OpenGL- SuperBible, Addison-Wesley, 2010 6.T. McReynolds, D. Blythe, Advanced Graphics Programming Using OpenGL, Morgan-Kaufman,2005. Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji Informacje dodatkowe Brak 4 / 5
Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Udział w wykładach Samodzielne studiowanie tematyki zajęć Udział w ćwiczeniach laboratoryjnych Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. Sumaryczne obciążenie pracą studenta Punkty ECTS za moduł Obciążenie studenta 28 godz 34 godz 28 godz 35 godz 125 godz 5 ECTS 5 / 5