wybrane aspekty teorii grafiki komputerowej -glowacki/docs/matwykl/grafkomp/grafika3d-1.pdf ·...

Post on 01-Mar-2019

237 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

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

top related