GrafikaGyakorloIlluminacio

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 21., 19:58-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|GrafikaGyakorloIlluminacio}} ===Mintakérdések a Számítógépes grafika és képfeldolgozás tárgy vizsgájára való felkészüléshez==…”)
(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


Mintakérdések a Számítógépes grafika és képfeldolgozás tárgy vizsgájára való felkészüléshez

Illumináció

65. Írjon egy BRDF osztályt, ami diffúz és Phong szerinti illuminációs modellt valósít meg.

  • Colorról és Vectorról feltettem a szokásos műveleteket. Az osztálynak egységvektorokat kell átadni, light a fényforrás felől mutat a felületre, view pedig a felületről a néző felé.
class Phong {
  private:
	 Color diffuse;
	 Color specular;
	 float exponent;
  public:
	 Phong(const Color& d, const Color& s, float e) {
		diffuse=d;
		specular=s;
		exponent=e;
	 }
	 Color operator()(const Vector& normal, const Vector& light, const Vector& view) {
		Vector reflected=light+normal*(-2*normal*light);
		return (diffuse*(light*normal)+specular*pow(view*reflected, exponent));
	 }
};

66. A fény egy ideális tükörre V irányból érkezik, a tükör normálvektora N. Milyen irányba halad tovább?

  • Feltételezem, hogy V és N is normalizálva vannak, és V a fényforrástól mutat a tükör felé. Ekkor V-nek az N-re merőleges komponensét békén kell hagyni, az N-nel párhuzamosat pedig -1-szeresére változtatni. Az N-nel párhuzamos komponens: (NV)*N, vagyis N szorozva a két vektor skalárszorzatával, az N-re merőlegest pedig úgy kapjuk, ha ezt kivonjuk V-ből. Így a visszavert sugár R=(-NV)*N+(V-(NV)*N)=V+(-2NV)N. Belátható, hogy ez egységnyi abszolút értékű lesz, tehát nem kell normálni.

67. A fény egy ideális fénytörő felületre a V irányból érkezik, a tükör normálvektora N. Milyen irányba halad tovább, ha a törésmutató n?

  • Az előzőhöz hasonlóan N-nel párhuzamos és N-re merőleges komponensre bontunk. A Snellius-Descartes törvény szerint a beeső ([math] \alpha [/math]) és a kimenő ([math] \beta [/math]) sugarak normállal bezárt szögére [math] \frac{\sin\alpha}{\sin\beta}=n [/math]. Kifejezve [math]\sin\alpha [/math]-t [math] \tan\alpha [/math]-val, azt pedig a vektorokkal: [math] \sin\alpha = \frac{\tan\alpha}{\sqrt{\tan^2\alpha+1}} [/math], valamint [math] \tan\alpha = \frac{\sqrt{1-(NV)^2}}{NV} [/math] (felül a normálra merőleges, alul az azzal párhuzamos komponens abszolútértéke).
  • Ha feltesszük, hogy a (normalizált) kimenő vektor N-nel párhuzamos komponense p, a merőleges pedig q (vagyis R=R=p*(-N)+q*(V-(NV)*N)), akkor [math] \sqrt{p^2+q^2}=1 [/math] valamint [math] \sin\beta = \frac{\tan\beta}{\sqrt{\tan^2\beta+1}} [/math] és [math] \tan\alpha=\frac{q}{p} [/math] Ezekből az egyenletekből már kifejezhető p és q. A végképlet: [math] R=\sqrt{1-n^2(1-(NV)^2)}*(-N)+\sqrt{1-(NV)^2}*(V-(NV)*N) [/math]
  • Wikipédia: Snellius-Descartes törvény

68. Egy tökéletesen sík felületre érkezik a fény [3,4,5] irányból. Milyen irányban verődik vissza, ha a sík normálvektora [-3,8,1], és a fény a felületre merőlegesen polarizált?

69. Írjon egy BRDF fügvényt, amely a fény, nézeti és normálvektorokat kapja meg és a BRDF tényezőt adja vissza RGB hullámhosszokon. A függvény a diffúz és az eredeti Phong szerinti illuminációs modellt valósítja meg.

70. Oldja meg az előző feladatot úgy, hogy a tárolt adatok, a kd hullámhosszfüggő diffúz albedó, a ks a hullámhosszfüggő spekuláris albedó jelenti merőleges megvilágítás esetén, az n spekularitási tényezőt (fényesség illetve shininess) tekintse globális változóknak. Hogyan kellene kiszámítani ks-t a beesési szög, a törésmutató a komplex törésmutató alapján?

71. Adott egy irányfényforrás, amely a [3,4,0] irányból világít, intenzitása [200, 10,100]. Miyen színűnek látja a megfigyelő a z=0 sík [3,5,0] pontját, ha ő a [7,5,3] pontban van, és a felület Phong-Blinn illuminációs modell szerint veri vissza a fényt? A spekuláris visszaverődési ks = [25/9,25/9,25/9], a fényesség (shininess) 2.

72. Egy (0,0,1) normálvektorú piros műanyag (nem fém!!!) felületről tudjuk, hogy Phong modell szerint veri vissza a fényt. A (1,1,1) irányból érkező (1,1,1) W/st/m2 sugársűrűségű (R,G,B hullámhosszain) megvilágítás hatására a piros hullámhosszán a (1,1,1) irányból ránézve a felületre 0.3 W/st/m2 sugársűrűséget, a (-1,-1,1) irányból ránézve pedig 0.5 W/st/m2 sugársűrűséget észlelünk. Mekkora a kd diffúz visszaverődési tényező és a ks spekuláris visszaverődési tényező az R,G,B hullámhosszakon?

73. Tekintsük a 12x + 4y + 3z = 19 egyenletű sík (1, 1, 1) koordinátájú pontját, amit a (13, 6, 1) pontbeli az r, g, b hullám-hosszokon egyaránt [math] 1692 \cdot 4 \cdot \pi [/math] W teljesítményű fényforrás világít meg, és a (4, 13, 5) pontból nézzük. A sík anyagát diffúz + Phong-Blinn modellel írjuk le. Milyen intenzitású fényt érzékel a szem az r, g, b hullámhosszakon, ha a felület diffúz visszaverődési tényezője ugyanezeken a hullámhosszokon [0.1, 0.2, 0.3], a spekuláris visszaverődési tényező minden hullámhosszon 2.89, a fényesség (shininess) pedig 2. Numerikus eredményt várunk, nem elég csak a képleteket felírni, ki is kell az eredményt számítani (nem hiszünk el semmit, csak ami le van írva). Segítség: A pontszerű fényforrás által keltett sugársűrűség a teljesítmény osztva távolság négyzetével és 4pi-vel. A Phong-Blinn modell, amit az OpenGL is használ, a felezővektor és normálvektor közötti szöggel dolgozik.

74. Egy diffúz felületet változó erősségű égboltfény világít meg egy adott hullámhosszon, amelyen a felület albedója 1. A megvilágítás erőssége az alábbi függvénnyel jellemezhető: [math] 1/\cos\theta [/math] [W/st/m^2], ha [math] \theta > 45^\circ [/math], illetve [math] \sqrt{2} [/math] [W/st/m^2], ha [math] \theta \leq 45^\circ [/math], ahol [math] \theta [/math] a felület normálisa és az égboltpont iránya közötti szög. Mekkora sugársűrűség éri a szemünket az adott hullámhosszon, ha a nézeti irány éppen 60 fokot zár be a felületi normálissal, és 3 méter távolságból szemléljük a diffúz felületet? Segítség: [math] L(\overrightarrow{x}, \overrightarrow{\omega}) = L^e(\overrightarrow{x}, \overrightarrow{\omega}) + \int_{\Omega^\prime} L^{in}(\overrightarrow{x}, \overrightarrow{\omega}^\prime) f_r(\overrightarrow{\omega}^\prime, \overrightarrow{x}, \overrightarrow{\omega})\cos\theta^\prime d\omega^\prime [/math]


-- G - 2008.12.26.