4.6.6        Assegnare un Oggetto ad una Sorgente Luminosa



Le sorgenti luminose sono invisibili. Indicano solo il punto da cui si proietta la luce. Non hano una vera dimensione o una forma. Se vogliamo che la nostra luce sia visibile ed abbia una forma, possiamo usare la parola chiave looks_like (assomiglia). Possiamo cioè specificare che la nostra sorgente luminosa può assumere la forma di un qualunque oggetto scegliamo. Quando usiamo looks_like la parola chiave no_shadow (senza ombra) viene automaticamente applicata all'oggetto. Questo avviene per evitare che l'oggetto blocchi la luce proveniente dalla sorgente. Se vogliamo che ci sia dell'ombra, invece, è meglio usare un'unione per ottenere lo stesso risultato. Aggiungiamo un oggetto del genere alla nostra scena. Questa è una lampadina che abbiamo fatto proprio per questo scopo :

#declare Lightbulb = union {
merge {
sphere { <0,0,0>,1 }
cylinder { <0,0,1>, <0,0,0>, 1
scale <0.35, 0.35, 1.0>
translate 0.5*z
}
texture {
pigment {color rgb <1, 1, 1>}
finish {ambient .8 diffuse .6}
}
}
cylinder { <0,0,1>, <0,0,0>, 1
scale <0.4, 0.4, 0.5>
texture { Brass_Texture }
translate 1.5*z
}
rotate -90*x
scale .5
}

Ora aggiungiamo la sorgente luminosa :

light_source {
<0, 2, 0>
color White
looks_like { Lightbulb }
}

Renderizzando questa scena.

Fig. 81-Luce a forma di...

Vediamo che una lampadina discretamente credibile adesso illumina la scena. Comunque, se non specifichiamo un valore alto per ambient, la lampadina non è illuminata dalla sorgente luminosa. D'altra parte, tutte le ombre sono proiettate dalla lampadina, come dovrebbero realmente essere. Le ombre sono però troppo nette. Usiamo allora un'area light :

light_source {
<0, 2, 0>
color White
area_light <1, 0, 0>, <0, 1, 0>, 2, 2
adaptive 1
jitter
looks_like { Lightbulb }
}

Fig. 82-Luci più attenuate

Notamo che abbiamo messo quest'area light nel piano x-y invece che nel piano x-z. Notiamo anche che l'aspetto della lampadina non è influenzato in alcun modo dalla sorgente luminosa. La lampadina deve essere illuminata da qualche altra sorgente lumnosa, o, come in questo caso, da un alto valore del parametro ambient. Risultati più interessanti possono essere ottenuti in questo caso usando le Halo (vedi paragrafo "Halo").