Animowana grafika 3D -...
Transcript of Animowana grafika 3D -...
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
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 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
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
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
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