background image

Grafika wektorowa

dr inż. Piotr Steć

Instytut Sterowania i Systemów Informatycznych

12 kwietnia 2005

background image

2

Operacje na wektorach

„

Dodawanie wektorów

v

w

v+w

X

Y

background image

3

Operacje na wektorach

„

Iloczyn skalarny

n

n

n

n

x

x

y

x

x

y

x

x

w

v

+

+

=

=

K

M

M

1

1

1

1

w

v

w

v

=

α

cos

v

w

α

background image

4

Operacje na wektorach

„

Iloczyn wektorowy

=

×

=

×

1

2

2

1

2

1

1

2

1

2

2

1

2

3

2

1

1

1

y

x

y

x

z

x

z

x

z

y

z

y

z

y

x

z

y

x

w

v

Wektor wynikowy jest prostopadły do płaszczyzny utworzonej 
przez wektory źródłowe. Iloczyn wektorowy może być użyty do 
obliczania wektorów normalnych do powierzchni.

v

w

X

Y

v w

x

Z

background image

5

Reprezentacja obiektów 
wektorowych

1

2

3

4

5

6

7

a

b

c

d

e

f

g

„

Lista współrzędnych 
wierzchołków

1=[3,8]
2=[6,4]
3=[4,4], itd.

„

Lista krawędzi

a=[1,2]
b=[2,3]
c=[3,4], itd. 

background image

6

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

background image

7

Translacja

X

Y

P

P’

„

Punkt można przesunąć 
dodając do jego 
współrzędnych wielkość 
przesunięcia

+

=

+

=

y

x

d

d

y

x

T

P

P

background image

8

Skalowanie

„

Skalowanie odbywa się 
względem środka układu 
współrzędnych

„

Skalowanie może być 
niejednorodne s

x

≠s

y

=

=

y

x

s

s

P

S

P

y

x

0

0

X

Y

P

P’

background image

9

Obrót

„

Obrót odbywa się względem 
środka układu współrzędnych

„

Skalowanie może być 
niejednorodne s

x

≠s

y

=

=

y

x

P

R

P

α

α

α

α

cos

sin

sin

cos

X

Y

P

P’

background image

10

Składanie przekształceń 2D

„

Obrót i skalowanie punktu

„

Rozwiązanie efektywniejsze – macierz złożona

„

Problem z włączeniem translacji do 

przekształcenia złożonego

P

S

P

P

R

P

=

′′

=

P

M

P

R

S

M

=

=

background image

11

Współrzędne jednorodne

„

Punkt na płaszczyźnie 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

)

background image

12

Translacja we współrzędnych 
jednorodnych

=

=

1

1

0

0

1

0

0

1

y

x

d

d

P

T

P

y

x

+

+

=

=

=

1

0

0

1

0

0

1

1

0

0

1

0

0

1

1

0

0

1

0

0

1

2

1

2

1

1

2

1

1

2

1

y

y

x

x

y

x

y

x

d

d

d

d

d

d

d

d

T

T

T

background image

13

Skalowanie we współrzędnych 
jednorodnych

=

=

1

1

0

0

0

0

0

0

y

x

s

s

P

T

P

y

x

=

=

=

1

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

0

0

2

1

2

1

2

2

1

1

2

1

y

y

x

x

y

x

y

x

s

s

s

s

s

s

s

s

S

S

S

background image

14

Obrót we współrzędnych 
jednorodnych

=

=

1

1

0

0

0

cos

sin

0

sin

cos

y

x

P

R

P

α

α

α

α

=

=

1

0

0

0

cos

sin

0

sin

cos

1

0

0

0

cos

sin

0

sin

cos

2

1

β

β

β

β

α

α

α

α

R

R

R

background image

15

Pochylenia we współrzędnych 
jednorodnych

X

Y

=

1

0

0

0

1

0

0

a

SH

x

X

Y

=

1

0

0

0

1

0

0

1
b

SH

y

background image

16

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

0

sin

)

cos

1

(

cos

sin

sin

)

cos

1

(

sin

cos

1

0

0

1

0

0

1

1

0

0

0

cos

sin

0

sin

cos

1

0

0

1

0

0

1

)

,

(

)

(

)

,

