Author
phungliem
View
225
Download
0
Embed Size (px)
Ž. 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
Ž. 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
dvije točke određuju pravac (vektorski produkt)
𝐗𝟏 = 𝑥1 𝑦1 ℎ1
𝐗𝟐 = 𝑥2 𝑦2 ℎ2
G = X1 X2 = 𝑖 𝑗 𝑘x1 y1 h1x2 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 c1a2 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
Ž. 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
Ž. 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
Ž. 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
http://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.htmlhttp://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.htmlhttp://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.htmlhttp://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.htmlhttp://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.htmlhttp://min.nl/cs426/jar/transform.html
Ž. 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
Ž. 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
http://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig4.htmlhttp://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig4.htmlhttp://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig4.html
Ž. 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
Ž. 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
http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/transformationGame/transformation_game_java_browser.htmlhttp://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/transformationGame/transformation_game_java_browser.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transforms-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transforms-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transforms-2d.html
Ž. 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
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
143132
010
001
111
TVV lg
121132
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
https://stemkoski.github.io/Three.js/Viewports-Dual.htmlhttps://stemkoski.github.io/Three.js/Viewports-Dual.htmlhttps://stemkoski.github.io/Three.js/Viewports-Dual.htmlhttps://stemkoski.github.io/Three.js/Viewports-Dual.htmlhttps://stemkoski.github.io/Three.js/Viewports-Dual.html
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,0100
0)30cos()30sin(
0)30sin()30cos(
132
RVV lg
137,037,1100
0)30cos()30sin(
0)30sin()30cos(
1111
RVV gl
http://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.htmlhttp://math.hws.edu/graphicsbook/demos/c2/transform-equivalence-2d.html
Ž. 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
111
1),(
1
11),(
1
1),(),(
RTPTRPMPP yxyxyxvu
x
y
1),(),( MVV vuyx 1
1
1
1),(),(
RTPP yxvu
Ž. 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
http://www.cs.rit.edu/~icss571/clipTrans/transformation.htmlhttps://ferko.fer.hr/minilessons/ml/minilesson/cc=DEFAULT,c=77f27c05d7164a7cb227cbdf8321d051/9fa48cd1fc1446f9af0e224b2d81a115/item/5/starthttps://ferko.fer.hr/minilessons/ml/minilesson/cc=DEFAULT,c=77f27c05d7164a7cb227cbdf8321d051/9fa48cd1fc1446f9af0e224b2d81a115/item/5/starthttps://ferko.fer.hr/minilessons/ml/minilesson/cc=DEFAULT,c=77f27c05d7164a7cb227cbdf8321d051/9fa48cd1fc1446f9af0e224b2d81a115/item/5/start
Ž. 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
Ž. 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
Ž. 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
http://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttp://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttp://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttp://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttp://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttp://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttp://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttp://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.htmlhttps://mathinsight.org/line_parametrization
Ž. 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
https://mathinsight.org/forming_planes
Ž. 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
Ž. 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
https://mathinsight.org/plane_parametrization
Ž. 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
https://mathinsight.org/cross_producthttps://mathinsight.org/dot_product
Ž. 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
Ž. M, ZEMRIS, FER 3-24
3D TRANSFORMACIJE
• TRANSLACIJA (POMAK) T- matrica translacija
zzz
yyy
xxx
'
'
' Δ
TVV
'
1
0100
0010
0001
''''
zyx
hzyxhzyx
Ž. 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
Ž. 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
https://threejs.org/examples/misc_controls_transform.htmlTutors/transformation.exe
Ž. 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
Ž. 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,
Ž. 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
https://mathinsight.org/applet/nonlinear_2d_change_variables_map_area_transformationhttps://mathinsight.org/applet/nonlinear_2d_change_variables_map_area_transformation
Ž. 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
http://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig2.htmlhttp://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig2.htmlhttp://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig2.htmlhttp://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap2fig2.html
Ž. 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
111
2
1
21
SSSS
za invertibilne matrice vrijedi:
Ž. M, ZEMRIS, FER 3-32
3.3 TRANSFORMACIJA POGLEDA I PROJEKCIJE
– projekcija - kamera
https://cs.wellesley.edu/~cs307/threejs/demos/Camera/camera-api.shtml
https://cs.wellesley.edu/~cs307/threejs/demos/Camera/camera-api.shtmlhttps://cs.wellesley.edu/~cs307/threejs/demos/Camera/camera-api.shtmlhttps://cs.wellesley.edu/~cs307/threejs/demos/Camera/camera-api.shtml
Ž. 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)
Ž. M, ZEMRIS, FER 3-34
TRANSLACIJA
ROTACIJA OKO Z-osi
x
y
z
SUSTAV SCENE
SUSTAV OKA
x
y
z
SUSTAV SCENE
SUSTAV OKA
Ž. 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
http://cs.brown.edu/courses/cs123/demos/camera
Ž. 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
http://www.realtimerendering.com/udacity/?load=demo/unit7-view-pipeline.jshttp://www.realtimerendering.com/udacity/?load=demo/unit7-view-pipeline.jshttp://www.realtimerendering.com/udacity/?load=demo/unit7-view-pipeline.jshttp://www.realtimerendering.com/udacity/?load=demo/unit7-view-pipeline.jshttp://www.realtimerendering.com/udacity/?load=demo/unit7-view-pipeline.js
Ž. 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)
Tutors/projection.exehttp://cs.wellesley.edu/~cs307/threejs/demos/Camera/frustum.shtmlhttp://cs.wellesley.edu/~cs307/threejs/demos/Camera/frustum.shtmlhttp://cs.wellesley.edu/~cs307/threejs/demos/Camera/frustum.shtmlhttp://cs.wellesley.edu/~cs307/threejs/demos/Camera/frustum.shtmlhttp://cs.wellesley.edu/~cs307/threejs/demos/Camera/frustum.shtmlhttp://cs.wellesley.edu/~cs307/threejs/demos/Camera/frustum.shtml
Ž. 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
http://cs.brown.edu/courses/cs123/demos/camera/http://stemkoski.github.io/Three.js/Viewports-Dual.htmlhttp://stemkoski.github.io/Three.js/Viewports-Dual.htmlhttp://stemkoski.github.io/Three.js/Viewports-Dual.html
Ž. 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
Ž. 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/
PerspektivnaProjekcija.gifhttp://tool.duruofei.com/projective_matrix/http://tool.duruofei.com/projective_matrix/http://tool.duruofei.com/projective_matrix/http://tool.duruofei.com/projective_matrix/http://tool.duruofei.com/projective_matrix/
Ž. 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
Ž. 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
Tutors/matrixModelView/matrixModelView/bin/matrixModelView.exe
Ž. M, ZEMRIS, FER 3-43
Perspektivno ispravna interpolacija z-koordinate
http://tulrich.com/geekstuff/canvas/perspective.html 3 1 a
http://codepen.io/infernalmaster/pen/lbpfFhttp://codepen.io/infernalmaster/pen/lbpfFhttp://codepen.io/infernalmaster/pen/lbpfFhttp://tulrich.com/geekstuff/canvas/perspective.html
Ž. 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 ''''
Ž. 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
uzzzuz
t122
1
uzzz
zzuz
122
21
https://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-
texturemapping.html
http://dl.datenwolf.net/h5cpt/
https://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttps://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.htmlhttp://dl.datenwolf.net/h5cpt/http://dl.datenwolf.net/h5cpt/
Ž. 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
Ž. 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
../../My Documents/predmeti/rg/predavanja/Tutors/projection.exe
Ž. 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
Ž. 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
Ž. 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