vektorok k l nbs ge n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Vektorok különbsége PowerPoint Presentation
Download Presentation
Vektorok különbsége

Loading in 2 Seconds...

play fullscreen
1 / 52

Vektorok különbsége - PowerPoint PPT Presentation


  • 117 Views
  • Uploaded on

Vektorok különbsége. e-x = [e x -x x e y -x y e z -x z ]. szempozíció. nézeti irány (nem normalizált). e. e-x. x. árnyalt felületi pont pozíciója. Vektorok hossza. |v| = √ ( v x *v x + v y *v y + v z *v z ). | v |. v. Normaliz ált nézeti irány.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Vektorok különbsége' - kizzy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
vektorok k l nbs ge
Vektorok különbsége

e-x = [ex-xx ey-xy ez-xz]

szempozíció

nézeti irány

(nem normalizált)

e

e-x

x

árnyalt felületi pont

pozíciója

vektorok hossza
Vektorok hossza

|v|= √ (vx*vx + vy*vy + vz*vz)

|v|

v

normaliz lt n zeti ir ny
Normalizált nézeti irány

e-x = [ex-xx ey-xy ez-xz]

szempozíció

V: nézeti irány

(normalizált)

e

V= (e-x)/|e-x|

x

árnyalt felületi pont

pozíciója

k t vektor skal rszorzata dot product
Két vektor skalárszorzata(dot product)

a·b= axbx+ ayby + azbz

skalár

(egy szám)

a·b= |a||b| cos q

a

b

q

mire j a skal rszorzat 1 v nek n ir ny r sze
Mire jó a skalárszorzat? 1.v-nek n irányú része

derékszögű

háromszög

|n| = 1

|vn| = |v| cos Q = |v| |n| cos Q = v·n

vn = n |vn|

v

vtöbbi

skalárszorzat

vn

q

n egységnyi hosszú kell legyen

n

p ld ul falr l visszapattan labda t k letes visszaver d s ir nya
Például: falról visszapattanó labda,tökéletes visszaverődés iránya

V= Vpárhuzamos+ Vmerőleges

V: bejövő sebesség

Vout= Vpárhuzamos- Vmerőleges

V

Vpárhuzamos

Vmerőleges= -N(V·(-N))

Vpárhuzamos= V - Vmerőleges

Vout= V - 2N(V·N)

Vmerőleges

N

Fal

Vout

kimenő sebesség

N: fal normálvektora

mire j a skal rszorzat 2 a s b k z tti sz g cosinusa
Mire jó a skalárszorzat? 2.a és b közötti szög cosinusa

|a| = |b| = 1

cos Q= |a| |b| cos Q = a·b

a

q

a és b egységnyi hosszú kell legyen

b

p ld ul diff z fel let rnyal sa
Például: diffúz felület árnyalása

kd: diffúz BRDF paraméter

Iout= Iin kd cosQ

Iin: bejövő radiancia

Iout= Iin kd L·N

Q: fény beesési szöge

L: fényirány (normalizált)

L

q

N

Fal

N: árnyalt felület

normálvektora

(normalizált)

Iout

kimenő radiancia

(nem függ a nézeti iránytól, mert diffúz)

k t vektor vektori lis szorzata keresztszorzat cross product
Két vektor vektoriális szorzata(keresztszorzat, cross product)

a×b= [aybz-azby azbx-axbz axby-aybx]

|a×b|= |a||b|sinQ

a

merőleges a-ra és b-re

a×b

a·|a×b|= 0

b·|a×b|= 0

b

q

mire j a keresztszorzat
Mire jó a keresztszorzat?
  • Ha valami vektorra kell egy merőleges
    • keresztszorozzuk pl. a felfele vektorral
      • (pl. [0, 0, 1])
  • Két vektorra is merőleges
    • a két vektor keresztszorzata
    • ha nem 1 hosszúak vagy nem derékszögben állnak ne felejtsünk el normalizálni
  • Példa: paraméteres felület normálvektora egy pontban
p lda fel let norm lvektora
Példa: felület normálvektora

felület paraméteres egyenlete legyen:

x(u,v)= u

y(u,v)= v

z(u,v)= sin(2u + 3v )

Mi a normálvektora a u=v=0 pontban?

x(u,v) / u= 1

y(u,v) / u= 0

T érintő (tangens)

z(u,v)/ u = cos(2u + 3v) 2 = 2

