Animowana grafika 3D -...

55
Animowana grafika 3D Opracowanie: J. Kęsik [email protected]

Transcript of Animowana grafika 3D -...

Animowana grafika 3D Opracowanie: J. Kęsik

[email protected]

Reprezentacja sceny

Rzutowanie

• Równoległe

• Perspektywiczne

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

Animowana grafika 3D - J. Kęsik

Rzutowanie równoległe jest powszechnie używane w

rysunku technicznym - umożliwienie odtworzenia

(restytucji) punktu w przestrzeni na podstawie

rysunku.

dwa przypadki :

• proste rzutowania przecinają rzutnię pod kątem

prostym (rzut pionowy/aksonometria prostokątna)

• proste rzutowania przecinają rzutnię pod kątem

innym niż kąt prosty (rzut ukośny/aksonometria

ukośna)

Reprezentacja sceny

Rzutowanie równoległe

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

rzut pionowy

Proste przekształcenie współrzędnych punktu

w przestrzeni (P) na punkt na rzutni (R)

Xr=Xp

Yr=Yp

Zr=0

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

rzut pionowy

• Rzuty odcinków równoległych do rzutni są tej samej

długości co odcinki

• Rzuty odcinków prostopadłych do rzutni są

punktami

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe - rzut pionowy

Animowana grafika 3D - J. Kęsik Źródło: http://mst.mimuw.edu.pl/lecture.php?lecture=gk1&part=Ch5

Reprezentacja sceny

Rzutowanie równoległe

rzut ukośny

Przekształcenie współrzędnych punktu

w przestrzeni na punkt na rzutni zależy od kąta

przecięcia prostej rzutowania z rzutnią

Dodatkowym parametrem jest kąt określający

ustawienie prostej rzutowania w stosunku do rzutni

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

rzut ukośny

Animowana grafika 3D - J. Kęsik

Kąt - pozycja na okręgu o środku w punkcie przecięcia pionowej

prostej rzutowania – odchylenie od osi x)

Reprezentacja sceny

Rzutowanie równoległe

rzut ukośny

Animowana grafika 3D - J. Kęsik

Kąt - pozycja na okręgu o środku w punkcie przecięcia pionowej

prostej rzutowania – odchylenie od osi x)

𝑥𝑝 = 𝑥𝐿 cos ∅

𝑦𝑝 = 𝑦𝐿 cos ∅

𝐿 = 𝑧𝐿1 = 𝑧1

𝑡𝑔𝛼

Reprezentacja sceny

Rzutowanie równoległe

rzut ukośny – wsp. jednorodne

Animowana grafika 3D - J. Kęsik

1000

01sincos

0010

