4.8.2.4 Usare
Pigmenti Trasparenti e Texture Stratificate
I pigmenti sono descritti da variabili
numeriche che ci forniscono i valori di rosso, verde e blu del colore da
usare ( per esempio, color rgb <1, 0,
0> ci dà il rosso 'puro').
Ma questa sintassi può darci più che i valori di rosso, verde
e blu. Possiamo specificare la trasparenza modificandola come segue :
color rgbf<1, 0, 0, 1>.
La f
sta per filter
(filtro), la parola che POV-Ray usa per la trasparenza filtrata. Un valore
di 1 significa che l'oggetto è completamente trasparente, ma che
tuttavia filtra la luce in accordo al colore specificato. In questo caso,
avremmo un rosso trasparente, come cellophane. Esiste un altro tipo di
trasparenza in POV-Ray. Si chiama trasmittanza o trasparenza non filtrata
(la parola chiave è transmit).
E' diversa dalla trasparenza filtrata nel fatto che non modifica il colore
della luce che passa attraverso. Può essere specificata in questo
modo : rgbt <1, 0, 0, 1>.
Utilizziamo alcuni pigmenti trasparenti per creare un altro tipo di texture,
la texture stratificata. Ritornando al nostro precedente esempio, dichiariamo
la seguente texture :
#declare LandArea = texture {
pigment {
agate
turbulence 1
lambda 1.5
omega .8
octaves 8
color_map {
[0.00 color rgb <.5, .25, .15>]
[0.33 color rgb <.1, .5, .4>]
[0.86 color rgb <.6, .3, .1>]
[1.00 color rgb <.5, .25, .15>]
}
}
}
}
Questa texture costituirà la
terraferma. Ora, facciamo gli oceani dichiarando la seguente :
#declare OceanArea = texture {
pigment {
bozo
turbulence .5
lambda 2
color_map {
[0.00, 0.33 color rgb <0, 0, 1>
color rgb <0, 0, 1>]
[0.33, 0.66 color rgbf <1, 1, 1, 1>
color rgbf <1, 1, 1, 1>]
[0.66, 1.00 color rgb <0, 0, 1>
color rgb <0, 0, 1>]
}
}
}
}
Nota come l'oceano è la zona
blu opaca e la terraferma abbia delle zone trasparenti che permettono di
vedere la texture sottostante. Ora, dichiariamo un'altra texture per simulare
un atmosfera con nubi frastagliate :
#declare CloudArea = texture {
pigment {
agate
turbulence 1
lambda 2
frequency 2
color_map {
[0.0 color rgbf <1, 1, 1, 1>]
[0.5 color rgbf <1, 1, 1, .35>]
[1.0 color rgbf <1, 1, 1, 1>]
}
}
}
Ora, applichiamo tutte e tre queste
texture alla nostra sfera.
sphere { <0,0,0>, 1
texture { LandArea }
texture { OceanArea }
texture { CloudArea }
}
Renderizziamo questo esempio ed otteniamo
un pianetino abbastanza fedele.
![]() |
Fig.111-Pianeta
Potrebbe essere meglio. Non ci piace, in particolare, l'aspetto delle nubi. C'è un modo in cui potrebbero essere fatte, che sarebbe molto più realistico.
![]() |
![]() |
![]() |