4.9.9        Limiti delle Texture Speciali



Ci sono un paio di limitazioni per tutte le texture speciali che abbiamo visto. Per prima cosa, se abbiamo usato le direttive di default per impostare le texture di default per tutti gli oggetti nella nostra scena, allora POV-Ray non accetterà nessuna delle texture speciali discusse qui. Questo è un problema decisamente minore, dal momento che possiamo sempre dichiarare una texture ed applicarla individualmente a tutti gli oggetti. Non ci impedisce insomma di fare cose che non potremmo fare in altro modo.
L'altra limitazione è più restrittiva, ma come vedremo tra breve, possiamo aggirarla piuttosto facilmente. Abbiamo lavorato con texture stratificate ed abbiamo già visto come possiamo accumulare texture una sopra l'altra (fino a che ogni strato contiene della trasparenza). Questa tecnica molto utile ha un problema nell'incorporare le texture speciali che abbiamo appena visto come strati. Ma c'è una risposta !
Per esempio, diciamo di avere una texture stratificata chiamata
Speckled_Metal, che determini una superficie argentea, con piccoli punti di ruggine. Possiamo decidere, per maggiore realismo, di creare macchie di ruggine più grandi, disposte casualmente sulla superficie. L'approccio più ovvio è quello di creare una texture speciale, con trasparenza, da usare come strato superiore, ma naturalmente, come abbiamo visto, non saremo in grado di usare quel motivo di texture come strato. Otterremmo solamente un messaggio di errore. La soluzione è di capovolgere il problema e far diventare la nostra texture stratificata parte della texture stessa, come nell'esempio :

// Questa parte dichiara un pigmento da
// usare nella texture 'macchie di ruggine'
#declare Rusty = pigment {
granite
color_map {
[ 0 rgb <0.2, 0, 0> ]
[ 1 Brown ]
}
frequency 20
}

// E questa parte lo applica.
// Nota che la nostra texture stratificata originale
// "Speckled_Metal" è ora parte della mappa
#declare Rust_Patches = texture {
bozo
texture_map {
[ 0.0 pigment {Rusty} ]
[ 0.75 Speckled_Metal ]
[ 1.0 Speckled_Metal ]
}
}

L'effetto che otteniamo è in definitiva come se avessimo messo lo strato 'macchie di ruggine' sopra lo strato 'Speckled_Metal'.
Con l'intera gamma di pattern, pigmenti, normali, finiture, texture speciali e stratificate, ora possiamo praticamente fare tutto. C'è un numero quasi infinito di combinazioni che aspettano solo di essere create !