Top Banner
Ž. M, ZEMRIS, FER 3-1 3 Grafičke primitive 3.1 2D - DVODIMENZIJSKE PRIMITIVE 2D TOČKE Homogena koordinata (proizvoljna a obično je 1) sjecište paralelnih pravaca (točka u može se zapisati) jedinstven zapis osnovnih geometrijskih transformacija dodatne mogućnosti kod parametarskog prikaza krivulja V=(x, y) X= (x’, y’, h) ili X= (x 1 , x 2 , x 3 ) Točka u je (, , 0) . Kombinacija (0, 0, 0) nije dozvoljena. Npr. (2, 5) (2, 5, 1) preslikavanje iz n prostora u n+1 (4, 10, 2) (2, 4) (4, 8, 2) 3 1 x x x 3 2 x x y 3 1 x x x 3 2 x y x
50

3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Aug 29, 2019

Download

Documents

phungliem
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-1

3 Grafičke primitive

3.1 2D - DVODIMENZIJSKE PRIMITIVE

– 2D TOČKE

• Homogena koordinata (proizvoljna a obično je 1)

– sjecište paralelnih pravaca (točka u može se zapisati)

– jedinstven zapis osnovnih geometrijskih transformacija

– dodatne mogućnosti kod parametarskog prikaza krivulja

V=(x, y) X= (x’, y’, h) ili X= (x1, x2, x3)

Točka u je (, , 0) . Kombinacija (0, 0, 0) nije dozvoljena.

Npr. (2, 5) (2, 5, 1) preslikavanje iz n prostora u n+1

(4, 10, 2)

(2, 4) (4, 8, 2)

3

1

x

xx

3

2

x

xy

31 xxx 32 xyx

Page 2: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-2

– 2D PRAVAC

• implicitni oblik

• uvođenje homogene koordinate

• homogena jednadžba

• matrični zapis

• po dogovoru uvodimo:

0 cybxa

03

2

3

1 cx

xb

x

xa

0321 cxxbxa

0321321

c

b

a

xxxcxxbxaGX

pravca ispod"" je 0,

pravcu na je 0,

pravca iznad"" je ,0

X

X

X

GX

tangentevektor

normalevektor

ab

ba

t

n

Page 3: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

dvije točke određuju pravac (vektorski produkt)

𝐗𝟏 = 𝑥1 𝑦1 ℎ1

𝐗𝟐 = 𝑥2 𝑦2 ℎ2

G = X1 X2 = 𝑖 𝑗 𝑘x1 y1 h1

x2 y2 h2

= 𝑖 𝑗 𝑘

𝑦1ℎ2 − 𝑦2ℎ1

− 𝑥1ℎ2 − 𝑥2ℎ1

𝑥1𝑦2 − 𝑥2𝑦1

dva pravca se sijeku u točki (vektorski produkt)

𝐆𝟏 =

𝑎1

𝑏1

𝑐1

𝐆𝟐 =

𝑎2

𝑏2

𝑐2

X = G1 G2 = 𝑖 𝑗 𝑘

a1 b1 c1

a2 b2 c2

= 𝑖 𝑗 𝑘

𝑏1𝑐2 − 𝑏2𝑐1− 𝑎1𝑐2 − 𝑎2𝑐1𝑎1𝑏2 − 𝑎2𝑏1

=

𝑥𝑦ℎ

= 𝑿

Ako je h = 0 G1 G2 jer se sijeku u

Za paralelne pravce bi inače imali dijeljenje s nulom: 𝑥 =𝑥1

ℎ1=

𝑥1

0, 𝑦 =

𝑦1

ℎ1=

𝑦1

0

Ž. M, ZEMRIS, FER 3-3

Page 4: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-4

NPR: odrediti pravac G

𝐆 = 𝐗𝟏 𝐗𝟐 =𝑖 𝑗 𝑘2 3 16 4 1

= 𝑖 𝑗 𝑘 · 3 − 4

− 2 − 68 − 18

= 𝑖 𝑗 𝑘 ·−14

−10

Npr. točka X0 = (0 8 1 ) je “iznad”

Kada X0 uvrstimo u 𝐆 −𝑥1 + 4 𝑥2 − 10 𝑥3 > 0

Zamjena redoslijeda točaka X2 pa X1 utječe na orijentaciju pravca, izračunamo 𝐆𝟏 = 𝐗𝟐 𝐗𝟏

