„Számítógépes grafika házi feladat tutorial” változatai közötti eltérés
Hozzáadtam a "valós tükröző anyagok" részt |
|||
| 1 114. sor: | 1 114. sor: | ||
* [http://pastebin.com/28U44wt6 Két szemben lévő tükör] hatása: | * [http://pastebin.com/28U44wt6 Két szemben lévő tükör] hatása: | ||
http://i.imgur.com/5EcYwj6.png | http://i.imgur.com/5EcYwj6.png | ||
=== A valós tükröző anyagok === | |||
* A valós tükröző anyagok, nem csak a tükrök, de pl. a fényesre csiszolt fémek is, nem viselkednek tökéletes tükörként. A különbség az, hogy ezek az anyagok nem a fény 100%-át verik vissza, hanem egy részét elnyelik (az nagyrészt hővé alakul). Az elnyelt fény mértéke a hullámhossztól is függhet, ezért pl. egy sima aranyfelület elszínezi a tükörképet. Egy fürdőszobai tükör persze minden hullámhosszon nagyjából ugyanannyi fényt nyel el. | |||
* A képlet amire szükségünk lenne, az egy adott hullámhosszon a törésmutató, és a kioltási tényező függvényében megmondaná, hogy a fény hanyad része verődik vissza. | |||
** Elég nagy problémát okoz, hogy ebben a képletben a bemenet és a kimenet is hullámhossz függő. Egy lehetséges egyszerűsítés, hogy mi csak három kitüntetett színre (a pirosra a zöldre és a kékre) számoljuk ki a képlet eredményét, és ezt ezzel megszorozzuk az RGB színskálán leírt színünket. | |||
** Ez közvetlenül a Maxwell-egyenletekből levezethető, bár az eredmény, a [http://hu.wikipedia.org/wiki/Fresnel-egyenletek Fresnel-egyenletek] jóval bonyolultabb, mint amit mi használni szeretnénk. | |||
*** Én csak a képletnek egy közelítését írom itt le, a tárgyból is általában ez szokott kelleni. | |||
**** n - törésmutató (RGB vektor) | |||
**** k - kioltási tényező (RGB vektor) | |||
**** F0 - egy az anyagra jellemző konstans | |||
***** <code> F0 = ((n-1)*(n-1) + k*k) / ((n+1)*(n+1) + k*k); </code> | |||
**** theta - beesési szög | |||
**** F(theta) - a visszaverődő relatív intenzitást adja meg, komponensenként: | |||
***** F(theta) = F0 + (1-F0) * pow(1-cos(theta), 5) | |||
<br/> | |||
* [http://pastebin.com/nSTreTpN Ezüst esetén] (n = (0.14, 0.16, 0.13), k = (4.1, 2.3, 3.1)): | |||
http://i.imgur.com/dvA9XWq.png | |||
----- | ----- | ||