7.6.1.3 Mappe
di Colore
La maggior parte dei motivi di colori
passa bruscamente da un colore all'altro e utilizza solamente due o tre
colori. Invece è possibile utilizzare dei colori che siano frutto
di una transizione graduale da una tonalità ad un altra. Questo
tipo di colorazione è definita in un modificatore di pigmento chiamato
color_map
che imposta il passaggio da un colore ad un altro.
Ognuno dei vari tipi di motivi che sono disponibili è caratterizzato
da una funzione matematica che prende le coordinate x, y e z della posizione
e le trasforma in un numero compreso tra 0.0 e 1.0 inclusi. Quel numero
viene usato per specificare quale combinazione di colori è da usare
in quel punto della color_map.
Una mappa di colore è specificata nel modo seguente :
pigment{
tipo_di_motivo
color_map {
[ numero_1 COLORE_1]
[ numero_2 COLORE_2]
[ numero_3 COLORE_3]
...
}
modificatori_di_pigmento...
}
Dove numero_1,
numero_2,
... sono valori decimali compresi tra 0.0 e 1.0 questi inclusi e COLORE_1,
COLORE_2, ... sono colori. Notare che le parentesi quadre "[ ]"
sono parte integrante della frase, non sono notazioni che segnalano una
parte facoltativa. Le parentesi definiscono ciascun valore nella mappa
di colore. Ci possono essere da 2 a 256 diversi colori nella mappa. Si
può anche usare la dizione alternativa colour_map.
Per esempio :
sphere {
<0,1,2>, 2
pigment {
gradient x //questo è un tipo di pigmento
color_map {
[0.1 color Red]
[0.3 color Yellow]
[0.6 color Blue]
[0.6 color Green]
[0.8 color Cyan]
}
}
}
qui viene calcolata la funzione del
motivo e il risultato sarà un valore da 0.0 a 1.0. Se il valore
è minore del primo numero, in questo caso 0.1, allora sarà
usato il primo colore che è il rosso. I valori da 0.1 a 0.3 usano
colori che passeranno dal rosso al giallo usando un'interpolazione lineare
tra i due colori. Ugualmente i valori tra 0.3 e 0.6 useranno colori che
vanno dal giallo al blu. Da notare che il terzo e il quarto numero hanno
entrambi valore 0.6. Questo determinerà un passaggio immediato dal
blu al verde. Più esattamente, un valore anche solo leggermente
minore di 0.6 sarà blu, da 0.6 il colore sarà verde. Andando
avanti, i valori tra 0.6 e 0.8 passeranno dal verde al ciano e concludendo
ogni valore maggiore di 0.8 sarà ciano.
Se non vuoi che il colore cambi in una determinata area, basterà
mettere lo stesso colore in due zone adiacenti. Per esempio :
color_map {
[0.1 color Red]
[0.3 color Yellow]
[0.6 color Yellow]
[0.8 color Green]
}
in questo caso ogni valore tra 0.3 e 0.6 sarà giallo.
La parola chiave color_map
potrà essere usata con ogni motivo eccetto brick,
checker,
hexagon
e image_map.
E' possibile dichiarare e usare identificatori della color_map.
Per esempio:
#declare Colori_dell'Arcobaleno=
color_map {
[0.0 color Magenta]
[0.33 color Yellow]
[0.67 color Cyan]
[1.0 color Magenta]
}
object{Coso
pigment{
gradient x
color_map{Colori_dell'Arcobaleno}
}
}
![]() |
![]() |
![]() |