Make
a donation:
IBAN: IT36M0708677020000000008016 - BIC/SWIFT:
ICRAITRRU60 - VALERIO DI STEFANO or Privacy PolicyCookie PolicyTerms and Conditions Manuale di Utilizzo di POV-Ray 3.01 - Versione Italiana
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 !