4.8.4.6.3        Riflessi e Normali



POV-Ray fa uso della perturbazione delle normali ad una superficie in un modo che è più singolare di quanto la gente normalmente non si accorga. Quando applichiamo una normale ad una texture, non modifichiamo in alcun modo la superficie, ma piuttosto, stiamo dicendo a POV-Ray di trattare la superficie come se fosse alterata, limitatamente allo scopo di calcolare l'illuminazione di ogni suo punto. In breve, è un trucco dato dalla luce e dall'ombra, che, supponendo che non stiamo osservando l'oggetto da un angolo troppo laterale, crea effettivamente l'illusione della distorsione sulla sua superficie. Anche i riflessi sono un trucco sintetico, come abbiamo visto prima e sono stati progettati per reagire a deformazioni della superficie come se queste deformazioni ci fossero davvero. Ricordi l'esperimento del bicchiere di vetro ? Se abbiamo trovato un bicchiere con una decorazione incisa sulla sua superficie, probabilmente abbiamo notato che questa decorazione si vede anche nei riflessi proiettati dal vetro. Quando abbiamo una superficie trasparente con un blocco normal{...} applicato, i riflessi proiettati da questa superficie ne simulano le irregolarità, che si vedono poi nell'ombra che l'oggetto forma.
A seguire, un esempio di cosa intendiamo : semplicemente vogliamo rappresentare l'acqua in una piscina. Abbiamo ridotto questo esempio ad un piano sopra di noi, che rappresenta l'acqua, uno sotto che rappresenta il pavimento, una camera appena sotto il pelo dell'acqua, rivolta al pavimento ed una sorgente luminosa in alto (vedi il file caustic2.pov).

#include "colors.inc"
// La camera è sott'acqua, rivolta verso il fondo della piscina
// per vedere meglio i riflessi proiettati.

camera {
location <0, -5, 0>
look_at <0, -10, -5>
}

light_source { <0, 100, 49.5> color White }
// il fondo della piscina...
plane { y, -10
texture {
pigment { color rgb <0.6, 0.7, 0.7> }
finish { ambient 0.1 diffuse 0.7 }
scale 0.01
}
}

// e la superficie dell'acqua
plane { y, 0
texture {
pigment { rgbf <0.6, 0.67, 0.72, 0.9> }
normal {
bumps .6
scale <.75, .25, .25>
rotate <0, 45, 0>
}
finish { caustics .9 }
}
}

Fig. 137-Riflessi dell'acqua

Le irregolarità che abbiamo dato all'acqua con bumps rappresentano le ondulazioni piccole e casuali che si formano sull'acqua quando soffia una lieve brezza . Potremmo avere usato ripples o waves, come se qualcosa fosse caduto in acqua da poco, ma per un esempio, bumps va bene. Notiamo che il pavimento della piscina mostra decine di piccoli punti luminosi, che corrispondono approssimativamente alla superficie dell'acqua. Se vogliamo, possiamo mettere ripples o waves al posto di bumps e vedere come cambiano i riflessi sul fondo. Nonstante il fatto che un piano 'piatto' non proietti riflessi (possiamo provare eliminando il blocco normal{...}), il processo di generazione di falsi riflessi di POV-Ray 'sa' che se la superficie fosse realmente irregolare, come l'istruzione normal{...}indica, la luce rifratta dalla superficie sarebbe abbastanza per proiettare riflessi sul fondo della piscina. Vediamo che anche con una superficie curva, come la sfera dell'esempio precedente, la presenza di un blocco di istruzioni normal{...}causa il comparire di riflessi proiettati da un oggetto. Fatto abbastanza interessante, questo basterebbe per provare che i riflessi sono effettivamente falsi : la nostra acqua non ha nessuna proprietà di rifrazione specificata nella finitura, ma nonostante questo i riflessi sono esattamente gli stessi !