Számítógépes grafika és képfeldolgozás - Vizsga, 2014.01.10.

A VIK Wikiből


Ha esetleg elírtam valami, tessék javítani.

1. feladat

Egy naperőmű tükörvezérlését programozod. Egy egyszerű, téglalap alakú síktükörről van szó, melynek helyzete t(tx,ty,tz). Ezen kívül ismered a nap helyzetét: d(dx,dy,dz), és az erőmű fókuszpontjáét is: f(fx,fy,fz). A tükör alaphelyzetben az x-y síkban van, mégpedig úgy, hogy a rövidebbik oldala az x, a hosszabbik oldala az y tengellyel párhuzamos. A feladat: olyan programot írni, amely kiszámítja a tükör forgatását vezérlő transzformációs mátrixot. A tükröt mindig olyan pozícióba kell forgatni, hogy a napsugarakat a fókuszpontba tükrözze, ha egy mód van rá úgy, hogy közben a tükör mindig függőleges állású legyen, tehát a rövidebbik oldala maradjon az x-y síkban. A programot pszeudonyelven kell megírni, melyben a következő vektorműveletek állnak rendelkezésre: két vektor összeadása, két vektor skaláris szorzása (?), vektor szorzása skalárral (?) (esetleg más is?). Ha egyéb vektorműveletre is szükség van, akkor az definiálandó vektoralgebrával. (12p) Hogyan számítanád ki azt, hogy a tükör 600 nm-es hullámhosszon milyen intenzitással veri vissza a fényt? Képleteket tilos írni, csak elvi leírás kell, miből mivel mit és hogyan számítanál. (3p)

2. feladat

Megadtak egy CG nyelvű kódot. Erre pontosan nem emlékszem, de adtak hozzá egy leírást is:

A fenti CG kód akkor működik, ha a glEnable(GL_LIGTHING)-al engedélyeztük a világítást, a glEnable(GL_LIGHT0)-val engedélyeztük a 0-ás fényforrást, aminek irányfényforrásnak kell lennie, és a glEnable(GL_NORMALIZE) is be van kapcsolva. Ha mindez engedélyezve a van, akkor a kód diffúz árnyalást végez (csak azt). Ezt a kódot kell módosítani úgy, hogy glDisable(GL_NORMALIZE) esetben működjön, irány- és pontfényforrásra is működjön, valamint a Phong-féle (vigyázat, nem a Phong-Blinn-féle!) árnyalási modellt használja, és csak spekuláris árnyalást végezzen. A változtatásokat meg kell magyarázni! (15p)

--Gabesz852 (vita) 2014. január 14., 15:15 (UTC)