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").
![]() |
![]() |
![]() |