(

1

1

1

1

1

1

1

1

1

1

1

1

α

α

α

α

α

α

α

α

α

α

α

α

α

x

y

y

x

y

x

y

x

y

x

T

R

y

x

T

P

background image

17

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:

M

1

M

2

Przesunięcie

Przesunięcie

Skalowanie

Skalowanie

Obrót

Obrót

Skalowanie (s

x

=s

y

)

Obrót

background image

18

Przekształcenie okna w pole 
wizualizacji

X

Y

u

v

obszar ekranu

pole wizualizacji

+

+

=

1

)

(

)

(

min

min

max

min

max

min

min

min

max

min

max

min

v

y

y

v

v

y

y

u

x

x

u

u

x

x

P

background image

19

Przekształcenia 3D

„

Translacja

„

Skalowanie

=

1

0

0

0

1

0

0

0

1

0

0

0

1

z

y

x

d

d

d

T

=

1

0

0

0

0

0

0

0

0

0

0

0

0

z

y

x

s

s

s

S

background image

20

Obroty 3D

=

1

0

0

0

0

cos

sin

0

0

sin

cos

0

0

0

0

1

α

α

α

α

x

R

=

1

0

0

0

0

cos

0

sin

0

0

1

0

0

sin

0

cos

α

α

α

α

y

R

=

1

0

0

0

0

1

0

0

0

0

cos

sin

0

0

sin

cos

α

α

α

α

x

R

background image

21

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

background image

22

Rzuty

A

B

A’

B’

A

B

A’

B’

rzutnia

rzutnia

rzut równoległy

rzut perspektywiczny

background image

23

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

background image

24

Rzuty prostokątne

background image

25

Rzut izometryczny

background image

26

Rzuty ukośne

wojskowy

ptasi

background image

27

Rzut perspektywiczny

=

0

/

1

0

0

0

1

0

0

0

0

1

0

0

0

0

1

d

M

per

Z

X

d

rzutnia

P

P’

background image

28

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

background image

29

Wielomiany określające 
segment krzywej

1

0

)

(

)

(

)

(

2

3

2

3

2

3

+

+

+

=

+

+

+

=

+

+

+

=

t

d

t

c

t

b

t

a

t

x

d

t

c

t

b

t

a

t

y

d

t

c

t

b

t

a

t

x

z

z

z

z

y

y

y

y

x

x

x

x

T

C

t

x

t

y

t

x

t

Q

t

t

t

T

d

c

b

a

d

c

b

a

d

c

b

a

C

z

z

z

z

y

y

y

y

x

x

x

x

=

=

=

=

)

(

)

(

)

(

)

(

1

2

3

Reprezentacja prosta

Reprezentacja macierzowa

background image

30

Pochodna Q(t)

+

+

+

+

+

+

=

=

=

=

=

z

z

z

y

y

y

x

x

x

c

t

b

t

a

c

t

b

t

a

c

t

b

t

a

t

t

C

T

C

dt

d

t

z

dt

d

t

y

dt

d

t

x

dt

d

t

Q

t

Q

dt

d

2

3

2

3

2

3

0

1

2

3

)

(

)

(

)

(

)

(

)

(

2

2

2

2

„

Wektor styczny na początku segmentu t=0

„

Wektor styczny na końcu segmentu t=1

background image

31

Ciągłość geometryczna

„

G

0

– segmenty łączą 

się ze sobą

„

G

1

– styczne  w 

punkcie połączenia 
mają ten sam 
kierunek

Q

1

Q

2

Q

1

Q

2

S

1

S

2

background image

32

Ciągłość parametryczna

„

C1 – pierwsze 

pochodne 

segmentów w 

punkcie połączenia 

są identyczne

„

C2 – drugie 

pochodne 

segmentów w 

punkcie połączenia 

są identyczne

Q

1

Q

2

S

1

S

2

background image

33

Krzywe Béziera

4

3

3

2

2

2

1

3

)

1

(

3

)

1

(

3

)

1

(

)

(

P

t

P

t

t

P

t

t

P

t

t

Q

+

+

+

=

„

Równanie opisujące krzywą:

„

Aby krzywa byłą ciągła, punkty P

3

, P

4

i P

5

muszą być 

współliniowe

P

1

P

2

P

3

P

4

P

1

P

2

P

3

P

4

P

5

P

6

P

7

background image

34

Jednorodne krzywe B-sklejane

1

0

6

6

1

3

3

3

6

4

6

3

6

)

1

(

)

(

3

1

2

3

2

2

3

3

3

+

+

+

+

+

+

+

=

t

P

t

P

t

t

t

P

t

t

P

t

t

t

Q

i

i

i

i

i

i

„

Krzywa aproksymuje m+1 punktów 
kontrolnych P

0

P

1

, …, P

m

, dla ≥ 3

„

Węzły krzywej mają jednakową odległość ze 
względu na parametr t

background image

35

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)

