Strona 1 Przedmiot: Grafika komputerowa · PDF fileStrona 2 Literatura: 1. Foley J.D., van Dam...
Transcript of Strona 1 Przedmiot: Grafika komputerowa · PDF fileStrona 2 Literatura: 1. Foley J.D., van Dam...
Strona 1Przedmiot: Grafika komputerowaRodzaj Przedmiot specjalnościowySemestrWymiar zajęć 30 godzin wykładu, 30 godzin ćwiczeńPunkty ECTS 6Sposób zaliczania egzamin
Treści programowe:
1. Wstęp, krótka historia grafiki komputerowej 2. Część teoretyczna:
a) Podstawy algorytmiczne i teoria grafiki komputerowej b) Podstawy geometrii w grafice 2D i 3D
▪ transformacje postawowe▪ krzywe B-spline, siatki, powierzchnie
c) Przykładowe algorytmy:▪ kreślenia prostych na ekranie rastrowym▪ algorytmy wypełniania obszarów▪ rzutowanie ukośne i perespektywiczne
d) Podstawy renderingu▪ Modele oświetlenia lokalnego i globalnego▪ Metody śledzenia promieni▪ Metody energetyczne▪ Podstawy teorii barw
e) Tekstury, rendering Gorouda, Phonga, Wardiso, itp.f) Na życzenie: elementy programowania 3D w OpenGL lub DirectX
3. Część praktycznaa) Oprogramowanie stosowane do tworzenia grafiki 2D i 3D: przegląd i analiza
możliwościb) Podstawy praktycznego modelowania 3D, podstawowe pojęciac) Interfejs programów 3D - szczególnie Blender3Dd) Renderery (Povray, Mentalray, Maxwell, Blender, Yafray)e) Modelowanie
▪ operacje 3D – intersect, union, weld, extrude, smooth, itp)▪ zaawansowane modelowanie i narzędzia obróbki 3D▪ własne rozszerzenia w Pythonie, system pluginów, import/export
f) Oświetlenie sceny▪ światła typu PointLight▪ światła typu AreaLight▪ światła typu Hemi, SunLight▪ lampy fotonowe i efekty kaustyki (PhotonLamp)▪ promieniowanie hemisfery i światła typu AmbientLight▪ modelowanie parametryczne świata 3D▪ oświetlenie w modelu Ambient Occlusion
g) Teksturowanie▪ Materiały, tekstury i shadery▪ Filtry tekstur▪ Mapowanie tekstur oraz transformacje tekstur▪ Teksturowanie brył i metody unwrappingu▪ Tekstury parametryczne▪ Miksery i transformacje tekstur w Node Editor
h) Renderowanie▪ Metody przyspieszania renderingu, backing tekstur
i) Animacja▪ Podstawy animacji: chronometraż, krzywe IPO, klatkowanie▪ Animacja parametryczna i symulacje fizyki▪ Tworzenie gier i wykorzystanie silnika fizycznego Blendera
Strona 2Literatura:
1. Foley J.D., van Dam A., i inni , Wprowadzenie do grafiki komputerowej, WNT,2. Grafika komputerowa metody i narzędzia, praca zbiorowa pod red. J.
Zabrodzkiego, WNT,3. S. Wright, B Lipchak: OpenGL księga eksperta, Helion,4. Angel E., Interactive Computer Graphics: A top-down approach using OpenGL.
Addison-Wesley.5. Foley et al, Introduction to Computer Graphics. Addison-Wesley. 6. Angel E., OpenGL Primer. Addison-Wesley.7. Woo et al, OpenGL Programming Guide (Fourth Edition). Addison-Wesley.8. Computer Graphics and Applications – czasopismo9. Materiały z Blender Foundation, http://blender.org10. Blender: Beginners Tutorial Guide:
http://download.blender.org/documentation/BlenderTutorialGuide1.tar.gz11. Blender: Dokumentacja użytkownika:
http://wiki.blender.org/index.php/Main_Page.pl
Skrócony opis przemiotu:
Grafika komputerowa jest od lat uznanym i wdzięcznym tematem, przyciągającym zarówno artystów, jak i matematyków. Celem przedmiotu jest prezentacja podstaw wiedzy związanej z technikami obliczeniowymi stosowanymi w grafice 2D i 3D, jak również umożliwienie samodzielnego wejścia w świat modelowania i renderingu. Cały przedmiot jest podzielony na część teoretyczną i praktyczną. W części teoretycznej jest mowa o matematyce, fizyce światła i programowaniu, natomiast w części praktycznej wykład dotyczy samodzielnego modelowania scen 3D, oświetlania ich, oteksturowywania oraz renderowania. W efekcie student może zdobyć podstawy pozwalające na samodzielne pisanie aplikacji rysujących w 2D/3D oraz umiejętność generowania trójwymiarowych scen i animacji za pomocą Blendera3D.
Wymagane oprogramowanie:1. System operacyjny: Linux + X lub Windows XP/Vista2. Język programowania: C/C++ z bibliotekami Xlib, OpenGL, GLUT, itp.3. Modeler 3D: Blender3D z Blender Foundation4. Renderer 3D: Yafray, ewentualnie Blender5. Ewentualnie: Python 2.5, Powray, Perl, i inne typowe narzędzia