Zajęcia w zakresie tworzenia i przetwarzania grafiki komputerowej.
Wybrane aspekty teorii grafiki komputerowej -glowacki/docs/matwykl/GrafKomp/Grafika3D-1.pdf ·...
Transcript of Wybrane aspekty teorii grafiki komputerowej -glowacki/docs/matwykl/GrafKomp/Grafika3D-1.pdf ·...
Wybrane aspekty teorii grafiki komputerowej -dążenie do wizualnego realizmu
Mirosław Głowacki
Zagadnienia
Jak rozumiemy fotorealizm w grafice komputerowej
Historyczny rozwój kart graficznych
Przekształcenia geometryczne Przetwarzanie Rendering Rasteryzacja
Obraz realistyczny Pojęcie obrazu realistycznego jest
rozumiane w różny sposób
Nie zawsze obraz realistyczny jest najbardziej pożądany
Często idealizuje się obraz w celu zawarcia w nim większej porcji informacji
Psychologowie powiadają:
człowiek widzi nie to, co widzą jego oczy, lecz to, co widzi jego mózg.
Złudzenia optyczne Mogą być i na ogół są wykorzystywane w tworzeniu
realizmu wirtualnego, ale czasami powodują artefakty Na poniższym rysunku linie poziome są równoległe
Symulowany przelot koło Urana –widoczne pierścienie i orbita sondy
Dodatkowe światło po zaciemnionej stronie planety (w rzeczywistości jest całkowicie czarna) oraz dodatkowe elementy (orbity)
Wytworzony komputerowo obraz fotorealistyczny
Obraz realistyczny
Często stosuje się „realistyczne obrazy” nie istniejących obiektów, np. statków kosmicznych, prototypów samochodów, itp.
Czasem obraz realistyczny istniejących obiektów tworzony jest przy pomocy wyidealizowanychelementów składowych
Przykładem może tu być modelowanie molekulane. Atomy są idealizowane w postaci nierzeczywiście barwnych kul, widoczne są wiązania i drgania atomów (animacja) itp.
Teksturowany statek kosmiczny –450 tys. wielokątów
Fotomontaż wykonany w programie GIMP
Para stereo cząsteczki wirusa Polio
– model składający się z kul o
promieniu 5 nm
Podział kart graficznych
Na przestrzeni ostatnich lat powstawał cały szereg coraz to bardziej doskonałych kart graficznych. W zależności od stopnia zaawansowania technicznego można je podzielić na:bufory ramki
akceleratory grafiki płaskiej
akceleratory grafiki trójwymiarowej
procesory graficzne
Bufory ramki
Są to najprostsze karty graficznesłużące jedynie do wyświetlania obrazuna ekranie monitora.
Akceleratory grafiki płaskiej
Są to urządzenia wspomagające procesor przy operacjach typu:
wyświetlanie wielokątów i linii prostych
Wypełnianiu (rasteryzacja) wielokątów
przesuwaniu i skalowaniu okien
itp.
Akceleratory grafiki trójwymiarowej
Są to urządzenia odciążające jednostkę centralną w końcowym procesie obliczeń
W przypadku tych urządzeń w dalszym ciągu wstępne przygotowanie sceny 3D spoczywa na procesorze, a szybkość realizacji tego zadania zależy od algorytmów zastosowanych przez programistę.
Procesory graficzne
Urządzenia te posiadają układy wspomagające operacje geometryczne
działają przy minimalnym zaangażowaniujednostki centralnej komputera w proces tworzenia grafiki
określa się je również mianem akceleratorów geometrii.
Grafika trójwymiarowa Niezależnie od konstrukcji karty graficznej
najważniejszym zadaniem, jakie musi wykonać komputer przy tworzeniu trójwymiarowej grafiki jest przedstawienie jej na płaskim ekranie monitora.
Cały proces tworzenia obrazu od chwili otrzymania danych z programu do momentu wyświetlenia grafiki na ekranie
monitora
nazywany jest często przetwarzaniem strumienia grafiki trójwymiarowej.
Strumień grafiki trójwymiarowej
W strumieniu tym wyróżnić można dwa zasadnicze etapy obliczeń:
przekształcenia geometryczne
rendering oraz rasteryazacja sceny
Pojęcie syntetycznej kamery
Pojęcie to jest użyteczną metaforą do tworzenia grafiki 3D
Obiekt rzeczywisty umiejscowiony jest w tzw. współrzędnych świata x, y i z.
Wyobraźmy sobie kamerę, którą można przenieść w dowolne miejsce
zorientować ją w dowolny sposób
otwierać migawkę tworząc płaski obraz rzeczywistości 3D
Rzutowanie w przestrzeni 3D
Syntetyczna kamera fotografująca obiekt 3D
Pojęcie syntetycznej kamery
Kamerze można nadać ruch, co umożliwi tworzenie animowanych sekwencji obiektów z różnych punktów obserwacji
pod różnymi kątami
przy różnych powiększeniach
Z kamerą związany jest układ współrzędnych u, v i n, przy czym ostatnia współrzędna jest prostopadła do matrycy kamery (rzutni).
Kamera jest po prostu „programem komputerowym”, który symuluje kamerę rzeczywistą, a obiekty są zbiorami punków, odcinków i powierzchni
Tworzenie obrazu szkieletowego
Składa się z kilku kroków
określenie rodzaju rzutu
określenie parametrów rzutowania
powierzchni, na której rzut zostanie wyświetlony układ współrzędnych sceny
układ współrzędnych oka (rzutowania)
rzutowanie i wyświetlanie – zawartość tzw. bryływidzenia jest rzutowana na płaszczyznę (powierzchnię) rzutowania i obcinana do obszaru pewnego okna
Rodzaje rzutów w grafice komputerowej
W zdecydowanej większości są to planarne (płaskie) rzuty geometryczneplanarne – rzutnia jest powierzchnią płaską
geometryczne – promienie rzutujące są prostoliniowe
największe znaczenie mają rzut perspektywiczny i równoległy prostokątny
Rzutowanie w przestrzeni 3D
Klasyfikacja płaskich rzutów geometrycznych
Pokój z kamerą
filmową – rzuty
prostokątne: górny
(a), przedni (b),
boczny (c)
Pokój z kamerą po ustawieniach geometrii – rzut perspektywiczny
Planarne rzuty geometryczne równoległe
prostokątne – kierunek rzutowania jest normalny do rzutni z góry z przodu z boku aksonometryczne – pod pewnymi kątami do wszystkich osi
izomeryczne – pod równymi kątami do wszystkich osi inne
ukośne – różne: kierunek rzutowania i normalna do rzutni wojskowe kawaleryjskie inne
Przykład rzutów równoległych obiektu z prawego dolnego rysunku
Rzuty prostokątne
Planarne rzuty geometryczne
perspektywiczne – pęki prostych wzajemnie równoległych zbiegają się w punkcie (punktach) zbieżności o ile nie są równoległe do rzutni
jednopunktowe – rzutnia jest prostopadła do jednej z osi –istnieje jeden osiowy punkty zbieżności
dwupunktowe (najczęściej używane) – jedna z osi jest równoległa do rzutni – istnieją dwa osiowe punkty zbieżności
trzypunktowe – żadna z osi nie jest równoległa do rzutni –istnieją trzy osiowe punkty zbieżności
Przykład rzutu dwupunktowego – zamek w Baranowie Sandomierskim
Ustawianie geometrii obrazu
Program generujący obraz 3D poprzez odpowiedni interfejs OpenGL czy Direct3D wysyła współrzędne wszystkich wierzchołków sceny do tzw. układu ustawiania trójkątów
Jest to specjalna jednostka, będąca częścią chipu graficznego. Grupuje ona wszystkie trójki wierzchołków w trójkąty
Triangularyzacja
Ustawianie geometrii
Każda trójka współrzędnych punktów powinna być zapamiętana w oddzielnym wektorze. Jako że praktycznie każdy wierzchołek należy nie do jednego, a do dwóch lub nawet więcej trójkątów
stosuje się więc pewne techniki, które mają zmniejszyć rozmiar macierzy opisujących współrzędne wierzchołków
opierają się one na tworzeniu tzw. pasów (strips) i wachlarzy (fans)
Pasy i wachlarze
Świat tworzony przez wszystkie akceleratory 3D składa się z trójkątów.
Trójkąt ma trzy wierzchołki. Każdy z nich ma trzy współrzędne - x, y i z.
Jeśli zechcemy stworzyć prostokąt, będziemy musieli wykorzystać w tym celu dwa trójkąty.
Zatem prostokąt, który normalnie ma cztery wierzchołki, akcelerator 3D jest zmuszony opisać sześcioma wierzchołkami.
Pasy i wachlarze
W celu zmniejszenia ilości przetwarzanych danych, a co za tym idzie - zwiększenia szybkości animacji stosuje się różne techniki wykorzystywania wspólnychwierzchołków zwane pasami i wachlarzami
Pasy i wachlarze
Tworzenie pasów
Pasy pozwalają na tworzenie długich ścian
Do podstawowego trójkąta: dokładany jest nowy wierzchołek
z wykorzystaniem dwóch istniejącychuprzednio wierzchołków tego trójkąta tworzony jest nowy trójkąt
Następnie dodawany jest kolejny wierzchołek pozwalający zdefiniować nowy trójkąt
Przy udziale nowopowstałego trójkąta tworzony jest kolejny
Wachlarze Wachlarze pozwalają na
modelowanie obiektów o kształcie zbliżonym do okręgu
Wachlarze powstają również podczas tworzenia nowychtrójkątów z wykorzystaniem jednego z istniejącychwierzchołków
Tym razem jest to ciągle ten sam wierzchołek należący do trójkąta bazowego
Ustawianie geometrii bryły widzenia
Rozpoczynając generowanie trójwymiarowej sceny niezbędne jest utworzenie „mapy” opisującej położenie wszystkich występujących na niej obiektów
Następnie wszystkie obecne na ekranie bryły należy poddać trzem operacjom transformacjigeometrycznych: skalowaniu translacji rotacji
ustawia to obiekty w odpowiednim położeniu oraz we właściwej skali.
Ustawianie geometrii bryły widzenia
Ustawianie geometrii bryły widzenia Operacje ustawiania geometrii wymagają
skomplikowanych rachunkówzmiennoprzecinkowych
Należy do tego celu zaangażować dużą moc obliczeniową
Najnowsze układy graficzne wyposażone są w specjalizowane procesory równoległe i wykonują tego typu obliczenia znacznieszybciej niż byłyby to w stanie zrobić procesory centralne komputerów.
Wycinanie i zakrywanie linii niewidocznych Obiekty mogą być modelowane jedynie jako:
zbiory powierzchni lub
bryły
Tylko tak sprecyzowane mogą w sposób jednoznaczny zasłaniać inne obiekty.
Rzuty z liniami zasłoniętymi niosą mniejinformacji niż rzuty złożeniowe i przekroje
Dlatego czasami pozostawia się niektóre linie niewidoczne jako: mniej intensywne,
przerywane lub
w innych kolorach
Pokój z kamerą – kolorowe linie widoczne na rysunku nie będą oczywiście wizualizowane
Przetwarzanie – obraz dynamiczny Czasami obraz nie jest obrazem statycznym.
W przypadku animacji w celu skrócenia czasu obliczeń kolejnej klatki: wszystkie opisywane wcześniej
przekształcenia wykonywane są tylko raz w trakcie tzw. Preprocesingu
kolejny raz wykonywane są dopiero przy znacznych zmianach sceny graficznej lub położenia obserwatora
Przetwarzanie
Dzięki temu, jeżeli tylko trójwymiarowy obraz nie zmienił się w znaczący sposób, kolejne rachunki sprowadzają się do:
zmiany punktu widzenia obserwatorazmiany położenia niektórych obiektówponownych kalkulacji oświetleniaewentualnych przesunięć kadrowania itp.
Jeżeli trójwymiarowy obraz zmienił się w znaczący sposób to następuje powtórzenie renderingu