Npr. točka je tada X0 = (0 8 1 ) za 𝐆𝟏 “ispod”

)146(

)132(

2

1

X

X

)31218(

)264(

:1nijekoordinata

homogenakadaPrimjer

2

1

3

X

X

x

tangentevektor14

normalevektor41

t

n

X1

y

1 2 3 4 5 6 7 8 9 10 11 12 x

8

7

6

5

4

3

2

1

X2

n

t

𝐆 = 𝐗𝟏 𝐗𝟐 =𝑖 𝑗 𝑘4 6 218 12 3

= 𝑖 𝑗 𝑘 · −624−60

=−14

−10

Page 5: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-5

2D TRANSFORMACIJE

• TRANSLACIJA (POMAK) T- matrica translacija

yyy

xxx

'

' Δ TVV

'

1

010

001'''

yx

hyxhyx

x

y

x

y

x

y

y'

x'

V

V'

Dvije konvencije:

novatočka = točka matrica

novatočka = matrica točka

Page 6: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-6

• ROTACIJA oko ishodišta za kut suprotno smjeru kazaljke na satu CCW

važno je obratiti pažnju da se radi o

rotaciji oko ishodišta

http://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.html

http://min.nl/cs426/jar/transform.html

interpretacija matrice rotacije

RVV

'

100

0cossin

0sincos'''

hyxhyx

cossin

sincos

'

'

yxy

yxx

x

y

V

V'

y

x

Page 7: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-7

• SKALIRANJE (promjena mjerila)

negativan predznak -sx( ili -sy) daje zrcaljenje oko koordinatnih osi y ( ili x)

• 𝑠𝑥=0 da je projekciju, nepovratno gubimo informaciju

x

y

x x'

y

y'

V'V

y

x

syy

sxx

'

'

SVV

'

100

00

00'''

y

x

s

s

hyxhyx

100

05.00

002''' hyxhyx

s

s

s

100

010

001

100

00

00

kaoučinakistidaje

Page 8: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-8

• SMIK - uzdužne transformacije

tgxyy

tgyxx

'

'

100

01

01'''

tg

tg

hyxhyx

x

y

x

y

http://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig4.html

Page 9: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-9

• INVERZNE TRANSFORMACIJE

– translacija - inverz matrice translacije odgovara inverznoj transformaciji tj.

pomaku u suprotnom smjeru

– rotacija - inverzna matrice rotacije odgovara inverznoj transformaciji tj. rotaciji u

suprotnom smjeru

– skaliranje - inverz matrice skaliranja odgovara

inverznoj transformaciji

tj. povećavanje odgovara smanjivanju

1

010

001

1

010

0011

1

yxyx

T

100

0cossin

0sincos

100

0cossin

0sincos

100

0cossin

0sincos1

1

R

100

01

0

001

100

00

001

1

y

x

y

x

s

s

s

s

S

Page 10: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-10

• TRANSFORMACIJA PRAVCA

– transformacija točke V u V’ matricom H je

V’=V H

– pravac G transformiramo u G’ inverznom matricom H

G’ = H-1 G

neformalni dokaz:

neka je V G = 0 V’ G’ = 0 tj. Ako točka V leži na pravcu G,

slika točke V’ leži na slici pravca G’.

Ako je V G = 0 V H H-1 G = 0 V’ H-1 G = 0 G’ = H-1 G

• TRANSFORMACIJA NORMALE

– treba biti posebno pažljiv - H-1

• u općem slučaju ako promatramo

– točku V’=V H

– vektor G’ = H-1 G

***http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/transfor

mationGame/transformation_game_java_browser.html

http://math.hws.edu/graphicsbook/demos/c2/transforms-2d.html

Page 11: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-11

TRANSFORMACIJA KOORDINATNOG SUSTAVA- MATRICA ROTACIJE

• rotacija jediničnih vektora x, y oko ishodišta za kut daje

jedinične vektore koordinatnog sustava u, v u v

• u rotacijskoj matrici značenje pojedinih elemenata je:

• drugim riječima, ako znamo rotirani koordinatni sustav

odnosno jedinične vektore koji ga određuju u i v

znamo i rotacijsku matricu

0

1

0

,

0

0

1

yx

x

y

0

cos

sin

,

0

sin

cos

vu

100

0

0

100

0cossin

0sincos

yx

yx

vv

uu

R

Page 12: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

3

2

1

Og (0,0) x1 2 3

y

4

5

4 5

TRANSFORMACIJA KOORDINATNOG SUSTAVA - TRANSLACIJA

- globalni koordinatni sustav (plavo), lokalni (crveno)

Iz lokanog u globalni →

Iz globalnog u lokalni →

https://stemkoski.github.io/Three.js/Viewports-Dual.html 3-12

143

132

010

001

111

TVV lg

121

132

010

001

1111

TVV gl

1

3

2

1 Vg(1, 1)

Ol(2, 3)

Og (0,0) x1 2 3

y

x'

y'4

5

4 5

1

-1

-1

-2

Page 13: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

http://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.html 3-13

TRANSFORMACIJA KOORDINATNOG SUSTAVA- MATRICA ROTACIJE

Iz lokanog u globalni →

Iz globalnog u lokalni →

Osnova za Model View matricu

x

3

2

1

Og (0,0)

y

4

1 2 3 4 x

3

2

1

Og (0,0)

y

4

1 2 3 4

Vg(1, 1)

160,323,0

100

0)30cos()30sin(

0)30sin()30cos(

132

RVV lg

137,037,1

100

0)30cos()30sin(

0)30sin()30cos(

1111

RVV gl

Page 14: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-14

TRANSFORMACIJA KOORDINATNOG SUSTAVA (objekta)

– često je potrebno odrediti koordinate objekta u jednom koordinatnom sustavu

promatrano iz drugog koordinatnog sustava

• ako nam je poznata ciljna pozicija i orijentacija možemo odrediti potrebnu matricu

– prvo rotacija

– zatim translacija

• koordinate u sustavu u, v ostaju iste

– koordinate transformiranog objekta u sustavu x, y su:

– koordinate netransformiranog objekta u transformiranom sustavu u, v su:

111 TRM

x

y

1),(),( MVV vuyx

1

1

1

1),(

1

11),(

1

1),(),(

RTPTRPMPP yxyxyxvu

x

y

1),(),( MVV vuyx 1

1

1

1),(),(

RTPP yxvu

Page 15: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-15

• VAŽNO

– operacije su sadržane u podacima (matricama),

a ne u instrukcijama

- matrice transformacija prvo pomnožimo tako da dobijemo konačnu matricu, a onda množimo s točkama (manje operacija)

– zadnji stupac u navedenim matricama je:

što znači da su transformacije AFINE

t.j. čuvaju paralelnost pravaca.

– transformacije translacije, rotacije i skaliranja (sx=sy) čine također ortogonalno preslikavanje

tj. čuvaju kuteve

– kod korištenja više uzastopnih transformacija bitan je redoslijed tih transformacija (zato što množenje matrica nije komutativno)

Npr: http://www.cs.rit.edu/~icss571/clipTrans/transformation.html

https://ferko.fer.hr/minilessons/ml/minilesson/cc=DEFAULT,c=77f27c05d7164a7cb227cbdf8321d051/9fa48cd1fc1446f9af0e224b2d81a115/item/5/start

1

0

0

Page 16: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-16

3.2 3D TRODIMENZIJSKE PRIMITIVE

– 3D TOČKE

• Homogena koordinata (proizvoljna a obično je 1)

V=(x, y, z) X= (x’, y’, z’, h) ili X= (x1, x2, x3 , x4 )

Točka u je (, , , 0). Kombinacija (0, 0, 0, 0) nije dozvoljena.

– KOORDINATNI SUSTAV

• Desni (lijevi) koordinatni sustav: kada se gleda iz pozitivnog smjera osi prema

ishodištu rotacija za 90 suprotno smjeru (u smjeru) kazaljke na satu daje

zakretanje osi.

Gledano iz: daje zakretanje:

• x yz

• y zx

• z xy

4

1

x

xx

4

2

x

xy

41 xxx 42 xyx 4

3

x

xz

43 xzx

x

y

z

z

x

y

DESNI LIJEVI

Page 17: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-17

– 3D PRAVAC

• Parametarski prikaz pravca

– Proširenje eksplicitnog ili implicitnog oblika jednadžbe pravca iz

dvodimenzijskog prostora za još jednu koordinatu neće dati

pravac u trodimenzijskom prostoru.

– L je karakteristična matrica pravca

– t je parametar

04

03

02

01

hdtx

zctx

ybtx

xatx

LTX

0000

4321 1hzyx

dcbatxxxx

Page 18: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-18

pravac je određen s dvije točke

dvije točke uvrstimo u parametarsku

jednadžbu pravca:

– ovaj oblik vrijedi i u 2D prostoru

– linearna interpolacija http://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.html

– https://mathinsight.org/line_parametrization

V0

V1

t=0

t=1

1,

0,

111111

000000

thzyx

thzyx

V

V

TLV

0000

4321 1hzyx

dcbatxxxx

0

01

1

0

1

1

0

1

1

0

1

0

1

0

11

10

1

1

1

1

V

VV

V

V

V

VLL

V

V

t

t

t

t

0

011

V

VVTLV t

001 VVVV t

Page 19: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-19

– RAVNINA

• Jednadžba ravnine u implicitnom obliku

• po dogovoru uvodimo:

• https://mathinsight.org/forming_planes

04321 dxcxbxax 04321

VR

d

c

b

a

xxxx

c

b

a

d

c

b

a

nR vektoromjeodredenaravninunanormala

RV

RV

RV

RV

ravnine ispod"" je ,0

ravnini na je ,0

ravnine iznad"" je ,0

n

Page 20: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-20

– RAVNINA

• Jednadžba ravnine u parametarskom obliku

– R je karakteristična matrica ravnine

– u, v su parametri koji određuju točku u ravnini

4444

3333

2222

1111

cbvaux

cbvaux

cbvaux

cbvaux

4321

4321

4321

4321 1

cccc

bbbb

aaaa

vuxxxxV

RV 1vu

Page 21: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-21

ravnina je određena s tri točke (koje nisu kolinearne)

tri točke uvrstimo u parametarsku

jednadžbu ravnine:

https://mathinsight.org/plane_parametrization

.1,0,

,0,1,

,0,0,

2222222

1111111

0000000

vuhzyx

vuhzyx

vuhzyx

V

V

V

RV 1vu

0

02

01

2

1

0

2

1

0

1

2

1

0

1

22

11

00

001

101

011

110

101

100

1

1

1

V

VV

VV

V

V

V

V

V

V

V

V

V

R

vu

vu

vu

0

02

01

1

V

VV

VV

V vu

00201 VVVVVV vu V0

V1

u0 = 0, v0 = 0

u1 = 1, v1 = 0

u2 = 0, v2 = 1 V2

Page 22: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-22

normala na ravninu

površina trokuta

Npr. V0 = (2, 0, 0) V1 = (0, 4, 0) V2 = (0, 0, 3) V0V1 = (-2, 4, 0), V0V2 = (-2, 0, 3)

jedinična normala na ravninu

0201 VVVVn

V0

V1

V2

02012

1VVVV P

6162

1

302

0422

1

2

10201

4k 3j i8k 6j 12i

kji

P VVVV

n

nVVVVn

P2

02011 https://mathinsight.org/cross_product

https://mathinsight.org/dot_product

Page 23: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-23

presjek tri ravnine je točka (koje nisu koplanarne)

točke leži u sve tri ravnine.

presjek dvije ravnine je pravac (koje nisu koplanarne)

.0

,0

,0

2

1

0

RV

RV

RV

d

d

0000

0

0

210

RRRV

1000000 QVQV dd

Page 24: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-24

3D TRANSFORMACIJE

• TRANSLACIJA (POMAK) T- matrica translacija

zzz

yyy

xxx

'

'

' Δ

TVV

'

1

0100

0010

0001

''''

zyx

hzyxhzyx

Page 25: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-25

• ROTACIJA

– oko x osi za kut suprotno smjeru kazaljke na satu

– oko y osi za kut suprotno smjeru kazaljke na satu

– oko z osi za kut suprotno smjeru kazaljke na satu

1000

0cossin0

0sincos0

0001

xR

1000

0cos0sin

0010

0sin0cos

yR

1000

0100

00cossin

00sincos

zR

Page 26: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-26

• SKALIRANJE (promjena mjerila) https://threejs.org/examples/misc_controls_transform.html

• SMIK (uzdužne deformacije) TRANSFORMATION

SVVS

'

1000

000

000

000

z

y

x

s

s

s

DVVD

'

1000

01

01

01

tgtg

tgtg

tgtg

Page 27: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-27

• INVERZNE TRANSFORMACIJE

– translacija - inverzna matrice translacije odgovara inverznoj

transformaciji tj. pomaku u suprotnom smjeru, odnosno mijenja se

predznak pomaka duž pojedinih osi

– rotacija – inverzna matrice rotacije odgovara inverznoj

transformaciji tj. rotaciji u suprotnom smjeru, odnosno mijenja se

predznak kuta rotacije

– skaliranje - inverzna matrice skaliranja odgovara inverznoj

transformaciji tj. povećavanje odgovara smanjivanju, odnosno

mijenja se faktor skaliranja u

recipročnu vrijednost

Page 28: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-28

PODJELA TRANSFORMACIJA

• transformacije čvrstog tijela (engl. rigid body) - čuva udaljenosti

• translacija, rotacija

• transformacije sličnosti (engl. similarity) - čuva kutove

• jednoliko skaliranje,

Page 29: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-29

PODJELA TRANSFORMACIJA

• Afine - čuva paralelnost pravaca

• nejednoliko skaliranje sx≠sy,

• zrcaljenje

• smik – uzdužne transformacije

• projektivne - linije ostaju linije

• perspektivna projekcija

• nelinearne - linije postaju krivulje

• uvijanje

http://mathinsight.org/applet/nonlinear_2d_change_variables_map_area_transformation

Page 30: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-30

projektivno preslikavanje

PERSPEKTIVNA PROJEKCIJA

ZRCALJANJE

SKALIRANJE

SMIK

afine transformacije

JEDNOLIKO

SKALIRANJE

transformacije sličnosti linearno preslik.

PLPL

QLPLQPL

TRANSLACIJA ROTACIJA

transformacije čvrstog tijela

d

zbroj 2 točke (nije definirano)

u različitim koordinatnim sustavima nije isti: http://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig2.html

Page 31: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-31

* kod nerigidnih transformacija treba paziti na normale i njihovu transformaciju

Npr. skaliranje po y osi za 2 utjecat će na normalu,

ako smo ju prije izračunali morat ćemo ju transformirati sa S-1

(u 3D posebno treba paziti u kojem prostoru koristimo normale)

02

2

2

2

011n

100

020

001

S

100

05,00

0011S

normirananije04

2

2

2' 1

nSn

1

1

1

2

1

21

SSSS

za invertibilne matrice vrijedi:

Page 32: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-32

3.3 TRANSFORMACIJA POGLEDA I PROJEKCIJE

– projekcija - kamera

https://cs.wellesley.edu/~cs307/threejs/demos/Camera/camera-api.shtml

Page 33: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-33

TRANSFORMACIJA POGLEDA

TRANSLACIJA

ROTACIJA OKO Z-osi

ROTACIJA OKO Y-osi

ZRCALJENJE x

y

z

SUSTAV SCENE

SUSTAV OKA

Očište (eye)

pogled-gore

view-up Gledište (center)

Page 34: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-34

TRANSLACIJA

ROTACIJA OKO Z-osi

x

y

z

SUSTAV SCENE

SUSTAV OKA

x

y

z

SUSTAV SCENE

SUSTAV OKA

Page 35: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-35

ROTACIJA OKO Y-osi

POKLAPANJE osi

http://cs.brown.edu/courses/cs123/demos/camera

(World space)

x

y

z

SUSTAV SCENE

SUSTAV OKA

x

y

z

SUSTAV SCENE

SUSTAV OKA

Page 36: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-36

KOORDINATE U SUSTAVU SCENE

KOORDINATE U SUSTAVU OKA

KOORDINATE U SUSTAVU PROJEKCIJE

UREĐAJ

TRANSFORMACIJA POGLEDA

(ModelView matrica)

PROJEKCIJA

(projekcijska matrica)

NORMIRANJE KOORDINATA

(dijeljenje s homogenom komponentom

prilagođavanje otvoru - viewport)

http://www.realtimerendering.com/udacity/?load=demo/unit7-view-pipeline.js

Page 37: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-37

• TRANSFORMACIJA POGLEDA

– postupak kojim koordinatni sustav očišta transformiramo u

koordinatni sustav scene kako bi mogli primijeniti

transformaciju projekcije

– ishodište koordinatnog sustava oka - može biti centar projekcije

– H - udaljenost očišta od ravnine projekcije

– vektor pogled-gore (VIEW UP)

određuje okomicu (y os u 2D sustavu projekcije) na z os promatrača

• ODSIJECANJE OBZIROM NA VOLUMEN POGLEDA (frustum)

– kvadar c:Projekcija http://cs.wellesley.edu/~cs307/threejs/demos/Camera/frustum.shtml

– krnja piramida

PREDNJA RAVNINA ODSIJECANJA

obično je to ravnina projekcije

(engl. front clipping plane)

STRAŽNJA RAVNINA ODSIJECANJA

(engl. back clipping plane)

Page 38: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-38

• PROJEKCIJA

– paralelna

• ortografska (3 ortogonalne)

• kosa

– perspektivna – http://cs.brown.edu/courses/cs123/demos/camera/ (Camera Mode)

• NORMIRANJE KOORDINATA U SUSTAVU PROJEKCIJE

– koordinate u sustavu otvora (engl. viewport)

• otvor definira područje unutar ekrana u koje će naša slika biti

iscrtana http://stemkoski.github.io/Three.js/Viewports-Dual.html (WSAD, 2xkamera)

– koordinate obzirom na granice prozora

– normirane koordinate u sustavu uređaja NDC

OTVOR 1

OTVOR 2

Page 39: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-39

PROJEKCIJE

projektori - zrake kojima se obavlja projekcija

– PARALELNA PROJEKCIJA - projektori su paralelni

• ortografska - projektori su okomiti na podlogu

– 3 ortogonalne projekcije na ravnine xy, xz, yz. Npr. xy ravnina.

• kose - projektori su koso prema podlozi

ORTOGRAFSKA KOSA

1000

0000

0010

0001

'''' hzyxhzyx

Page 40: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-40

– PERSPEKTIVNA PROJEKCIJA - projektori idu iz centra projekcije kroz

vrhove objekta

tijela koja su bliže promatraču

veća su u projekciji

PERSPEKTIVNA PROJEKCIJA

C - centar projekcije

prikazani kvadri su jednaki Npr: Određivanje Matrice (transformacija pogleda i projekcija) iz

projekcije: http://tool.duruofei.com/projective_matrix/

Page 41: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-41

• CENTAR PROJEKCIJE JE U ISHODIŠTU

RAVNINA PROJEKCIJE H

A= (xA, yA, zA) S = (xS, yS) CENTAR

PROJEKCIJE

A

H

zA

xA

S

xS

Hz

HH

slično

HH

S

A

AS

A

AS

A

AS

A

AS

z

yy

z

yy

z

xx

z

xx

C

Page 42: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-42

• ako je točka iza ravnine projekcije rezultat je isti 𝑥𝑠

𝐻=

𝑥𝐴

𝑧𝐴 𝑥𝑠 =

𝑥𝐴𝑧𝐴𝐻

𝑦𝑠 =𝑦𝐴𝑧𝐴𝐻

𝑧𝑠 =𝑧𝐴𝑧𝐴𝐻

= 𝐻

𝑥𝑠 = 𝑥𝐴

𝑦𝑠 = 𝑦𝐴

𝑧𝑠 = 𝑧𝐴

ℎ𝑠 =𝑧𝐴

𝐻

𝑥𝑠 𝑦𝑠 𝑧𝑠 ℎ𝑠 = 𝑥𝐴 𝑦𝐴 𝑧𝐴 ℎ𝐴

1 0 0 00 1 0 00 0 1 1/𝐻0 0 0 0

1 → označava da z koordinatu želimo sačuvati jer nam određuje

udaljenost od očišta (koristi se u z-spremniku)

• CENTAR PROJEKCIJE MOŽE BITI NA OSI A RAVNINA PROJEKCIJE U ISHODIŠTU

• Objekti iza centra projekcije u projekciji će biti obrnuti !

ModelView

A

H

zA

xA

S

xS C

Page 43: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-43

Perspektivno ispravna interpolacija z-koordinate

http://tulrich.com/geekstuff/canvas/perspective.html 3 1 a

Page 44: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-44

Perspektivno ispravna interpolacija z-koordinate

V1(x1, z1)

V2(x2, z2)

2

2

22' zH

z

xV

1

1

11' zH

z

xV

112112

112

zzztxxxt

tt

VVVV

C

?

VVVV

Hz

xH

z

xH

z

xu

uu

1

1

1

1

2

2

112 ''''

Page 45: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-45

za neki parametar t, izjednačit ćemo perspektivno projiciranu točku V(t) s linearno

interpoliranom V’(u) točkom u prostoru projekcije između točaka V1’ i V2’

po x koordinati i odrediti t za koji to vrijedi.

uvrštavanje dobivenog t u izraz t (z2 - z1) + z1, daje nelinearnu ovisnost z(u)

provjera za u = 0 i u = 1

Hz

xH

z

xH

z

xuH

zzzt

xxxt

1

1

1

1

2

2

112

112

uzzz

uzt

122

1

uzzz

zzuz

122

21

https://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-

texturemapping.html

http://dl.datenwolf.net/h5cpt/

Page 46: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-46

• NORMIRANJE KOORDINATA – ortografska projekcija

Volumen pogleda određuju

l - lijeva ravnina odsijecanja (min. x koordinata) -1

r - desna ravnina odsijecanja (max. x koordinata) 1

t - gornja ravnina odsijecanja (min. y koordinata) -1

b - donja ravnina odsijecanja (max. y koordinata) 1

n - prednja ravnina odsijecanja (min. z koordinata) 1

f - stražnja ravnina odsijecanja (max. z koordinata) -1

ORTOGRAFSKA PROJEKCIJA

l r

t

b

n

f

PERSPEKTIVNA PROJEKCIJA

Page 47: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-47

l - lijeva ravnina odsijecanja (min. x koordinata)

r - desna ravnina odsijecanja (max. x koordinata)

l r x

x’ -1 1

lr

lr

lrxx

lrlx

x

2'

111'

-

1

02

00

002

0

0002

nf

nf

bt

bt

lr

lr

nf

bt

lr

R PROJECTION

Page 48: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-48

• Model

– transformacije se odnose na model, zadnja navedena transformacija se obavlja prva

– model je inicijalno u svom koordinatnom sustavu – postavljamo ga u sustavu scene

ili uspostavljamo hijerarhijski izgrađen model (stog matrica)

• Transformacija pogleda (engl. Viewing)

– položaj i orijentacija kamere

– projekcija

• Preslikavanje na zaslon

– koordinate u sustavu otvora

• Matrice

– GL_MODELVIEW,

– GL_PROJECTION,

– GL_TEXTURE

– GL_COLOR

Transformacije u OpenGL-u

Page 49: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-49

Transformacija pogleda i projekcije u OpenGL-u

• Transformacija pogleda - postavljanje aktivne matrice i inicijalizacija na

jediničnu matricu (inicijalno je GL_MODELVIEW)

glMatrixMode (GL_MODELVIEW)

glLoadIdentity()

model se transformira iz koordinatnog sustava objekta u sustav scene, a s

view se transformira iz sustava scene u sustav oka (kamere)

• Projekcija

glMatrixMode (GL_PROJECTION); glLoadIdentity()

u sustavu oka se zatim obavlja odsijecanje (clipping) i projekcija

– položaj oka (kamere u prostoru)

gluLookAt( 0.0, 0.0, 5.0, // očište x, y, z – gdje je kamera

0.0, 0.0, 0.0, // gledište – točka u koju je usmjeren pogled

0.0, 1.0, 0.0 ); // vektor prema gore (view up) x, y, z

– ortografska projekcija

• glOrtho (left, right, bottom, top, zNear, zFar);

• gluOrtho2D (left, right, bottom, top) // ako radimo u 2D, isto kao otvor

viewmodelmodelview MMVMVV

projectionMVV

Page 50: 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara inverznoj transformaciji tj. pomaku u suprotnom smjeru º – rotacija - inverzna matrice

Ž. M, ZEMRIS, FER 3-50

– perspektivna projekcija

• glFrustum (left, right, bottom, top, zNear, zFar) // zNear ≠ 0

• gluPerspective (fovy, aspect, zNear, zFar)

• Normiranje koordinata

koordinate se dijele s homogenom koordinatom - normalizira (NDC)

• Sustav otvora

– obično se definira ista veličina kao prozor

• glViewport (x, y, width, height)

koordinate u

sustavu objekta

koordinate u

sustavu oka GL_modelview GL_projection

koordinate

nakon odsijecanja