x(u,v) / v= 0

B érintő (binormál)

y(u,v) / v= 1

z(u,v)/ v = cos(2u + 3v) 3 = 3

normalizálás: / sqrt(14)

N = B×T = [0-2 0-3 1-0] = [-2 -3 1]

koordin ta rendszerek
Koordináta-rendszerek
  • Egy pont valamilyen viszonyítási ponthoz képest (origo) adható meg kitüntetett vektorok lineáris kombinációjaként (bázisvektorok, koordinátatengely-irányok)
  • Más origóval és irányokkal ugyanannak a pontnak mások a koordinátái
  • Más számításokhoz más bázisok előnyösek
modellez si ebben adottak a koordin t k
Modellezési: ebben adottak a koordináták

[34]

P = OM+ 3Mx + 4My

My

OM

origó

Mx

vil g kit ntetett f rendszer ebben legyen minden az rnyal shoz
Világ: kitüntetett fő-rendszer ebben legyen minden az árnyaláshoz

modell origo itt van

[33]

Lokális

Model

Ezekkel adjuk meg

az objektum

elhelyezkedését

[34]

P = 3Mx + 4My

Mx= 3/25 Wx – 4/25 Wy

My= 4/25 Wx + 3/25 Wy

Wy

OW

origó

Wx

vil gkoordin t k kisz mol sa
Világkoordináták kiszámolása

OM

[3,3]

P = 4Wx + 3Wy

[43]

Lokális

Model

[34]

P = 3Mx + 4My

Mx= 3/25 Wx – 4/25 Wy

My= 4/25 Wx + 3/25 Wy

P = OM+ 3Mx + 4My

P = 3 Wx+ 3 Wy+ 3 (3/25 Wx – 4/25 Wy)+

4 (4/25 Wy + 3/25 Wy) =

3 Wx+ 3 Wy+ (9 + 16)/25 Wx + (12-12) Wy =

4Wx + 3Wy

Wy

OW

origó

Wx

ez a sz m t s m trix form ban modellez si tra nszform ci

Mx

My

OM

Ez a számítás mátrix formában (modellezési transzformáció)

P = 3 Wx+ 3 Wy+ 3 (3/25 Wx – 4/25 Wy)+

4 (4/25 Wy + 3/25 Wy)

[4 3] = [3+3*3/25+4*4/25 3-3*4/25+4*3/25]

mindig fix

3/25 -4/25 0

4/25 3/25 0

3 3 1

[43 1]= [3 4 1]

mindig fix

rnyal s vil g koordin t kban

Vnézeti irány

V

Árnyalás világ-koordinátákban

Xárnyalt felületi pont

Eszem pozíciója

[43]

L = (S-X)/|S-X|

V = (E-X)/|E-X|

[63]

L

Lmegvilágítás iránya

[4 1]

Wy

S fényforrás pozíciója

OW

origó

Wx

Minden világ-ban adott

hova kell ezt rajzolni a k perny n
Hova kell ezt rajzolni a képernyőn?
  • Az összes többi transzformáció ennek a kiszámolására megy
    • kamera transzformáció
      • hol van a pont a kamerához képest
    • vetítési transzformáció
      • hova vetül ez az ablak téglalapjára
    • viewport transzformáció
      • melyik pixel

[11]

[-1-1]

[0 0]

[345 234]

kamera koordin ta rendszer
Kamera koordináta rendszer

Cx= [-11]

kamera koordináták

E

[43]

[63]

[43] = E + xC*Cx + zC*Cz

Cz= [-1-1]

egyenletrendszer x,z-re

4= 6 + xC*(-1) + zC*(-1)

3= 3 + xC*(-1) + zC*(1)

xC= 1, zC = 1

Wy

OW

origó

Wx

kamera koordin ta sz m t s m trix form ban nem a kamera traf m trix

Cx

Cy

E

Kamera koordináta számítás mátrix formában(NEM a kamera trafó mátrix)

[43] = E + xC*Cx + zC*Cz

[43] = E + xC*[-1 -1] + zC*[-1 1]

mindig fix

-1 -1 0

-1 1 0

6 3 1

[43 1]= [1 11]

mindig fix

kamera traf m trix
Kamera trafó mátrix

-1 -1 0

-1 1 0

6 3 1

[43 1]= [1 11]

-1

-1 -1 0

-1 1 0

6 3 1

