Grafika zh 2006-11-09 A csoport

A VIK Wikiből

A virtuális világunkban az r(u,v) = (u,v,8uv), (0<= u,v <=1) paraméteres egyenlettel megadott felület található. A szem az origóban van, és a z irányba néz (az ablak középpontja a z tengelyen van): A kamera függőleges iránya az y tengely. A függőleges látószög 90 fokos, az ablak oldalaránya 1, az első vágósík távolsága 0.1, hátsó vágósík nincs. A keletkező képet 200x200as felbontásban kell megjeleníteni.

1. kérdés

Melyik pont látszik a (150,150) pixelben? (2p)

Rajzold fel egy z-y koordinátarendszerben! A (100,100)px van a z tengelyen. 90 fokos látószög miatt a (100px,200px) ponthoz egy lépést (0.1, de lényegtelen) tettél z irányba, és egyet y irányba. A (100px,150px)-hez csak fele lépést kell tenni y irányban.

Tehát az az egyenes, ami a szemből egy 150px magasságű pontba megy, az 1/2 merdekségű y irányban. Ugyanez a helyzet a szélességgel is.

Tehát a vetítő sugár s(t)=(t/2,t/2,t).

A metszéspont, a koordináták megfeleltetésével:

  • u = t/2
  • v = t/2
  • 8uv = t
    • 8t2/4 = t
    • t = 0 --> nem jó, mert a vágósík előtt van
    • 2t = 1 --> t = 1/2

Tehát a metszéspont (1/4, 1/4, 1/2)

-- SzaMa - 2006.11.09.

Igazából meg kell nézni, hogy ez az u=1/4, v=1/4 pont tényleg érvényes paraméterértékeket jelent-e, vagyis (0<= u,v <=1) teljesül-e. És igen. A másik, hogy ellenőrizni kell, hogy a vágósík nem vágja-e le a pontot. Nem teszi, mivel z = 1/2 > 0.1. -- Baba - 2006.11.10.-- gedeon__^ - 2006.12.06.


2. kérdés

Mi a felület normálvektora ebben a pontban? (2p)

Itt valaki mondta, hogy a parciális deriváltak keresztszorzata azt kész. Az elvileg (-4,-4,1). Ez azt jelenti, hogy én elcsesztem :) -- SzaMa - 2006.11.09.

Az illetőnek igaza van, Szama viszont elszámolta. u szerint (1, 0, 8v), v szerint (0, 1, 8u) a parciális derivált, a keresztes szorzatuk (-8v, -8u, 1), az u=v=1/4 behelyettesítéssel (-2, -2, 1) adódik. Ha normáljuk, akkor a (-2/3, -2/3, 1/3) egységvektort kapjuk.

-- Baba - 2006.11.10.

3. kérdés

Milyen színű ez a pixel, ha a teret egy irányfényforrás világítja meg, amely a (-1,1,1) irányból, az RGB csatornákon (20,10,10) W/m/m/st intenzitással sugároz, és a felület "mindkét oldalának" diffúz visszaverési tényezője [ 0.1, 0.2, 0.3]? (2p)

Ki kell számolni a beeső sugár és a normálvektor szögét. Legyen a fényforrás iránya L a normálvektor N. Ekkor cosΘ'=L*N/{|L||*||N}.

cosΘ' = 4-4+1 / sqrt(3)*sqrt(33)

A pixel színézhez már csak minden szinkomponensre össze kell szorozni az intenzitást a visszaverési tényezővel és cosΘ'-vel.

-- SzaMa - 2006.11.09.

Más a normálvektor, mint amivel számolsz, de az elv ok.

-- Baba - 2006.11.10.

Vagyis helyesen akkor:

cosΘ' = ((-1)*(-2/3) + 1*(-2/3)+1*1/3 ) / sqrt(3) = 0.192

L = Lin*kd*cosΘ'

Lr = 20*0.1*0.192 = 0.384, Lg = 10*0.2*0.192 = 0.384, Lb = 10*0.3*0.192 = 0.576.

RGB = [0.384, 0.384, 0.576]

-- NeoXon - 2006.11.10.

4. kérdés

Közelítse a felületet NxM háromszögből {ez valszeg el volt írva a feladatlapon} álló négyszöghálóval, és adja meg az i,j négyszög négy csúcsának koordinátáit! (2p)

A felület egyenletében két változó volt, amik [0,1] intervallumon mozogtak, hát mintavételezzük ezeket egyenletesen! Az egyes pontoknál legyen ui=i/N és vj=j/M.

i=0..N-1; j=0..M-1

Ekkor az i,j négyszög csúcsai:

  • (i/N, j/M, 8*i*j/(N*M))
  • ((i+1)/N, j/M, 8*(i+1)*j/(N*M))
  • (i/N, (j+1)/M, 8*i*(j+1)/(N*M))
  • ((i+1)/N, (j+1)/M, 8*(i+1)*(j+1)/(N*M))

-- SzaMa - 2006.11.09.

thx to J.