|
|
|
PROGRAM STUDIÓW PODYPLOMOWYCH: Nowoczesna Grafika Komputerowa Wprowadzenie do systemu Softimage Programowanie wirtualnej rzeczywistości z zastosowaniem języka VRML Programowanie gier komputerowych
|
|
Teoretyczne podstawy grafiki 24 h prowadzący T. Szuba
Uzasadnienie: Współczesna animowana 3D grafika komputerowa wykorzystuje tak wiele pozornie odległych dziedzin wiedzy, że konieczny jest wykład teoretyczny konsolidujący tą wiedze. Oprócz wiedzy o tym jak liczona jest grafika (algorytmy) na różnych poziomach, pracując z grafiką komputerową należy posiadać orientacje w zakresie architektur komputerowych dla grafiki, wiedzę o profesjonalnym sprzęcie do jej tworzenia czy wreszcie umieć poradzić sobie z dynamiką obiektów typu „szkielet biegnącego dinozaura .” Wykład teoretyczny ma tą wiedze zaprezentować lub rozszerzyć.
a. Obszary zastosowań grafiki komputerowej i ich charakterystyka.
2. Psychologia widzenia i percepcji obrazu, kształtu i ruchu dla człowieka i porównawczo dla zwierząt.
3. Sprzęt komputerowy niezbędny dla realizacji zaawansowanej grafiki komputerowej:
· Zawansowane urządzenia I/O (skanery 3D, spacemouse, dataglove, etc.)
· Konstrukcja systemów Virtual Reality i ich zastosowanie.
· Procesory Graficzne:
a. Koncepcja przetwarzania (graphics pipeline)
b. Architektury procesorów graficznych (GPU) i wielopotokowych kart graficznych.
c. Konstrukcje stacji roboczych i „super systemów” dla potrzeb grafiki komputerowej.
4. Algorytmy i metody zrównoleglania obliczeń w grafice komputerowej.
5. Reprezentacja obiektów geometrycznych stosowanych w grafice komputerowej:
· Stosowane w profesjonalnych systemach prymitywy graficzne i ich reprezentacja matematyczna:
a. Obiekty prosto- i krzywokreślne (krzywe Hermite’a Bezier,a, NURBS).
b. Modele obliczeniowe złożonych obiektów; ciecze, gazy.
c. Modele hierarchiczne w grafice komputerowej 3D.
· Zasady konstrukcji sceny.
6. Transformacje geometryczne. Trudności obliczeniowe transformacji.
7. Obliczanie wizualizacji obiektów i scen graficznych w układzie 2D i 3D.
8. Modele oświetlenia, koloru, przeźroczystości i przedstawienia powierzchni.
9. Tekstury – konstruowanie tekstur.
10. Animacja (grafika 4D):
· Problemy i stosowane metody przedstawiania dynamiki obiektów.
· Modelowanie i liczenie dynamiki: szkielety i pokrycia. Definiowanie środowisk.
· Edytory animacji.
11. Modelowanie złożonych obiektów, systemów obiektów i struktur (np. twarz ludzka).
12. Fraktale.
13. Przegląd i analiza porównawcza profesjonalnych systemów do tworzenie grafiki komputerowej.
14. Najważniejsze konferencje i ośrodki zajmujące się grafiką komputerowa w Polsce i na Świecie.
Wprowadzenie do systemu Softimage 24 h T. Szuba & M. Gajer
Uzasadnienie: Jest to być może najbardziej „esencjonalna” część naszego Studium, zapewniająca jednocześnie po jego ukończeniu kwalifikacje wystarczające aby samemu móc zrealizować np. spot reklamowy, program symulujący prace maszyny, etc. Na takim poziomie programuje się grafikę w wyspecjalizowanych studiach i w prywatnych firmach, gdzie liczy się jakość i czas realizacji zamówienia. Okazuje się, że praca z takim pakietem bezpośrednio tłumaczy szereg zjawisk w nowoczesnej grafice komputerowej i obnaża trudności techniczne.
1. Początki z Softimage XSI.
a. Utworzenie prostego projektu.
b. Dodanie projektu do puli Project Manager.
c. Środowisko Softimage XSI.
d. Interakcja z systemem.
2. Podstawy.
a. Przykład: Budujemy uliczkę.
b. Edytowanie własności.
3. Modelowanie & Deformacje.
a. Modelowanie przy pomocy siatki wieloboków.
b. Deformacje obiektów.
4. Podstawy Animacji.
a. Animacja na niskim poziomie komplikacji.
5. Definiowanie Istot.
a. Tworzenie szkieletu Istoty.
b. Pokrywanie Istoty skórą.
c. Tworzenie cyklu ruchu Istoty.
6. Zaawansowana Animacja
a. Wprowadzenie do animacji ruchu Istoty.
b. Zaawansowana animacja ruchu Istoty.
c. Animacja ruchów twarzy.
7. Skrypty.
8. Drzewo renderowani i Tekstury.
a. Proste tekstury.
b. Drzewa renderowania: shadery i tekstury.
c. Edytor tekstur.
9. Oświetlenie pośrednie i bezpośrednie.
a. Efekty oświetleniowe.
b. Tzw. oświetlenie globalne.
c. Oświetlenie kaustyczne.
d. Metoda tzw. podsumowania powierzchniowego.
10. Renderowanie i Kompozycja.
a. Tworzenie przebiegów renderowania.
b. Finalna kompozycja.
11. Symulacja.
a. Systemy cząsteczkowe
b. Renderowanie systemów cząsteczkowych.
c. Tworzenie cieczy.
d. Dynamika sztywnych obiektów.
12. Tworzenie włosów.
Programowanie w OpenGL 24 h M. Turek
Uzasadnienie: Grafika komputerowa może być realizowana na różnych poziomach, stosując pakiety oprogramowania o różnym stopniu komplikacji. Pakiet Softimage jest przykładem realizacji najwyższego poziomu, gdzie do pakietu wbudowane już są zjawiska fizyczne (grawitacja, elastyczność tkanin, woda, wiatr, etc.) pozwalając tym samym albo na b. szybkie programowanie złożonych efektów, albo na używanie pakietu po krótkim przeszkoleniu przez „artystów” posiadających minimalną wiedze nt. komputera. Osoba która chce móc powiedzieć, że „zna się” na grafice komputerowej musi umieć także programować grafikę w asemblerze, za jaki niewątpliwie można uznać OpenGL. Taki tryb programowani pozwala na napisanie b. optymalnych programów, jednak za cenę dużego wysiłku i sporego nakładu czasu.
1. Wprowadzenie do OpenGL i konwencje stosowane w OpenGL:
a. typy zmiennych
b. nazewnictwo funkcji i stałych bibliotecznych
c. obsługa błędów
d. układ współrzędnych
e. tryby koloru
2. Przygotowanie kontekstu graficznego OpenGL:
a. otwieranie okna graficznego
b. zarządzanie buforami graficznymi
c. zdarzenia i ich obsługa
3. Definiowanie obiektów w OpenGL:
a. definiowanie wierzchołków w układzie współrzędnych
b. definiowanie parametrów wyświetlania figur
c. przegląd funkcji bibliotecznych rysujących standardowe figury OpenGL i
d. zawartych w bibliotekach GLU oraz GLAUX
4. Przekształcenia w przestrzeni trójwymiarowej OpenGL:
a. modelowanie sceny
b. ustalanie pozycji obserwatora
c. korekty perspektywy
d. ustawianie widoku graficznego i płaszczyzn odcięci
5. Zarządzanie oświetleniem sceny:
a. definiowanie właściwości powierzchni odbijających światło
b. definiowanie źródeł światła
6. Teksturowanie:
a. definiowanie tekstury
b. pobieranie grafik z plików dyskowych
c. operacje na pikselach
d. tryby przechowywania tekstur w pamięci
e. tekstury zwielokrotnione - mipmapy
f. nakładanie tekstury na powierzchnię obiektu - teksturowanie
g. powielanie wyświetlania tekstury
h. korekty kolorystyki teksturowanego obiektu
7. Efekty specjalne:
a. antyaliasing figur i całego widoku graficznego
b. mgła
c. rozmycie obiektów w ruchu,
d. przezroczystość
8. Przykłady zastosowań OpenGL.
Programowanie wirtualnej rzeczywistość z zastosowaniem języka VRML 24 h M. Gajer
Uzasadnienie: Język VRML jest narzędziem informatycznym pozwalającym na dodanie do sieci Internet trzeciego wymiaru. Można w nim wyspecyfikować parametry geometryczne obiektów znadujących się na scenie, a następnie uczestnik świata wirtualnego, zwany „awatarem”, może je dowolnie eksplorować, oczywiście korzystając z odpowiedniej przeglądarki VRML. W ramach zajęć ich uczestnicy poznają podstawy programowania wirtualnych światów w języku VRML, co pozwoli im na stworzenie w ramach ćwiczeń praktycznych np. wirtualnych modeli średniowiecznych zamków.
1. Wprowadzenie:
a. historia powstania VRML
b. przeglądarki plików VRML
c. metody tworzenia światów VRML
d. dołączanie światów VRML do dokumentów HTML
e. typy pól i zdarzeń (Bool, Color, Float, Image, Int32, Node, Rotation, String, Time, Vec2f, Vec3f)
f. podstawy składni
g. węzły, pola i zdarzenia
2. Struktura sceny trójwymiarowej:
a. układ współrzędnych
b. lokalne układy współrzędnych
c. definicja obszaru pracy węzła
d. wielokrotne przywoływanie zdefiniowanych elementów
3. Podstawowe elementy języka VRML:
a. węzły (grupujące, geometryczne, zależne od czasu, wiążące, interpolujące, czujnikowe)
b. nawigacja, zdarzenia, czas, światło, prototypy
4. Stosowanie języków skryptowych:
a. VRML i JavaScript
b. uruchamianie i zamykanie skryptów
c. bezpośrednie wysyłanie zdarzeń
d. dołączanie skryptów
e. zasady dostępu do pól i zdarzeń
5. Szczegółowa charakterystyka węzłów:
a. węzły grupujące (Anchor, Billboard, Collision, Group, Transforn)
b. węzły geometryczne (Shape, Box, Cone, Cylinder, ElevationGrid, Extrusion, PointSet, Shere, Text)
c. węzły właściwości brył (color, Coordinate, Normal, TextureCoordinate)
d. węzły świateł (DirectionalLight, PointLight, SpotLight)
e. węzły dźwięków (AudioClip, Sound)
f. węzły czujnikowe (CylinderSensor, PlaneSensor, ProximitySensor, SphereSensor, TimeSensor, TouchSensor, VisibilitySensor)
g. węzły interpolacji (ColorInterpolator, CoordinateInterpolator, NormalInterpolator, OrientationInterpolator, PositionInterpolator, ScalarInterpolator)
6. Narzędzia do tworzenia wirtualnych światów:
a. VRCreator, VRBinder, 3D Modeler
a. budowa interfejsu pomiędzy przeglądarką VRML a światem zewnętrznym
b. opracowanie standardów tworzenia ludzkiej reprezentacji w świecie wirtualnym
8. VRML i inne języki internetowe:
a. External Authoring Interface, Java 3D
9. Przeglądarki VRML:
a. Cosmo Player, Ccpro3D, WIRL, Community Place Browser
10. Edytory VRML:
a. VRCreator, Community Place Conductor, V-Realm Builder
Programowanie stron www 24 h G. Rogus
Uzasadnienie: Programowanie stron www jest formą realizacji grafiki komputerowej. Ograniczenia sprzętowe i sieciowe redukują stopień animacji strony i powodują, że przewage ma grafika 2D a nie 3D. Może się to jednak wkrótce zmienić, czego objawy widoczne są np. w działaniach firmy Microsoft. Zajęcia z programowania stron www w połączeniu z innymi przedmiotami Studium mają zapewnić pewnego rodzaju „kompletność” kształcenia w zakresie grafiki.
1. Problematyka programowania WWW (server-side, client-side), podstawowe pojęcia (HTTP, MIME, URI, URL), podstawowe technologie WWW.
2. Język HTML, struktura dokumentu, formatowanie tekstu, odsyłacze hipertekstowe, listy, tabele, ramki, grafika, formularze, multimedia na stronach WWW.
3. Projektowanie serwisów WWW - layout, struktura serwisu, nawigacja, prezentowanie danych.
4. Podstawy CSS - dziedziczenie, kaskadowość, składnia, definicji stylu. CSS - tworzenie klas, tworzenie identyfikatora ID, selektor kontekstowy i uniwersalny, pseudoklasy, pseudoelementy.
5. Sposoby wstawiania arkuszy stylów. CSS - przykłady.
6. Podstawy języka JavaScript, sposoby umieszczania skryptów JavaScript.
7. Podstawy programowania, zmienne, funkcje, instrukcje sterujące, główne obiekty, metody, zdarzenia.
8. JavaScript - przykłady.
9. Technologia Java, architektura platformy JAVA (JVM, Java API, Java Program).
10. Podstawy języka Java, programowanie klasyczne a programowanie w Javie.
11. Podstawowe cechy i pojęcia języka JAVA (aplikacja, applet, serwlet i inne).
12. Narzędzia - pakiet SDK, pakiety wizualne. Applety przykłady.
13. Programowanie obiektowe w PHP.
14. Wykorzystanie technologii PHP w aplikacjach bazodanowych.
15. Bezpieczeństwo w aplikacjach internetowych.
Programowanie gier komputerowych 24 h P. Skrzyński
Uzasadnienie: Podobnie jak kiedyś komputery klasy PC, dzisiaj gry komputerowe oparte o animowaną grafikę 3D „popchnęły” architekturę procesorów ku dalszemu rozwojowi. Wystarczy przypomnieć jaka przewagę w mocy obliczeniowej nad najszybszymi procesorami Pentium ma 9-rdzeniowy GPU „CELL” zaprojektowany dla PlayStation 3. Może się okazać, że wkrótce domowy komputer PC będzie składał się z karty graficznej ... i reszty ... Wyraźnie widać, że aktualny postęp w grafice komputerowej napędzany jest i inspirowany właśnie grami komputerowymi. Poprzez gry komputerowe ambitna grafika komputerowa także „trafia pod strzechy”. Oznacza to, że kurs grafiki komputerowej musi zawierać moduł zajmujący się grami ...
Część 1: Programowanie gier w Javie: wprowadzenie do języka, wątki i ich synchronizacja, model zdarzeń, rysunki, animacje, podwójne buforowanie, ulepszanie animacji, efekty dzwiękowe oraz muzyka, zapisywania gier: klasy I/O, serializacja.
Część 2: Visual C++ i DirectX: komponenty DirectX, jak działa DirectX, model COM i DirectX, grafika Direct3D, mapy bitowe Windows, animacje, wykrywanie kolizji.
Direct Input: wprowadzenie, dane buforowane i niebuforowane,użyteczne klasy.
DirectSound: teoria dźwięku, pożyteczne klasy.
Porównanie DirectX i OpenGL.
Część 3: Matematyczne aspkety programowania gier, elementy sztucznej inteligencji w grach.
Projekt w Softimage 24 h T. Szuba & M. Gajer
Uzasadnienie: Doświadczenie w uczeniu grafiki komputerowej pokazuje, że maksymalny efekt osiąga się gdy studenci podczas kursu są zobligowani do zrobienia np. w 2-osobowych zespołach „własnego projektu”. Często potem wykorzystują oni taki „projekt jako swoją wizytówkę”. Jeszcze lepsze efekty są osiągane, gdy na zakończenie odbywa się uroczysty konkurs na 3 najlepsze projekty. Co ciekawe, ujawniają się wtedy ukryte talenty o których sami studenci nie mają pojęcia, do momentu realizacji i porównania z innymi.
Indywidualnie lub w 2-osobowych zespołach uczestnicy Studium mają zrealizować projekt w Softimage; np. lecącego ptaka. Temat projektu zostanie wybrany przez samych studentów na początku zajęć. Kurs zakończy się wspólnym pokazem.