PótZH 2006. 12. 07., A csoport, első turnus

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 21., 21:16-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|SzgGrafPZH20061207A1}} Ugyanaz, mint az E csoporté, csak más számokkal. 18:15-18:45 '''A kamerát a világkoor…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


Ugyanaz, mint az E csoporté, csak más számokkal.

18:15-18:45

A kamerát a világkoordinátarendszerben az alábbi paraméterekkel definiáljuk:

  • Szempozíció (eye): (1, 0, 0)
  • Nézeti célpont (lookat): (2, 1, 1)
  • Kamera preferált függőleges irány (vup): (1, 0, 0)
  • Függőleges látószög (fov): 60 fok
  • Első vágósík távolsága (fp): 1
  • Hátsó vágósík távolsága (bp): 1000
  • Oldalarány: 1

Írja fel azt a mátrixot, amely a a virtuális világot világkoordinátarendszerből kamerakoordinátarendszerbe transzformálja (segítség: kamerakoordináta rendszerben a szem az origóban van és a -z irányba néz. Vigyázat, NEM a normalizált eszközkoordinátarendszerbe kell transzformálni.)


-- palacsint - 2006.12.07.

Megoldás

[math] \overrightarrow{w} = \frac{\overrightarrow{eye}-\overrightarrow{lookat}}{\|\overrightarrow{eye}-\overrightarrow{lookat}\|} = \frac{[-1,-1,-1]}{\sqrt{(-1)^2+(-1)^2+(-1)^2}} = \left[-\frac{1}{\sqrt{3}},-\frac{1}{\sqrt{3}},-\frac{1}{\sqrt{3}}\right] [/math]

[math] \overrightarrow{u} = \frac{\overrightarrow{up}\times\overrightarrow{w}}{\|\overrightarrow{up}\times\overrightarrow{w}\|} = \frac{\left[0,\frac{1}{\sqrt{3}},-\frac{1}{\sqrt{3}}\right]} {\sqrt{0^2+\left(\frac{1}{\sqrt{3}}\right)^2+\left(-\frac{1}{\sqrt{3}}\right)^2}} = \left[0,\frac{1}{\sqrt{2}},-\frac{1}{\sqrt{2}}\right] [/math]

[math] \overrightarrow{v} = \overrightarrow{w}\times\overrightarrow{u} = \left[-\frac{1}{\sqrt{3}}\left(-\frac{1}{\sqrt{2}}\right) - \left(-\frac{1}{\sqrt{3}}\right)\cdot\frac{1}{\sqrt{2}}, 0-\left(-\frac{1}{\sqrt{3}}\right)\left(-\frac{1}{\sqrt{2}}\right), \left(-\frac{1}{\sqrt{3}}\right)\frac{1}{\sqrt{2}}-0\right] = [/math] [math] \left[\frac{2}{\sqrt{2}\sqrt{3}},-\frac{1}{\sqrt{2}\sqrt{3}},-\frac{1}{\sqrt{2}\sqrt{3}}\right] [/math]

A kamerakoordinátarendszerből a világkoordinátarendszerbe vivő transzformációt úgy kapjuk meg, hogy egy 4x4-es mátrix bal felső részébe felsoroljuk az u, v, w sorvektorokat, alá írjuk a szempozíciót (így toljuk az origóba a kamerát) és a jobb oszlopba [math] [0,0,0,1] [/math]-et írunk. Tehát:

[math] T_{c}=\left[ \begin{array}{rrrr} u_x & u_y & u_z & 0 \\ v_x & v_y & v_z & 0 \\ w_x & w_y & w_z & 0 \\ eye_x & eye_y & eye_z & 1 \\ \end{array} \right]=\left[ \begin{array}{rrrr} 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 \\ \frac{2}{\sqrt{6}} & -\frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{6}} & 0 \\ -\frac{1}{\sqrt{3}} & -\frac{1}{\sqrt{3}} & -\frac{1}{\sqrt{3}} & 0 \\ 1 & 0 & 0 & 1 \\ \end{array} \right] [/math] javította: -- Glandeur - 2006.12.29.

Ezzel csak az a probléma, hogy nekünk éppen ennek az inverze kell, azaz a világkoordinátarendszerből a kamerakoordinátarendszerbe vivő. Mivel a kamera koordinátarendszer bázisvektorai egymásra merőlegesek, ezért az inverz könnyen számítható: a bal felső minormátrixot transzponáljuk, és balról szorozzuk az eltolást leíró mátrixszal.

A keresett mátrix tehát:


[math] T_{c}^{-1}= T_{tr}.T_{rot}= \left[ \begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -eye_x & -eye_y & -eye_z & 1 \\ \end{array} \right] . \left[ \begin{array}{rrrr} u_x & v_x & w_x & 0 \\ u_y & v_y & w_y & 0 \\ u_z & v_z & w_z & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} \right] =[/math]

[math]= \left[ \begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -1 & 0 & 0 & 1 \\ \end{array} \right] . \left[ \begin{array}{rrrr} 0 & \frac{2}{\sqrt{6}} & -\frac{1}{\sqrt{3}} & 0 \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{3}} & 0 \\ -\frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{3}} & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} \right] = \left[ \begin{array}{rrrr} 0 & \frac{2}{\sqrt{6}} & -\frac{1}{\sqrt{3}} & 0 \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{3}} & 0 \\ -\frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{3}} & 0 \\ 0 & -\frac{2}{\sqrt{6}}& \frac{1}{\sqrt{3}} & 1 \\ \end{array} \right] [/math]

-- NeoXon - 2006.12.07.

Hogy jött ki up X w második koordinátájára pozitív?? -- dani - 2008.01.02.

Amikor a keresztes szorzatot csinálod ( i j k ...), akkor a j-t negatív előjellel kell figyelembe venni. -- Zsófi - 2008.01.15.