Download - Strona 1 Przedmiot: Grafika komputerowa · PDF fileStrona 2 Literatura: 1. Foley J.D., van Dam A., i inni , Wprowadzenie do grafiki komputerowej, WNT, 2. Grafika komputerowa metody

Transcript

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