0001

),(11

1LL

LPp

pppp Pzyxzyx ]1[]1[

Reprezentacja sceny

Rzutowanie równoległe

rzut ukośny

Animowana grafika 3D - J. Kęsik

Rzut sześcianu jednostkowego ustawionego równolegle do osi

XYZ

Reprezentacja sceny

Rzutowanie równoległe

Podział aksonometrii ze względu na kierunek

rzutowanych osi układu prostokątnego:

• izometria – wszystkie osie układu prostokątnego w

przestrzeni tworzą jednakowy kąt z rzutnią i ich

obrazy ulegają jednakowemu skrótowi – na rzutni

powstaje obraz trzech osi tworzących pomiędzy

sobą kąty po 120°, często na rysunkach

izometrycznych pomija się wpływ skrótu,

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

Podział aksonometrii ze względu na kierunek

rzutowanych osi układu prostokątnego:

• dimetria – dwie z osi układu prostokątnego tworzą

z rzutnią jednakowe kąty (najczęściej są do niej

równoległe),

• anizometria (trimetria) - każda z osi układu

prostokątnego tworzy z rzutnią inny kąt i podlega

innemu skrótowi

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

izometria

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

dimetria

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie równoległe

trimetria

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie perspektywiczne

Linie projekcji schodzą się w jednym punkcie

zwanym środkiem projekcji.

Obrazy punktów wyznaczone są poprzez

przecięcia linii projekcji z rzutnią

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie perspektywiczne

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie perspektywiczne

Obiekty znajdujące się dalej dają mniejszy

obraz na rzutni

Linie równoległe w przestrzeni schodzą się w

pewnym punkcie na rzutni – punkt zbiegu

znajduje się na linii horyzontu

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie perspektywiczne

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie perspektywiczne

Animowana grafika 3D - J. Kęsik

0

p

p

p

z

zd

dyy

zd

dxx

Reprezentacja sceny

Rzutowanie perspektywiczne - ogólne

Animowana grafika 3D - J. Kęsik

Procedura rzutowania komplikuje się, kiedy rzutnia nie jest zgodna

z płaszczyzną XY.

Reprezentacja sceny

Rzutowanie perspektywiczne - ogólne

Animowana grafika 3D - J. Kęsik

Dwa układy współrzędnych:

(xw, yw, zw) – UW świata (world

coordinates)

(xv, yv, zv) - UW obserwatora

(viewer coordinates, camera

coordinates).

Reprezentacja sceny

Rzutowanie perspektywiczne - ogólne

Animowana grafika 3D - J. Kęsik

Procedura dzieli się na dwa etapy:

• Przepisanie współrzędnych

obiektu w układ obserwatora

• Wykonanie rzutowania na

płaszczyznę xvyv (np. rzutowanie

perspektywiczne)

Reprezentacja sceny

Rzutowanie perspektywiczne - ogólne

Animowana grafika 3D - J. Kęsik

Przepisanie współrzędnych

obiektu w układ obserwatora:

V jest macierzą transformacji

wynikającą ze złożenia odpowiednich

transformacji elementarnych (iloczyn

macierzy)

Vzyxzyx ]1[]1'''[

Reprezentacja sceny

Rzutowanie perspektywiczne - ogólne

Animowana grafika 3D - J. Kęsik

Przepisanie współrzędnych

obiektu w układ obserwatora:

• przesunięcie układu obserwatora

do początku UW świata

• obrót układu obserwatora wokół

osi xw, tak aby oś zv znalazła się

na płaszczyźnie xwzw

• obrót układu obserwatora wokół

yw, aby os zv pokryła się z zw

• obrót układu obserwatora zw, aby

osie xv i yv pokryły się z xw i yw.

Reprezentacja sceny

Rzutowanie perspektywiczne - ogólne

Animowana grafika 3D - J. Kęsik

Przepisanie współrzędnych

obiektu w układ obserwatora:

• przesunięcie układu obserwatora

do początku UW świata

• obrót układu obserwatora wokół

osi xw, tak aby oś zv znalazła się

na płaszczyźnie xwzw

• obrót układu obserwatora wokół

yw, aby os zv pokryła się z zw

• obrót układu obserwatora zw, aby

osie xv i yv pokryły się z xw i yw.

Reprezentacja sceny

Rzutowanie perspektywiczne

Podział na 3 rodzaje rzutowania (w zależności

od liczby osi układu świata, które przecinają

rzutnię):

• Jednozbieżne

• Dwuzbieżne

• Trójzbieżne

Animowana grafika 3D - J. Kęsik

Reprezentacja sceny

Rzutowanie Jednozbieżne

Animowana grafika 3D - J. Kęsik

Istnieje jeden punkt zbiegu dla danej

sceny

Rzutnia xvyv leży na płaszczyźnie

xwyw Tylko oś zw przecina rzutnię

Reprezentacja sceny

Rzutowanie Dwuzbieżne

Animowana grafika 3D - J. Kęsik

Istnieją dwa punkty zbiegu dla danej sceny, leżące na linii horyzontu

Dwie osie układu xwywzw przecinają rzutnię xvyv

Reprezentacja sceny

Rzutowanie Trójzbieżne

Animowana grafika 3D - J. Kęsik

Istnieją trzy punkty zbiegu dla danej

sceny

Trzy osie układu xwywzw przecinają

rzutnię xvyv

Odpowiednik obserwacji wierzchołka wysokiego obiektu z bliskiej

odległości na ziemi. Ściany budynków zbiegają się w miarę oddalania od

obserwatora ku środkowi widzianego obrazu.

Algorytmy widoczności

Scena trójwymiarowa jest zbiorem figur

w przestrzeni

W zależności od położenia obserwatora

widoczny jest inny obszar sceny.

Jest on ograniczony bryłą widzenia (view

frustum – dla rzutowania perspektywicznego)

Animowana grafika 3D - J. Kęsik

Algorytmy widoczności

Bryła widzenia

Animowana grafika 3D - J. Kęsik

Bliż

(near plane)

Dal

(far plane)

Algorytmy widoczności

Zadanie określenia widoczności polega na

znalezieniu (i ewentualnym wykonaniu

obrazu) fragmentów figur (ścian) widocznych

dla obserwatora

Dwa główne rodzaje:

• Algorytmy przestrzeni danych • wyznaczają reprezentację obszaru widocznego

z danego położenia obserwatora,

• na podstawie ich wyników można wykonać

wiele obrazów, o dowolnej rozdzielczości i

ogniskowej

Animowana grafika 3D - J. Kęsik

Algorytmy widoczności

Dwa główne rodzaje:

• Algorytmy przestrzeni obrazu • wynikiem jest obraz lub zbiór pikseli

• zmiana rozdzielczości obrazu wymaga

ponownego wykonania algorytmu

Animowana grafika 3D - J. Kęsik

Algorytmy widoczności

• Algorytmy przestrzeni danych Założenia:

scena zdefiniowana jako zbiór ścian, płaskich

wieloboków

Każda ściana posiada swój kolor (odcień

szarości)

Ogólny szablon:

1. Uszeregowanie ścian w kolejności od najdalszej

do najbliższej względem obserwatora

2. Projekcja sceny według ustalonego wcześniej

porządku

Animowana grafika 3D - J. Kęsik

Algorytmy widoczności

• Algorytmy przestrzeni danych

Przeprowadzenie takiej analizy wymaga

najczęściej porównania każdej ściany z każdą

liczba porównań n ścian -> n2

Animowana grafika 3D - J. Kęsik

Algorytmy widoczności

• Algorytmy przestrzeni obrazu

Podstawowymi zasadami są:

1. Wyznaczenie dla każdego piksela ekranu

najbliższej ściany

2. Przyjęcie za kolor piksela koloru

wyznaczonej ściany.

Dla każdego piksela trzeba rozpatrzyć n

ścian.

Dla N pikseli ekranu -> nN porównań

Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

• Algorytm malarza

Składa się z 2 etapów

1. Wstępne wyznaczenie kolejności ścian

2. Rysowanie ścian w kolejności od

najdalszej

Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

Algorytm malarza – etap 1

• Dla każdej ze ścian ze zbioru:

S = {s1, s2, s3, …, si, …, sn} wyznaczamy

maksymalną wartość współrzędnej z

wierzchołka (głębokość)

• Porządkujemy ściany od wartości

największej do najmniejszej

Możliwe błędy i wystąpienia

niejednoznaczności – ta sama głębokość Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

Algorytm malarza – etap 1

Możliwe błędne przypisania

Animowana grafika 3D - J. Kęsik

Dobrze Źle

Algorytmy przestrzeni obrazu

Algorytm malarza – poprawa uporządkowania

Dla każdej pary wstępnie uporządkowanych

ścian wykonuje się 5 testów

Prawidłowy wynik któregoś z testów przerywa

testowanie – ściany nie są zamieniane

miejscami

Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

Algorytm malarza – poprawa uporządkowania

Test 1/5 – współrzędne x

Animowana grafika 3D - J. Kęsik

Wynik jest pozytywny gdy przedziały

[x'min, x'max] oraz [x"min, x"max] nie

zachodzą na siebie

Algorytmy przestrzeni obrazu

Algorytm malarza – poprawa uporządkowania

Test 2/5 – współrzędne y

Animowana grafika 3D - J. Kęsik

Wynik jest pozytywny gdy przedziały

[y'min, y'max] oraz [y"min, y"max] nie

zachodzą na siebie.

Algorytmy przestrzeni obrazu

Algorytm malarza – poprawa uporządkowania

Test 3/5 – przecinanie z płaszczyzną drugiej

ściany

Animowana grafika 3D - J. Kęsik

Wynik jest pozytywny jeśli dla

wszystkich wierzchołków (x', y', z')

ściany s' spełniona jest nierówność:

A"x' + B"y' + C"z' + D" < 0

gdzie A", B", C", D" są

współczynnikami płaszczyzny ściany

s"

Algorytmy przestrzeni obrazu

Algorytm malarza – poprawa uporządkowania

Test 4/5 – przecinanie z płaszczyzną drugiej

ściany

Animowana grafika 3D - J. Kęsik

Wynik jest pozytywny jeśli dla

wszystkich wierzchołków (x", y", z")

ściany s" spełniona jest nierówność:

A'x" + B'y" + C'z" + D' < 0

gdzie A', B', C', D' są

współczynnikami płaszczyzny, na

której leży ściana s'

Algorytmy przestrzeni obrazu

Algorytm malarza – poprawa uporządkowania

Test 5/5 – sprawdzenie rozłączności rzutów

ścian s' i s" na płaszczyznę xy

Animowana grafika 3D - J. Kęsik

Wynik jest pozytywny gdy rzuty ścian

s' i s" na płaszczyznę xy nie stykają

się

Algorytmy przestrzeni obrazu

Algorytm malarza – poprawa uporządkowania

Gdy żaden z 5 testów nie jest pozytywny,

zamienia się ściany miejscami i wykonuje

testy ponownie

W przypadku braku pozytywnych testów i tym

razem, uznaje się taką parę za niemożliwą do

uporządkowania

Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

Algorytm malarza – przypadki szczególne

Animowana grafika 3D - J. Kęsik

Uporządkowanie całej sceny może nie

być możliwe nawet gdy poszczególne

pary da się uporządkować

Konieczny podział ścian

Algorytmy przestrzeni obrazu

Algorytm malarza – przypadki szczególne

Animowana grafika 3D - J. Kęsik

Uporządkowanie całej sceny może nie

być możliwe nawet gdy poszczególne

pary da się uporządkować

Algorytmy przestrzeni obrazu

Algorytm bufora z

Bufor Z (głębokości / głębi) - przechowuje

współrzędną Z dla każdego piksela obrazu.

Dla każdego piksela obrazu wykonywany jest

algorytm testowania ścian przecinanych przez

promień tego piksela

Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

Algorytm bufora z

Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

Algorytm bufora z

Zalety: • łatwa do realizacji sprzętowej, obecnie powszechnie

stosowana przez producentów kart graficznych;

• nieprzezroczyste obiekty trójwymiarowe mogą być

rasteryzowane w dowolnej kolejności.

Wady: • Duża zajętość pamięci

• Pojemność bufora Z (l. bitów) determinuje

dokładność

Animowana grafika 3D - J. Kęsik

Algorytmy przestrzeni obrazu

Algorytm bufora z

Wady: • Pojemność bufora Z (l. bitów) determinuje dokładność

Zbyt mała precyzja może powodować błędy

niejednoznaczności wyświetlania wielokątów leżących na

jednej płaszczyźnie (z fighting):

Animowana grafika 3D - J. Kęsik