[43 1]= [1 11]

k perny koordin ta rendszer
Képernyő koordináta rendszer

hova vetül a képernyőn

xJ

Jx

1

milyen messze

(takaráshoz kell)

zJ

Jz

Wy

ablak a virtuális világra

OW

origó

Wx

k perny koordin ta sz m t sa
Képernyőkoordináta számítása

hasonló háromszögek

xC= xJ * zC

xJ = xC / zC

xJ

Jx

1

xC

zC

zJ

Jz

ablak a virtuális világra

ha a l t sz g nem 9 0 fok
Ha a látószög nem 90 fok

itt van az 1.0

így ez 0.5

hasonló háromszögek

Jx

xC= xJ * zC

xJ = xC / zC

xJ

FOV

1

xC

zC

Jx az egység

Osztani kell az ablakunk fél szélességével

zJ

Jz

xJ = (xC / zC) / tan(FOV/2)

ablak a virtuális világra

Ha FOV = 90 fok

akkor ez 1

FOV

látószög

perspekt v transzform ci
Perspektív transzformáció
  • A vetítés is homogén linearis transzformáció: ezt is lehet mátrixszorzással
  • DE nem affin: utolsó oszlop nem [0 0 1]
  • homogén koordinátákban kapjuk meg az eredményt, és h általában nem 1
  • utána osztani kell h-val hogy rendes Descartes koodinátákat kapjunk

xJhomo / hJhomo = (xC / zC) / tan(FOV/2)

perspekt v traf m trix
Perspektív trafó mátrix

xJhomo / hJhomo = (xC / zC) / tan(FOV/2)

ez a képernyő-pozíció szempontjából nem érdekes

1/tan(FOV/2) ? 0

0 ? 1

0 ? 0

[xJhomo? hJhomo]= [xCzC 1]

zC

xC / tan(FOV/2)

mi legyen a z
Mi legyen a Z?
  • A takaráshoz kell
  • Tartsa meg a kamera koordinátarendszer-beli sorrendet (legyen monoton a látható objektumok részén)
  • Ha [0 A 0] lenne a mátrixban:

kell valamit ide is írni

1/tan(FOV/2)00

0 A1

0 00

[xJhomo? hJhomo]= [xCzC 1]

= A

A*zC

zC

mindig A: elveszne a mélység info

0 z j 1 tartom ny legyen fp z c bp
0 < ZJ<1 tartomány legyenfp < ZC< bp

1/(tg(fov/2)) 0 0

0 (fp+bp)/(bp-fp) 1

0 -2fp*bp/(bp-fp) 0

3D ben, asp a képernyő magassága a szélességhez képest

(a függőleges és vízszintes FOV nem ugyanakkora )

1/(tg(fov/2)*asp) 0 0 0

0 1/(tg(fov/2)) 0 0

0 0 (fp+bp)/(bp-fp) 1

0 0 -2fp*bp/(bp-fp) 0

opengl ehhez k pest
OpenGL ehhez képest

ide rakja az ablakot

Jz

-1

Jx

kamera a –z felé néz

ez rt a z sor
Ezért a z sor -

1/(tg(fov/2)*asp) 0 0 0

0 1/(tg(fov/2)) 0 0

0 0 -(fp+bp)/(bp-fp) -1

0 0 -2fp*bp/(bp-fp) 0

de ezt összrakja az OpenGL

gluPerspective()

mi rt j hogy minden sz m t s m trix szorz s
Miért jó, hogy minden számítás mátrix-szorzás?

(((r M1) M2) M3) = r (M1 M2 M3)

több lépést is lehet egyetlen

mátrixszorzással,

ha a szorzatmátrixot használjuk

LINEÁRIS:

háromszögből háromszög lesz

3Dben érintkező háromszögekből 2Dben illeszkedő hszek

nemlineárisnál a hszből valami más lesz, mi meg csak hszet tudunk

hatékonyan rajzolni pixelekből

v g s
Vágás
  • Cohen-Sutherland: szakasz
  • Sutherland-Hodgeman: sokszög (hsz is)
  • A lényeg hogy egy szakasz metszéspontját megtaláljuk a vágósíkkal
    • szakasz paraméteres egyenlete (t)
    • vágósík (2D ben egyenes) egyenlete
    • meg kell oldani az egyenletrenszert t-re

r(t) = t*r0 + (1-t)r1 ; 0 < t < 1