background image

36

Niejednorodne krzywe 
B-sklejane

„

Segment Q

i

jest określony przez punkty 

kontrolne P

i-3

P

i-2

P

i-1

P

i

i funkcje bazowe 

B

i-3,4

(t), B

i-2,4

(t), B

i-1,4

(t), B

i,4

(t)

1

4

,

4

,

1

1

4

,

2

2

4

,

3

3

3

)

(

)

(

)

(

)

(

)

(

+

<

+

+

+

=

i

i

i

i

i

i

i

i

i

i

i

t

t

t

m

i

t

B

P

t

B

P

t

B

P

t

B

P

t

Q

background image

37

Funkcje bazowe dla krzywych 
B-sklejanych

)

(

)

(

)

(

)

(

)

(

)

(

)

(

)

(

)

(

przypadku

 

przeciwnym

 

w

,

0

,

1

)

(

3

,

1

1

4

4

3

,

3

4

,

2

,

1

1

3

3

2

,

2

3

,

1

,

1

1

2

2

1

,

1

2

,

1

1

,

t

B

t

t

t

t

t

B

t

t

t

t

t

B

t

B

t

t

t

t

t

B

t

t

t

t

t

B

t

B

t

t

t

t

t

B

t

t

t

t

t

B

t

t

t

t

B

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

=

+

=

+

=

<

=

background image

38

Niejednorodne ułamkowe 
krzywe B-sklejane (NURBS)

„

Postać ogólna

„

Są one niezmiennicze względem 
przekształceń afinicznych i 
perspektywicznego

„

Mogą dokładnie definiować dowolny 
przekrój stożka

)

(

)

(

)

(

,

)

(

)

(

)

(

,

)

(

)

(

)

(

t

W

t

Z

t

z

t

W

t

Y

t

y

t

W

t

X

t

x

=

=

=

background image

39

Oświetlenie i cieniowanie 
powierzchni

„

Modele oświetlenia

„

Modele cieniowania

background image

40

Wektory używane w 
obliczeniach

n

v

l

h

t

r

l

„

n – wektor normalny 

„

v – kierunek patrzenia

„

l – kierunek światła

„

h – wektor połowiczny

„

r

l

=2(l·n)n-l

„

t – wektor styczny do 
powierzchni

background image

41

Światło otoczenia

a

a

k

I

I

=

background image

42

Odbicie rozproszone
(Lambertowskie)

)

n

l

k

I

I

d

p

=

background image

43

Odbicie zwierciadlane
(Model Phonga)

i

n

l

s

i

n

l

s

L

v

r

k

L

v

r

k

I

)

(

)

,

cos(

=

=

„

Parametr n
decyduje o wielkości 
rozbłysku, im jest 
większy, tym 
rozbłysk jest węższy 
i ostrzejszy

background image

44

Model Blinn’a

i

n

s

L

h

n

k

I

)

(

=

„

Bardziej zbliżony do 
rzeczywistości od 
Phonga

„

Dobrze symuluje 
matowe metaliczne 
materiały

background image

45

Przezroczystość

„

Przezroczystość interpolowana

„

Przezroczystość filtrowana

2

1

)

1

(

kI

I

k

I

+

=

2

1

I

kO

I

I

t

+

=

background image

46

Załamanie światła

„

Prawo odbicia 
światła

„

Prawo Snell’a

t

l

n

n

θ

θ

sin

sin

2

1

=

l

r

θ

θ

=

background image

47

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

background image

48

Cieniowanie płaskie

„

Wektory normalne obliczane dla wielokątów

background image

49

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

background image

50

Cieniowanie Phong’a

„

Cieniowanie z interpolacją wektorów 
normalnych

„

Oświetlenie obliczane dla każdego punktu 
powierzchni

background image

51

Interpolacja wektorów 
normalnych

powierzchnia

mapa

wybrzuszeń

background image

52

Parametryczne mapowanie 
tekstury (UVW)

background image

53

Mapowanie planarne

background image

54

Mapowanie prostopadłościenne

background image

55

Mapowanie sferyczne

background image

56

Mapowanie cylindryczne bez 
podstawy

background image

57

Mapowanie cylindryczne
z  podstawą

background image

58

Mapowanie środowiska

background image

59

Mapowanie wybrzuszeń

background image

60

Tekstury proceduralne


Document Outline