of 50 /50
Ž. 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

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

Embed Size (px)

Text of 3 Grafičke primitive - zemris.fer.hr · – translacija - inverz matrice translacije odgovara...

  • Ž. 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