v g s p lda 2dben
Vágás példa 2Dben

vágjuk erre a fésíkra:

x+y > 4

4 + 4 > 4, bent van

r1 = [4 4]

r0 = [1 1]

1 + 1 < 4, kint van

egyenletek
Egyenletek
  • Szakasz egyenlete
  • Ezzel az egyenessel kell a metszéspont
  • Behelyettesítve

x(t) = t x0 + (1-t)x1

y(t) = t y0 + (1-t)y1

x+ y = 4

t x0 + (1-t)x1+ t y0 + (1-t)y1 = 4

t (x0 - x1 + y0 – y1) + x1 + y1 = 4

t (1 - 4 + 1 - 4) + 4 + 4 = 4

-6 t = -4

t = 2/3; x(2/3) = 1 * 2/3 + 4 * 1/3 = 6/3 = 2

y(2/3) = 1 * 2/3 + 4 * 1/3 = 6/3 = 2

v g s p lda 2dben1
Vágás példa 2Dben

vágjuk erre a fésíkra:

x+y > 4

4 + 4 > 4, bent van

r1 = [4 4]

rc = [2 2]

r0 = [1 1]

1 + 1 < 4, kint van

h romsz gek v g sa
Háromszögek vágása
  • Nem valami általános félsíkra szokott előfordulni, inkább pl. x > -1
  • Sutherland-Hodgeman
  • VAGY 4 eset
    • mind kint: nincs bent semmi
    • mind bent: az eredeti hsz marad
    • 2 kint: a két szakaszra vágunk, 3 csúcs marad, 1 db hsz
    • 1 kint: a két szakaszra vágunk, 4 csúcs lesz, 2 db hsz
szakasz v g s 3d
Szakasz vágás 3D
  • Ugyanez a menete
  • De volt egy perspektív trafó
    • eredeti szakaszokat homogén szakaszokba viszi, ami nem biztos hogy tényleg szakasz
tfordul si probl ma

ide vetül

ide vetül

Átfordulási probléma

itt kellene

látszania

nem a két vetületi

pont között

1

ablak a virtuális világra

ez rt el sz r v gunk azt n vet t nk
Ezért először vágunk, aztán vetítünk

ami ezen

kívül van,

nem kerül

a képernyőre,

erre vágunk

itt kellene

látszania

nem a két vetületi

pont között

ide vetül

metszéspont

ablak a virtuális világra

szakasz v g s homog n koordin t kban
Szakasz vágás homogén koordinátákban
  • Szakasz egyenlete ugyanaz
  • Vágósík egyenlete lesz más

r(t) = t*r0 + (1-t)r1 ; 0 < t < 1

pl. x > -1 helyett xh > -h

p lda
Példa

ez bent van

ez kint van

  • Vágjuk a [2 3 4 1] – [5 6 -7 -1] szakaszt a z > 1 féltérre (homogénben: z > h)
  • Szakasz egyenlete (csak a z meg a h fog kelleni a t meghatározásához)
  • Vágósík egyenlete

x(t) = t x0 + (1-t)x1

y(t) = t y0 + (1-t)y1

z(t) = t z0 + (1-t)z1= (4 + 7)t - 7 = 11t - 7

h(t) = t h0 + (1-t)h1 = (1 - (-1))t - 1 = 2t - 1

z(t) = h(t); 11t - 7 = 2t - 1; t = 6/9 = 2/3

t vissza a szakasz egyenlet be
t vissza a szakasz egyenletébe

x(t) = 2/3 x0 + (1-2/3)x1 = 2/3 * 2 + 1/3 * 5 = 9/3 = 3

y(t) = 2/3y0 + (1-2/3)y1 = 2/3 * 3 + 1/3 * 6 = 12/3 = 4

z(t) = 2/3 z0 + (1-2/3)z1= 2/3 * 4+ 1/3 * (-7) = 1/3

h(t) = 2/3 h0 + (1-2/3)h1 = 2/3 - 1/3 = 1/3

az eredmény [3 4 1/3 1/3]

jöhet a homogén osztás (minden / 1/3)

[9 12 1 1]

az eredményül kapott vágott szakasz:

[2 3 4 1] - [9 12 1 1]=> [2 3 4] - [9 12 1]

a pont a

vágósíkon

kell legyen

vizsgap lda
Vizsgapélda

x y h

x y h

