„Számítógépes grafika házi feladat tutorial” változatai közötti eltérés
Hozzáadtam a "fényt megtörő anyagok részt" |
|||
| 1 193. sor: | 1 193. sor: | ||
** Gyakori hiba ennek a reciprok képzésnek a lehagyása. | ** Gyakori hiba ennek a reciprok képzésnek a lehagyása. | ||
* Fontos még, hogy a Fresnel egyenletben kifele menet is ugyan azt a törésmutatót kell használni. Az F0 kiszámolásakor az egyesek a levegő törésmutatója helyén állnak, általános esetben a képlet a <code>((n1 - n2)^2 + k*k) / ((n1 + n2)^2 + k*k)</code> alakot veszi fel. Ez a képlet viszont n1 és n2 szempontjából szimmetrikus, így '''nem kell két F0-t számolni''', egyet a befele, egyet meg a kifele menő sugarakhoz. | * Fontos még, hogy a Fresnel egyenletben kifele menet is ugyan azt a törésmutatót kell használni. Az F0 kiszámolásakor az egyesek a levegő törésmutatója helyén állnak, általános esetben a képlet a <code>((n1 - n2)^2 + k*k) / ((n1 + n2)^2 + k*k)</code> alakot veszi fel. Ez a képlet viszont n1 és n2 szempontjából szimmetrikus, így '''nem kell két F0-t számolni''', egyet a befele, egyet meg a kifele menő sugarakhoz. | ||
* Csak olyan törő anyagokkal foglalkozunk, amiknek a törésmutatója a hullámhossztól független. A nem így viselkedő anyagok, a prizmák nagyon látványos képeket tudnak eredményezni, de sokkal számításigényesebbek és bonyolultabbak, ezért most nem fogok velük foglalkozni. | |||
* Ezt felhasználva: | * Ezt felhasználva: | ||
| 1 199. sor: | 1 200. sor: | ||
float n, n_rec; | float n, n_rec; | ||
RefractiveMaterial( | RefractiveMaterial(float n, Color k) | ||
: ReflectiveMaterial(n, k), n | : ReflectiveMaterial(Color(n), k), n(n), n_rec(1/n) | ||
{ } | { } | ||