Grafika wektorowa


Grafika wektorowa
dr inż. Piotr Steć
Instytut Sterowania i Systemów Informatycznych
12 kwietnia 2005
Operacje na wektorach
Dodawanie wektorów
Y
v+w
v
w
X
2
Operacje na wektorach
Iloczyn skalarny
x1 y1
Ą# ń# Ą# ń#
ó# Ą# ó# Ą#
v " w = M " M = x1y1 +K+ xnxn
ó# Ą# ó# Ą#
ó# Ą# ó# Ą#
n n
Ł#x Ś# Ł#x Ś#
v
v " w
cosą =
ą
v w
w
3
Operacje na wektorach
Iloczyn wektorowy Y
Z
x1 x2 y1z2 - y2z1
Ą# ń# Ą# ń# Ą# ń#
ó#y Ą# ó#y Ą# ó#
vxw
v w = = x2z1 - x1z2 Ą#
1 3
ó# Ą# ó# Ą# ó# Ą# v
w
ó# Ą# ó# Ą# ó# Ą#
X
1 2 1
Ł#z Ś# Ł#z Ś# Ł#x y2 - x2 y1Ś#
Wektor wynikowy jest prostopadły do płaszczyzny utworzonej
przez wektory zródłowe. Iloczyn wektorowy może być użyty do
obliczania wektorów normalnych do powierzchni.
4
Reprezentacja obiektów
wektorowych
1
Lista współrzędnych
wierzchołków
1=[3,8]
a
g
2=[6,4]
3=[4,4], itd.
6
3
Lista krawędzi
7
2
b
f
a=[1,2]
e
b=[2,3]
c
c=[3,4], itd.
4
5
d
5
Przekształcenia 2D
Przekształcenia afiniczne to takie
przekształcenia, które zachowują
równoległość krawędzi, np.
Translacja (przesunięcie)
Skalowanie
Obrót
Aby przekształcić cały obiekt, należy poddać
przekształceniu wszystkie jego punkty
6
Translacja
P
Punkt można przesunąć
dodając do jego
Y
P
współrzędnych wielkość
przesunięcia
dx
x Ą# ń#
Ą# ń#
X
2
P = P +T = +
ó#d Ą#
ó#yĄ#
y
Ł# Ś#
Ł# Ś#
7
Skalowanie
Skalowanie odbywa się
P
Y względem środka układu
współrzędnych
P
Skalowanie może być
niejednorodne sx`"sy
sx 0
Ą# ń# x
Ą# ń#
X 2
P = S " P = "
ó#
0 sy Ą# ó#yĄ#
Ł# Ś#
Ł# Ś#
8
Obrót
Obrót odbywa się względem
Y
środka układu współrzędnych
P
Skalowanie może być
P
niejednorodne sx`"sy
cosą - siną x
Ą# ń# Ą# ń#
2
P = R " P = "
ó#siną cosą Ą# ó#yĄ#
X
Ł# Ś# Ł# Ś#
9
Składanie przekształceń 2D
Obrót i skalowanie punktu
2
P = R " P
2 2 2
P = S " P
Rozwiązanie efektywniejsze  macierz złożona
M = S " R
2
P = M " P
Problem z włączeniem translacji do
przekształcenia złożonego
10
Współrzędne jednorodne
Punkt na płaszczyznie reprezentowany jest
przez trzy współrzędne (x,y,w)
Wsp. jednorodne reprezentują ten sam punkt
wtedy, gdy jeden zestaw jest wielokrotnością
drugiego, np. (2,1,4) i (4,2,8)
Przynajmniej jedna ze współrzędnych musi
być różna od zera ((0,0,0)  niedopuszczalne)
11
Translacja we współrzędnych
jednorodnych
1 0 dx x
Ą# ń# Ą# ń#
ó#0 1 dy Ą# ó#yĄ#
2
P = T " P = "
ó# Ą# ó# Ą#
ó#
Ł#0 0 1 Ą# ó# Ś#
Ś# Ł#1Ą#
1 0 dx1 1 0 dx2 1 0 dx1 + dx2
Ą# ń# Ą# ń# Ą# ń#
ó#0 1 dy1Ą# ó#0 1 dy1Ą# ó#0 1 dy1 + dy2 Ą#
2
T = T1 "T2 = " =
ó# Ą# ó# Ą# ó# Ą#
ó# Ą#
1
Ś# Ł#0 Ś# Ł#0
Ł#0 0 1 Ą# ó# 0 1 Ą# ó# 0 Ś#
12
Skalowanie we współrzędnych
jednorodnych
sx 0 0 x
Ą# ń# Ą# ń#
ó# ó#yĄ#
2
P = T " P = 0 sy 0Ą# "
ó# Ą# ó# Ą#
ó# Ą# ó#
0 0 1Ś# Ł#1Ą#
Ł# Ś#
sx1 0 0 sx2 0 0 sx1sx2 0 0
Ą# ń# Ą# ń# Ą# ń#
ó# ó# ó#
2
S = S1 " S2 = 0 sy1 0Ą# " 0 sy2 0Ą# = 0 sy1sy2 0Ą#
ó# Ą# ó# Ą# ó# Ą#
ó# Ą# ó# Ą# ó# Ą#
0 0 1Ś# Ł# 0 0 1Ś# Ł# 0 0 1Ś#
Ł#
13
Obrót we współrzędnych
jednorodnych
cosą - siną 0 x
Ą# ń# Ą# ń#
ó#siną cosą 0Ą# ó#yĄ#
2
P = R " P = "
ó# Ą# ó# Ą#
ó# Ą# ó#
0 0 1Ś# Ł#1Ą#
Ł# Ś#
cosą - siną 0 cos  - sin  0
Ą# ń# Ą# ń#
ó#siną cosą 0Ą# ó#sin  cos  0Ą#
2
R = R1 " R2 = "
ó# Ą# ó# Ą#
ó# Ą# ó# Ą#
0 0 1Ś# Ł# 0 0 1Ś#
Ł#
14
Pochylenia we współrzędnych
jednorodnych
Y
1 a 0
Ą# ń#
ó#0 1 0Ą#
SHx =
ó# Ą#
X
ó# Ą#
Ł#0 0 1Ś#
Y
1 0 0
Ą# ń#
ó#b 1 0Ą#
SH =
y
ó# Ą#
X
ó# Ą#
Ł#0 0 1Ś#
15
Składanie przekształceń 2D
Obrót wokół środka obiektu
Przesunięcie do środka układu współrzędnych
Obrót o zadany kąt
Przesunięcie na poprzednią pozycję
1 0 x1 cosą - siną 0 1 0 x1
Ą# ń# Ą# ń# Ą# ń#
ó#0 1 y1Ą# ó#siną cosą 0Ą# ó#0 1 y1Ą#
2
P = T (x1, y1)" R(ą )"T (-x1,- y1) = " " =
ó# Ą# ó# Ą# ó# Ą#
ó# Ą# ó# Ą#
0 1Ś# Ł#0 0 1
Ł#0 0 1 Ą# ó# 0 Ś#
Ś# Ł#
cosą - siną x1(1- cosą) + y1 siną
Ą# ń#
ó#siną cosą y1(1- cosą) + x1 siną Ą#
=
ó# Ą#
ó# Ą#
0 0 1
Ł# Ś#
16
Składanie przekształceń 2D
Macierz wynikowa może być wynikiem mnożenia
dowolnej liczby macierzy podstawowych
Mnożenie jest zamienne w następujących
przypadkach:
M1 M2
Przesunięcie Przesunięcie
Skalowanie Skalowanie
Obrót Obrót
Skalowanie (sx=sy) Obrót
17
Przekształcenie okna w pole
wizualizacji
obszar ekranu
Y v
pole wizualizacji
X
u
Ą# ń#
umax - umin vmax - vmin
2
P = + umin (y - ymin )" + vmin 1Ą#
ó#(x - xmin )"
xmax - xmin ymax - ymin
Ł# Ś#
18
Przekształcenia 3D
Translacja
1 0 0 dx
Ą# ń#
ó#0 1 0 dy Ą#
ó# Ą#
T =
ó# Ą#
0 0 1 dz
ó#0 0 0 1 Ą#
Ł# Ś#
Skalowanie
sx 0 0 0
Ą# ń#
ó#
0 sy 0 0Ą#
ó# Ą#
S =
ó# Ą#
0 0 sz 0
ó#
0 0 0 1Ą#
Ł# Ś#
19
Obroty 3D
1 0 0 0 cosą 0 siną 0
Ą# ń# Ą# ń#
ó#0 cosą - siną 0Ą# ó#
0 1 0 0Ą#
ó# Ą# ó# Ą#
Rx = Ry =
Ą#
ó# Ą# ó#- siną 0 cosą 0
0 siną cosą 0
ó#0 ó#
0 0 1Ą# 0 0 0 1Ą#
Ł# Ś# Ł# Ś#
cosą - siną 0 0
Ą# ń#
ó#siną cosą 0 0Ą#
ó# Ą#
Rx =
ó# Ą#
0 0 1 0
ó#
0 0 0 1Ą#
Ł# Ś#
20
Rzuty
Przekształcenie reprezentacji 3D na 2D
Rzuty równoległe  promienie rzutujące
są równoległe
Rzuty perspektywiczne  promienie
rzutujące zbiegają się w środku
rzutowania
21
Rzuty
A A
A
A
B B
B
B
rzutnia rzutnia
rzut równoległy rzut perspektywiczny
22
Rzuty równoległe
Rzuty prostokątne  rzutnie równoległe
do osi układu współrzędnych
Rzut izometryczny  rzutnia tworzy
równe kąty z osiami układu
współrzędnych
Rzuty ukośne  normalna rzutni nie jest
równoległą z kierunkiem rzutowania
23
Rzuty prostokątne
24
Rzut izometryczny
25
Rzuty ukośne
wojskowy
ptasi
26
Rzut perspektywiczny
1 0 0 0
Ą# ń#
ó#0 1 0 0Ą#
ó# Ą#
M =
per
ó# Ą#
0 0 1 0
ó#0 0 1/ 0Ą#
d
Ł# Ś#
rzutnia
X
P
P
Z
d
27
Reprezentacja krzywych
Krzywe reprezentowane parametrycznie
x=x(t), y=y(t), z=z(t)
Krzywe aproksymowane kawałkami
Najczęściej używane wielomiany
trzeciego stopnia
28
Wielomiany określające
segment krzywej
Reprezentacja prosta Reprezentacja macierzowa
Ą# ń#
t3
ax bx cx dx
Ą# ń#
ó#t2 Ą#
x(t) = axt3 + bxt2 + cxt + dx
ó#a by cy dy Ą#
ó# Ą#
C = T =
y
ó# Ą#
ó# Ą#
t
ó#
ó# Ą#
y(t) = ayt3 + byt2 + cyt + dy
z Ś#
Ł#a bz cz dz Ą#
1
ó# Ą#
Ł# Ś#
x(t)
x(t) = azt3 + bzt2 + czt + dz Ą# ń#
ó#y(t)Ą#
Q(t) = = C "T
ó# Ą#
0 d" t d" 1
ó#
Ł#x(t)Ą#
Ś#
29
Pochodna Q(t)
d
Ą#
x(t)ń#
Ą# ń#
3t2
ó# Ą#
dt Ą# ń#
3axt2 + 2bxt + cx
ó# Ą#
ó# Ą#
2t
d d d
ó# Ą#
2
ó# Ą#
2
ó# Ą#
Q(t) = Q (t) = y(t) = C "T = C " =
ó#3ayt + 2byt + cy Ą#
ó# Ą#
dt dt
1
ó#dt Ą#
ó#3azt2 + 2bzt + cz Ą#
ó# Ą#
d
ó# Ł# Ś#
z(t)Ą# 0
ó# Ą#
Ł# Ś#
ó# Ą#
dt
Ł# Ś#
Wektor styczny na początku segmentu t=0
Wektor styczny na końcu segmentu t=1
30
Ciągłość geometryczna
G0  segmenty łączą
Q
1
się ze sobą
Q
2
G1  styczne w
S
1
punkcie połączenia
Q
1
mają ten sam
Q
kierunek 2
S
2
31
Ciągłość parametryczna
C1  pierwsze
pochodne
segmentów w
S
1
punkcie połączenia
są identyczne
Q
1
C2  drugie
Q
2
pochodne
S
segmentów w
2
punkcie połączenia
są identyczne
32
Krzywe Bziera
P P
2
3
P
P
2
3
P
7
P
1
P
4
P
1
P
4
P
Równanie opisujące krzywą: 5
P
6
Q(t) = (1- t)3 P1 + 3t(1- t)2 P2 + 3t2(1- t)P3 + t3P4
Aby krzywa byłą ciągła, punkty P3, P4 i P5 muszą być
współliniowe
33
Jednorodne krzywe B-sklejane
(1- t)3 3t3 - 6t2 + 4 - 3t3 + 3t2 + 3t +1 t3
Qi (t - ti ) = Pi-3 + Pi-2 + Pi-1 + Pi
6 6 6 6
0 d" t d" 1
Krzywa aproksymuje m+1 punktów
kontrolnych P0, P1, & , Pm, dla m e" 3
Węzły krzywej mają jednakową odległość ze
względu na parametr t
34
Niejednorodne krzywe
B-sklejane
Odstępy pomiędzy węzłami nie muszą być
jednakowe
Można określać stopień ciągłości w węzłach
Co najmniej 4 punkty kontrolne
Liczba węzłów m+4, gdzie m to liczba
punktów kontrolnych
Sekwencja węzłów musi być niemalejąca
np. (0, 0, 0, 1, 2, 2, 3, 4)
35
Niejednorodne krzywe
B-sklejane
Segment Qi jest określony przez punkty
kontrolne Pi-3, Pi-2, Pi-1, Pi i funkcje bazowe
Bi-3,4(t), Bi-2,4(t), Bi-1,4(t), Bi,4(t)
Qi (t) = Pi-3 " Bi-3,4(t) + Pi-2 " Bi-2,4(t) + Pi-1 " Bi-1,4(t) + Pi " Bi,4(t)
3 d" i d" m
ti d" t < ti+1
36
Funkcje bazowe dla krzywych
B-sklejanych
1, ti d" t < ti+1
ż#
Bi,1(t) =
#0,
w przeciwnym przypadku
#
t - ti ti+2 - t
Bi,2(t) = Bi,1(t) + Bi+1,1(t)
ti+1 - ti ti+2 - ti+1
t - ti ti+3 - t
Bi,3(t) = Bi,2(t) + Bi+1,2(t)
ti+2 - ti ti+3 - ti+1
t - ti ti+4 - t
Bi,4(t) = Bi,3(t) + Bi+1,3(t)
ti+3 - ti ti+4 - ti+1
37
Niejednorodne ułamkowe
krzywe B-sklejane (NURBS)
Postać ogólna
X (t) Y (t) Z(t)
x(t) = , y(t) = , z(t) =
W (t) W (t) W (t)
Są one niezmiennicze względem
przekształceń afinicznych i
perspektywicznego
Mogą dokładnie definiować dowolny
przekrój stożka
38
Oświetlenie i cieniowanie
powierzchni
Modele oświetlenia
Modele cieniowania
39
Wektory używane w
obliczeniach
n  wektor normalny
n
v  kierunek patrzenia
h
l  kierunek światła
v
h  wektor połowiczny
rl
rl =2(ln)n-l
l
t  wektor styczny do
t
powierzchni
40
Światło otoczenia
I = Iaka
41
Odbicie rozproszone
(Lambertowskie)
I = I kd (l " n)
p
42
Odbicie zwierciadlane
(Model Phonga)
Parametr n
decyduje o wielkości
rozbłysku, im jest
większy, tym
rozbłysk jest węższy
i ostrzejszy
I = ks "cos(rl ,v)n " Li = ks (rl "v)n Li
43
Model Blinn a
Bardziej zbliżony do
rzeczywistości od
Phonga
Dobrze symuluje
matowe metaliczne
materiały
I = ks (n " h)n Li
44
Przezroczystość
Przezroczystość interpolowana
I = (1- k)I1 + kI2
Przezroczystość filtrowana
I = I1 + kOtI2
45
Załamanie światła
Prawo odbicia
światła
r = l
Prawo Snell a
n1 sinl = n2 sint
46
Reguła Fresnela
Stosunek ilości światła odbitego do
załamanego zależy od kąta padania
światła
Istnieje pewien graniczny kąt, powyżej
którego światło ulega całkowitemu
odbiciu
47
Cieniowanie płaskie
Wektory normalne obliczane dla wielokątów
48
Cieniowanie Gourauda
Wektory normalne
określone dla wierzchołków
poprzez uśrednienie
wektorów sąsiednich
płaszczyzn
Oświetlenie liczone dla
wierzchołków
Obliczona wartość
interpolowana pomiędzy
wierzchołkami
49
Cieniowanie Phong a
Cieniowanie z interpolacją wektorów
normalnych
Oświetlenie obliczane dla każdego punktu
powierzchni
50
Interpolacja wektorów
normalnych
mapa
powierzchnia
wybrzuszeń
51
Parametryczne mapowanie
tekstury (UVW)
52
Mapowanie planarne
53
Mapowanie prostopadłościenne
54
Mapowanie sferyczne
55
Mapowanie cylindryczne bez
podstawy
56
Mapowanie cylindryczne
z podstawą
57
Mapowanie środowiska
58
Mapowanie wybrzuszeń
59
Tekstury proceduralne
60


Wyszukiwarka

Podobne podstrony:
Grafika wektorwa cw 2
Techniki multimedialne Grafika wektorowa
Grafika wektorwa cw 1
Grafika wektorowa rastrowa
w6 grafika wektorowa
Konkrety grafiki wektorowej
3 Grafika wektorowa i bitmapowa
2008 06?ytor grafiki wektorowej Inkscape [Grafika]
Arch grafika osnovi kompozicii grigoryan
analiza wektorowa
grafika inzynierska wyklad 3 color

więcej podobnych podstron