Vágósíkok

x <= h bent kint

x >= -h bent bent

y <= h bent bent

y >= -h bent kint

x = 1 t + 1 (1 -t) = 1

y = 1 t - 11 (1 - t) = 12t - 11

h = 3 t - 1 (1 - t) = 4t - 1

[1 31] Tp = [1 1 3] [1 -1 1]Tp = [1 -11 -1]

x=h; 1 = 4t - 1; t = ½

y=-h; 12t - 11 = -4t +1; t = ¾

t = ¾ van közelebb a belső ponthoz

¾ [1 1 3] + ¼ [1 -11 -1] = [1 -8/4 8/4] = [1 -2 2] -> [0.5 -1]

fel leti pont rnyal sa
Felületi pont árnyalása

OpenGL

kamerakoordinátában csinálja

de az is jó

  • Kellhet hozzá (VILÁG koordinátában)
    • L fényirány (|L|=1), bejövő radiancia I(L) (minden irányból ahonnan jön fény)
    • N normálvektor (|N|=1)
    • V szemirány, nézeti irány (|V|=1)
  • BRDF(felület fényvisszaverő tulajdonsága)
    • diffúz kd
    • spekuláris ks, n (exponens)
    • ideális kr
rnyal s jel l sek
Árnyalás jelölések

N normálvektor

V nézeti irány

L fényirány

R ideális

visszaverődési

irány

Q

Y

x: felületi pont

absztrakt f nyforr s t pusok
Absztrakt fényforrás típusok
  • Irány (pl. [5 3 2] irányból [2 3 4] RGB radiancia)
    • L adott, csak normalizálni kell
    • I(L) adott, mindenhol ugyanannyi, minden más irányból 0
  • Pontszerű (pl. [2 3 4] pozícióban [4 5 6] Watt RGB teljesítményű)
    • L = (S-X)/|S-X|; S a fény pozíció X az árnyalt pont
    • I(L) = F / (4|S - X|2 p)

fény távolsága

teljesítmény

4r2p : gömb felülete, ekkora felületen oszlik el a teljesítmény

gboltf ny
Égboltfény
  • I(L) adott, általában konstans (minden bejövő irányra ugyananyi a radiancia)
  • minden pontban érvényes
  • diffúz és ideális tükör visszaverődés esetén könnyű, spekulárisnál integrálni kellene
l n v b l sz m that
L, N, V-ből számítható
  • cosQ – fény beesési szögének cosinusa
    • cosQ= L·N
  • R – ideálisan visszavert fény iránya
    • L “tükörképe” a normálvektorra
    • R = 2N(L·N) – L (lásd skalárszorzat mire jó)
  • cosY – nézeti mennyire tér el az ideálistól
    • cosY= R·V
a alapegyenlet rendering equ
A alapegyenlet (rendering equ)

L(x,w)=Le(x,w)+L(h(x,-w’),w’) fr(’,x,) cos’dw’

A mi jelöléseinkkel a lényeg:

beesési

szög

BRDF

IV=I(L) cosfr( V,L) dL

V irányú kimenő

radiancia

összegezni minden

bejövő irányra

az onnan bejövő

radiancia

egységnyi felületre

beeső

és V irányba visszavert

részét

ir ny s pontf nyforr s eset n
Irány és pontfényforrás esetén
  • Csak egy irányból jön be fény, nem kell integrálni

IV=I(L) cosfr( V,L)

ezek mind adottak vagy számíthatóak

  • diffúz (BRDF = kd)

IV=Iin (N·L) BRDF

IV=Iin (N·L) kd

  • ideális (ha R=V, BRDF = kr/ cos)

IV=Iinkr

  • Phong (BRDF = kscosnY / cos)

IV=Iin(R·V)n ks

konstans gboltf ny diff z
Konstans égboltfény + diffúz

IV=I(L) cosfr( V,L) dL

kd, mert diffúz

nem függ az iránytól mert

konstans az égbolt

IV=Iégbolt coskddL

IV= IégboltkdcosdL

p

albedo

gboltf ny ide lis
Égboltfény + ideális
  • Csak az az irány érdekes, aminek az ideális visszaverődési iránya a szemirány
    • RV= 2N(V·N) – V
  • Az innen bejövőradiancia kr szerese megy a szemirányba
  • Ehhez nem kell hogy konstans legyen az ég

IV=Iégbolt(RV) kr