CAPITOLO 3. MATERIALI 3.1 USANDO I MATERIALI 3.1.1 INFORMAZIONI GENERALI Creando immagini ed animazioni di realismo fotografico non è solo necessario creare forme comlesse, ma bisogna anche simulare le proprietà dei materiali reali. Real 3D include eccellenti strumenti a questo scopo. Real 3D rappresenta gli oggetti come solidi le cui caratteristiche possono essere definite usando materiali. I Materials contengono informazioni circa la struttura molecolare di superficie, il colore, e le proprietà ottiche. Le caratteristiche fondamentali possono essere definite usando i cursori. Un controllo più accurato delle caratteristiche può essere raggiunto utilizzando le così dette mappe di texture, che sono immagini mappate i cui colori possono essere usati per definire la superficie di un oggetto ed altre proprietà del materiale. Sono anche usate le texture matematiche, che sono formule matematiche che definiscono le qualità desiderat. Poichè queste possono essere espresse come programmi RPL o formule stabilite dall'utente, vi sono quindi illimitate possibilità per migliorare ed espandere le caratteristiche dei materiali compresi in Real 3D. Molte caratteristiche avanzate di real 3D utilizzano il principio della modellazione solida del programma. Una valutazione corretta della rifrazione della luce e dei materiali non omogenei, quali nubi di gas con una densità spaziale variabile, sono buoni esempi. Operando con Real 3D, memorizzi i materiali che ti possono servire in una libreria apposita, che è la collezione residente di materiali singoli. Un materiale è una raccolta di informazioni che definiscono le caratteristiche di un materiale del mondo reale, come il legno, il vetro, l'acciaio, il marmo, l'acqua, etc. Puoi manipolare la libreria dei materiali in diversi modi: puoi cancellare alcuni materiali, puoi svuotarla, caricarne una nuova da disco ed unirla a quella presente, salvare la libreria, ed infine, creare dei materiali nuovi usando l'apposito editore, ed aggiungerli poi alla raccolta. Quando vuoi usare un materiale per un oggetto nella tua scena, crei un nuovo oggetto nella gerarchia. Questo nuovo oggetto 'material' agisce come riferimento ad uno dei materiali della libreria, e contemporaneamente alcune proprietà geometriche che sono utilizzate nel posizionamento preciso della texture (oggetto material) sull'oggetto (Oggetto solido definito) nella mappatura. Questo nuovo oggetto di riferimento del materiale è chiamato oggetto mappante. Tutti gli altri oggetti allo stesso livello gerarchico dell'oggetto mappante sono influenzati dal materiale di riferimento della mappatura. Quindi, il principio è quello di avere una libreria di materiali e di utilizzare la gerarchia per combinare le forme con i materiali. Per esempio, per modellare un candeliere di legno, prima aggiungi il materiale 'legno' nella libreria, poi crei un livello 'Candeliere-legno', e sotto a quel livello poni l'oggetto a forma di candeliere e l'oggetto mappante legno. Puoi interpretarlo così che il candeliere è composto da forma e materiale. Naturale, vero? Candeliere Candeliere Legno Nota: Questo albero gerarchico contiene riferimenti ai materiali, e non i materiali stessi. Questo porta diversi vantaggi. Innanzi tutto, spesso dovrai adattare i materiali in seguito; è sufficiente modificare solo il materiale per ottenere l'effetto cercato su tutti gli oggetti composti dello stesso. Inoltre, essendo il materiale un'ampia raccolta di informazioni, utilizzando questo metodo risparmieremo memoria. Un pratico esempio di utilizzo dei materiali chiarificherà questa descrizione piuttosto astratta. Sperimenteremo con i materiali nel seguente progetto tutorial. 3.1.2 PROGETTO TUTORIAL Creare una sfera lucente su un cubo marmoreo è un esercizio appropriato per dimostrare vari aspetti sull'uso dei materiali. Prima crea un semplice oggetto che contiene due primitivi: 1. Avvia il programma con l'ambiente standard. 2. Crea due forme usando le funzioni Create/Visibles/Cube e Sphere. L'albero gerarchico dovrebbe risultare così: Root cube ellipsoid 3. Apri l'editore dei materiali usando il menù Project/Windows/Material Ciò aprirà una nuova finestra con molti pulsanti. Non ti preoccupare, la maggioranza contiene già dei valori utilizzabili, e dovrai solo definirne un paio per creare il materiale. 4. Digita 'shiny' per il primo materiale nel riquadro del nome. La proprietà splendente può essere adattata usando un paio di cursori: 5. Sposta il cursore Specularity al centro, così che la cifra mostrata alla destra corrisponda a circa 50 %. 6. Aggiusta Brillance a 80 %. La specularità crea punti di luce che rendono l'oggetto lucente. Più è alto il valore e più tagliente sarà il riflesso. Il secondo parametro di specularità definisce la chiarezza del riflesso. Il valore 25 % sarebbe appropriato, quindi non cambiarlo. Brillance è la caratteristica di specularità: più è alto il valore e maggiore sarà la definizione del riflesso che vedrai sulla superficie del materiale. La brillantezza al valore 0 produce una superficie opaca senza riflessi, come carta ruvida. Ora che le proprietà sono definite: 7. Premi il pulsante APPLY. Quesyto creerà il materiale 'shiny', aggiungerà cioè il materiale alla libreria dei materiali. Il secondo materiale sarà prodotto in modo simile. 8. Premi il pulsante RESET per rimuovere le precedenti caratteristiche del materiale. 9. Definisci il nome del secondo materiale come 'marble'. 10. Seleziona il menù dell'editore del manteriale Texture/Define 11. Seleziona il file 'r3D2:textures/marble1' con il selettore dei files. 12. Attiva entrambi i pulsanti Tile X ed Y. 13. Premi APPLY. Ora hai creato un secondo materiale, il marmo. Inclusa è una mappatura texture, che definisce la colorazione della superficie marmorea: se osservi la lunga colonna di pulsanti alla sinistra nell'editore del materiale, noterai che solo il pulsante Colour map è attivato. I pulsanti Tile sono stati attivati per mappare le direzioni x ed y della superficie dell'oggetto. A questo punto, hai creato sia le forme che i materiali, ma non c'è ancora connessione tra loro. Come abbiamo già detto, questa connessione è espressa usando l'albero gerarchico. Puoi procedere nel modo seguente: 14. Seleziona l'oggetto 'ellipsoid'. 15. Attiva la funzione Create/Boolean/OR. Questo creerà un nuovo livello gerarchico ponendo la sfera sotto questo. 16. Per essere chiari, seleziona ora la funzione Modify/Properties/Name e digita il nuovo nome 'shiny-sphere' per il nuovo livello. 17. Clicca due volte il nome shiny-sphere nella finestra di selezione. Vedrai l'oggetto originale 'sphere' nella finestra di selezione. 18. Attiva la funzione Create/Mapping/Default. La lista di selezione di Rewal 3D si aprirà, mostrandoti i nomi dei materiali contenuti nella libreria. 19. Clicca sul materiale 'shiny' e poi su OK. Ora hai definito il materiale della sfera. L'albero gerarchico è questo: Root cube shiny-sphere ellipsoid shiny(T) Il simbolo (T) dopo il nome 'shiny' indica il tipo di oggetto come mappante. Abbiamo scelto il tipo di mappatura predisposto (Default), poichè il materiale splendente non necessita di alcuna definizione geometrica di mappatura: non vi sono motivi disegnati sulla superficie della sfera che avremmo voluto posizionare con precisione. La texture marmorea è diversa, poichè potresti voler definire, per esempio, la larghezza o densità delle marezzature del marmo. Per applicare questa texture fai ciò che segue: 20. Seleziona il cubo, ed usa Boolean/OR per creare un nuovo livello che contenga il cubo. Modifica di nuovo il nome del nuovo livello con 'marble-obj'. 21. Apri il livello 'marble-obj' cliccando due volte sul suo nome nella finestra di selezione. 22. Seleziona la funzione Create/Mapping/Parallel. 23. Seleziona il materiale marmo e clicca su OK. 24. Questa volta una geometria di mappatura è necessaria. La funzione si aspetta che tu tracci un rettangolo nella finestra di visualizzazione. Definisci il rettangolo cliccando sull'angolo superiore sinistro e poi sull'inferiore destro. La dimensione del rettangolo definisce la dimensione della prima 'piastrella'. Ora la mappatura marmorea è stata creata; premi il tasto di ritorno per ridisegnare la vista. Nella finestra di selezione apparirà un nuovo nome, 'marble(T), ed un rettangolo tratteggiato sarà visibile nella finestra di visualizzazione. Nota: E' possibile controllare la visualizzazione a gabbia delle textures usando la funzione View/Drawing Set. Quindi se non vedrai inizialmente il rettangolo tratteggiato della texture, attiva questa funzione accertandoti che il pulsante Mapping sia selezionato. La struttura gerarchica dell'esempio è questa: Root marble-obj cube marble(T) shiny-sphere ellipsoid shiny(T) Esempio di supporto: Examples/Marble&Shiny. Ora è il momento per rendere la scena. Attiva la finestra di visualizzazione che vuoi usare per la resa, usando i tasti direzionali per scegliere una angolazione appropriata, seleziona View/Render/Settings e scegli il modo Lampless, accettando i settaggi di resa prmendo OK e poi selezionando View/Render/Window. Se hai compiuto correttamente le azioni precedentemente elencate, otterrai una immagine che mostra chiaramente le caratteristiche dei materiali. Spesso, usando una mappatura della texture parallela su di un cubo, l'immagine conterrà superfici dove il motivo della texture risulta strisciato sebbene ciò non sia stato voluto. Questo inconveniente può essere evitato modificando l'oggetto mappante in modo appropriato. Possiamo sperimentare questo aspetto nel modo seguente: 25. Seleziona l'oggetto mappante 'marble(T)' nella finestra di selezione. 26. Attiva la finestra di visualizzazione e premi i tasti DAM X per ottenere la vista frontale. 27. Seleziona Modify/Linear/Rotate e ruota il rettangolo della mappatura diciamo di 30 gradi. 28. Cambia la direzione del punto di vista per esempio usando DAM Y, e ruotando la mappa nuovamente. 29. Sperimentalmente aggiusta la densità del motivo marmoreo, attivando Modify/Linear/Size ed accrescendo la dimensione del rettangolo. Ora fai la resa di una nuova immagine: dovresti vedere dei risultati diversi. Dopo la rotazione del rettangolo di mappatura, esso non è più parallelo ai lati del cubo, quindi ogni lato riceve un diverso e gradevole colore del motivo. Modificheremo ulteriormente l'esempio per dimostrare come la gerarchia ed i materiali dipendono una dagli altri. Esegui i seguenti cambiamenti: 30. Usa la finestra di selezione per attivare il corrente livello 'marble-obj'. 31. Crea un nuovo oggetto, per esempio un cilindro, sotto a marble-obj. 32. Vai al livello 'shiny-sphere', seleziona shiny(T), e seleziona Modify/Structure/Paste. Ora la gerarchia sarà: Root marble-obj cube marble(T) cylinder shiny-sphere ellipsoid shiny(T) Esempio di supporto: Examples/Marble&Shiny2 Hai inserito un nuovo cilindro sotto il livello marble-obj, e dato che già esisteva una mappatura marmorea per quel livello, automaticamente il cilindro sarà fatto di marmo. Avendo mosso shiny(T) al livello Root produce un effetto tale da influenzare tutti gli oggetti della gerarchia. Il materiale di ellipsoid rimane lo stesso, ma il cubo ed il cilindro saranno resi con una mescolanza di marble e di shiny, che apparirà come un marmo molto lucido. 3.1.3 PROPRIETÀ OTTICHE Le caratteristiche e proprietà dei materiali del mondo reale possono essere analizzate meglio considerandole nelle classi appropriate. La classificazione può avvenire, per esempio: - Come è definito il colore - Cosa accade quando la luce colpisce la superficie del materiale - Cosa succede quando i raggi di luce attraversano il materiale. In Real 3D il colore è sempre incluso nell'oggetto e non nel materiale. Ciò è molto naturale, dato che nella realtà lo stesso materiale può avere colori diversi... Per la massima flessibilità, i materiali in Real 3D possono anche contenere diversi metodi di colorazione che regolano il colore predisposto dell'oggetto modificandolo. Questi metodi includono l'immagine mappata o la texture matematica, che saranno descritte dettagliatamente in seguito. La seconda importante classe comprende quelle caratteristiche che definiscono cosa succede quando un raggio luminoso colpisce la superficie del materiale. potrai definire questi parametri usando i cursori sulla destra nell'editore del materiale di Real 3D. Quando la luce colpisce la superficie, una parte la penetra, un'altra è assorbita, ed un'altra ancora ne è riflessa. FIGURA T3-1: Componenti della luce Assorbita, Penetrante e Riflessa. Innanzitutto il colore stesso dell'oggetto definisce la quantità di luce assorbita: più il colore è scuro e maggiore è l'assorbimento. Cosa accade al resto della luce è definito dal valore di Trasparenza. Più questo è alto, e più luce penetra la superficie. La massima quantità di penetrazione dipende dall'angolo con cui la luce colpisce la superficie. Se la luce è perpendicolare alla superficie, allora la penetrazione sarà completa. Più l'angolo diminuisce e più luce sarà riflessa. Come sappiamo dalle leggi ottiche, se la luce viaggia da un mezzo otticamente più denso ad un materiale più sottile (p.e. dall'acqua all'aria), c'è un angolo di riflessione totale per cui tutta la luce viene riflessa, indipendentemente dalla trasparenza dei materiali. Così la luce non assorbita è divisa in due componenti. Il comportamento di entrambi è definito dalla proprietà di Lucentezza. Se Brillance è zero, la superficie sarà opaca e diffusa, ed ogni raggio riflesso/rifratto è diretto casualmente nell'ambiente circostante. Ciò significa che nessuna riflessione di altri oggetti può essere vista sulla superficie. Se Brillance è al massimo 100 % la superficie si comporterà come uno specchio, mostrando immagini nitide degli oggetti circostanti. Se anche Trasparency è alta, allora otterrai un vetro trasparente. FIGURA T3-2: Il percorso della luce in differenti materiali Combinando i valori estremi della brillantezza e della trasparenza otterremo i seguenti risultati: Trasparency 0% 100% Brillancy 0% Vetro Opaco opaco normale Brillancy 100% Vetro Trasparente Specchio Quando crei materiali trasparenti, puoi anche usare l'indice di rifrazione per mezzo del cursore Refraction. Più alto è il valore, minore la rifrazione. Altre classi di superfici sono: - Specularità: la definizione dei punti di luce creati dalle sorgenti luminose. - Lucentezza speculare: l'intensità dei riflessi creati dalle sorgenti di luce. - Ruvidità: definisce il livello di ruvidità molecolare della superficie. L'ultimqa classe è composta dalle proprietà che definiscono cosa accade dentro al materiale quando la luce lo attraversa. Entrambi gli aggiustamenti della Torbidità appartengono a questa classe. Turbidity controlla il grado di 'nebbiosità' dei materiali. Per esempio la potrai usare per simulare fenomeni atmosferici quali: nebbia, bruma e nubi, ed anche per l'acqua o per un vetro non completamente trasparente. La saturazione della torbidità ti permette un controllo accurato, poichè definisce la relazione tra l'effetto di torbidità e la distanza che la luce percorre nel materaiale torbido. Più è alto il valore, e più facilmente l'effetto reagisce alle variazioni della distanza, mentre un valore di saturazione 0 produce torbidità 'piatta'. Per fare un esempio di queste proprietà, creiamo una nube di nebbia ed una sfera di vetro: 1. Apri l'editore del materiale. Chiama il primo materiale 'fog'. 2. Non ci sono riflessioni su una superficie nebbiosa, quindi lascia la specularità a 0. 3. In una superficie di una nube non c'è un diffuso e chiaro confine. Perciò setta Brillance al 100%. 4. Non esiste una soglia di resistenza alla penetrazione della luce. Quindi setta Trasparency a 100%. 5. E' meglio evitare forti rifrazioni in questo caso, per cui setta Refraction a 100%. 6. Stabilisci Turbidity a 10%. Anche il valore predisposto a 25% è appropriato. 7. Attiva il pulsante Smooth; questo consente alla luce di penetrare meglio la nuvola. 8. Premi APPLY. 9. Poi crea il materiale vetro: cambia il nome a 'glass'. 10. il vetro riflette sempre la luce, quindi disattiva il pulsante Smooth. 11. Aggiusta la specularità al 75% per ottenere bei punti luce. 12. Setta Refraction a 70% per la rifrazione del vetro. 13. Risetta Turbidity a 0% per ottenere il vetro trasparente. 14. Ora il vetro è pronto, quindi premi APPLY. 15. Per visualizzare le proprietà di questi materiali, abbiamo bisogno di qualcosa per lo sfondo, perciò creeremo un altro materiale: una texture a scacchi. Prima premi RESET per liberarti delle vecchie definizioni, e poi digita il nome 'checker'. 16. Definisci il nome della texture, r3d2:textures/bluewhite. Dopo il RESET del materiale, Colour map è attivata automaticamente. 17. Attiva TileX e TileY. 18. Premi APPLY. 19. Ora i materiali sono pronti, quindi puoi chiudere l'editore dei materiali. 20. Crea un livello (Create/Structure/Level) e chiamalo 'wall'. 21. Crea un ampio rettangolo (Create/Visibles/Rectangle) che riempia la vista. 22. Seleziona Create/Mapping/Parallel, scegliendo il materiale a scacchi dalla lista dei materiali, e clicca OK, formando un piccolo rettangolo di mappatura parallela. 23. Torna al livello Root della gerarchia, e crea un nuovo livello 'Fog'. 24. Crea una sfera bianca (Create/Visibles/Sphere). 25. Seleziona Create/Mapping/Default, attiva il materiale fog e clicca OK. 26. Torna al livello Root della gerarchia e crea un nuovo livello 'glassball'. 27. Ctrea un'altra sfera bianca di fianco alla sfera di nebbia. 28. Seleziona Create/Mapping/Default, scegli il materiale glass dal selettore e clicca su OK. 29. Ora il modello è pronto. Trova la vista dall'alto ed assicurati che il rettangolo sia dietro alle due sfere. Poi cerca una buona posizione di visualizzazione con i tasti cursore, così che potrai vedere il rettangolo attraverso le sfere. 30. Apri il requester dei settaggi di resa (View/Render/Settings). Setta il modo a Lampless. Nel modo Environment, la resa ignora le trasparenze per poter produrre l'immagine più rapidamente. Clicca OK, per rendere l'immagine. Esempio di supporto: Examples/Materials/gas&glass. 3.2 MAPPATURA DELLE TEXTURES 3.2.1 INFORMAZIONI GENERALI In Real 3D le immagini possono essere usate come parametri per i materiali. Qesta tecnica è chiamata mappatura di texture, e le immagini stesse sono chiamate textures. Un tipico esempio di mappatura della texture è la modellazione di un disco floppy con etichetta. Dopo aver creato la forma del dischetto blu, è necessario incollare l'etichetta bianca su di esso. Questa sarà realizzabile in un programma grafico per poi essere proiettata come mappatura parallela sul disco. Per usare la mappatura texture hai bisogno: - Una texture: qualsiasi immagine IFF digitalizzata/disegnata ed anche una immagine Targa a 24/32 bit creata da Real 3D può essere usata. - Un materiale di riferimento alla texture. Esso contiene il nome della texture ed altre caratteristiche desiderate. - Una mappatura di riferimento del materiale. La mappatura può essere realizzata con il menù Create/Mapping. - Un oggetto a cui il materiale viene applicato usando la mappatura. Come è stato descritto precedentemente in questa sezione, l'oggetto e la mappatura devono essere posti allo stesso livello gerarchico. Il capitolo 3.1.2 ha già dimostrato come è possibile creare un oggetto mappato con una texture. Nei seguenti paragrafi, considereremo diversi aspetti della mappatura con maggiori dettagli. 3.2.2 TEXTURES E' possibile usare files IFF da 1 a 24 bit o immagini true color formato Targa come textures. Il formato, la dimensione e profondità dell'immagine più appropriati dipendono dall'applicazione che se ne vuol fare. Gli esempi seguenti illustrano alcune regole di base per la corretta scelta del tipo di texture. - Textures a 24 bit sono solitamente necessarie solo quando si vogliono esportare grafiche a 24 bit. Usare immagini con minore profondità risparmia molta memoria ed accellera i tempi di resa. - La funzione Gradiente può essere utilizzata per ottenere risoluzioni del colore a 24 bit con profondità minori della texture. Per esempio per ottenere un gradiente dal blu al bianco in 24 bit: puoi usare due pixel, una immagine profonda un bit, (che contiene solo un pixel blu ed uno bianco), e graduare la texture ('grade'). Ciò risparmia memoria, perchè tale immagine occupa solo un paio di bytes di memoria, mentre l'immagine corrispondente a 24 bit potrebbe richiedere alcune centinaia di kilobytes di RAM. Ciò non di meno, la funzione del gradiente della texture richiede molto tempo, ed a volte una immagine a 24 bit può essere più veloce nella resa. - Moduli geometrici regolari possono essere rappresentati con una texture a bassa risoluzione. Per esempio, per un modulo a scacchi, hai bisogno di solo 4 pixels, una texture profonda 1 bit ripetuta (tiled). La fumzione Tiling, ripetendo lo stesso motivo, è ottimale in situazioni come questa. - Se stai creando una animazione in cui ti avvicini ingrandendo una superficie texture mappata, avrai probabilmente bisogno di un'alta risoluzione della texture per evitare gli effetti chiaramente visibili del pixel. Anche in questo caso la funzione gradiente diviene utile. 3.2.3 MATERIALI MAPPATI TEXTURES In Real 3D la mappatura texture è una caratteristica del materiale. Ogni materiale della libreria può contenere una mappa texture. Se vuoi applicare mappe multiple ad un oggetto, puoi creare diversi materiali e collegarli tutti allo stesso oggetto. Ciò sarà dimostrato poi nel paragrafo 'Materiali Multipli'. Un materiale può usare una texture per definire caratteristiche diverse indipendenti una dall'altra. Per esempio una texture può agire come mappa Bump ed allo stesso tempo come mappa colore. Vi sono sette modi diversi per l'uso della mappatura della texture: - Mappatura colore: mappa il colore della texture per il materiale. - Mappatura Bump: usa il componente rosso della texture come informazione locale dell'altezza quando ombreggia la superficie del materiale. - Mappatura della trasparenza: usa il componente verde della texture per definire la trasparenza del materiale. - Mappatura della lucentezza: usa il componente blu della texture per definire la brillantezza del materiale. - Mappatura delle ombre: filtra il colore originale dell'oggetto con i colori della texture. - Mappatura Clip: può essere usata per tagliare/sezionare (clip/cut) la superficie. - Mascheratura prospettica: definisce la visibilità/prospettiva spaziale del materiale usando la forma della texture come maschera. Nota: La mappatura Clip è veramente una proprietà del materiale. Non rimodella l'oggetto. Semplicemente la funzione di resa tratta le aree mappate clip come fossero materiali completamente trasparenti. La mappatura Clip generalmente non opera correttamente in un ambiente con modo di resa in cui la trasparenza generalizzata non possa essere simulata convincentemente. 3.2.4 MAPPATURA Matematicamente, il termine 'Mappatura' significa una regola che determina come unire ogni punto di uno spazio esattamente ad una controparte in un altro spazio. Real 3D usa questo tipo di regola per definire come un punto nello spazio assoluto 3D viene mappato nello spazio 3D del materiale, dove vengono stabilite le caratteristiche dei materiali. Il dato che definisce la regola è chiamato mappatura. Puoi creare mappature usando le funzioni di menù Create/Mapping. Vi sono cinque mappature di base disponibili: - Default (preordinata) - Parallel - Cylinder - Sphere - Disk Ogni mappatura compie una trasformazione delle coordinate 3D in modo naturale. Per esempio il modo default lascia le coordinate immutate mentre la Sphere mappa le normali coordinate 3D alle coordinate polari (angolo orizzontale, angolo verticale, raggio). Ogni mappatura (esclusa la Default) include una geometria (o forma), che visualizza e definisce come la trasformazione delle coordinate avviene. Tu definisci la geometria creando la mappatura, e dato che Real 3D memorizza le mappature nel suo albero gerarchico, le puoi facilmente modificare (ridimensionare, muovere, etc.) o persino animarle. Le mappature sono configurabili usando il trasformatore Mappature (Mapping handler) dall'editore dei materiali. Per esempio, una mappatura cilindrica può essere modificata ad una stile a spirale attivando la trasformazione predefinita Mapping/Tilt. Nota: Sebbene le proprietà geometriche delle mappature siano usate principalmente con la mappatura texture, Real 3D usa le mappature come un modo per collegare un materiale ad un oggetto. La trasformazione delle coordinate di una mappatura potrebbe non essere usata affatto. 3.2.5 MAPPATURA SETTORIALE A volte usando una mappatura texture cilindrica, sferica o disco, potrebbe essere desiderabile che ciò avvenga in un settore e non per i completi 360 gradi. L'esempio seguente illustra come fare ciò, ed allo stesso tempo, mostra come usare un livello inferiore di Real 3D per definire le mappature. Supponiamo che dobbiamo creare una lattina cilindrica, coperta per un terzo da una etichetta. Le seguenti azioni ci permetteranno di raggiungere lo scopo desiderato: 1. Crea la lattina usando la funzione Create/Visibles/Cylinder. 2. Usa Create/SectorsCylinder per definire un settore cilindrico, usando lo stesso asse della lattina. Posiziona il settore in modo che corrisponda all'area dell'etichetta sulla superficie della lattina. 3. Accertati che il settore sia selezionato ed usa la funzione Modify/Properties/Attributes; Real 3D aprira un requester degli attributi. Attiva il pulsante Mapping e clicca OK. 4. Ora apri l'editore dei materiali e crea un materiale con un colore appropriato. Attiva Colour map e definisci il nome dell'immagine. Chiama il materiale 'label', e premi APPLY. Quindi chiudi l'editore dei materiali. 5. Assicurati che il settore cilindrico sia ancora selezionato e scegli il menù Modify/Properties/Tags. Quando si apre il requester, clicca il pulsante Add. Quindi digita le quattro lettere maiuscole SMAT, poi clicca nello spazio vuoto e digita infine il nome del materiale, 'label'. In altri termini, digita la frase 'SMAT label'. E' importante che la frase sia esatta, includendo i caratteri maiuscolo/minuscolo, se no il materiale non sarà trovato. Poi clicca OK. 6. Ora la scena è pronta per essere resa; seleziona il modo ambiente di resa ed avvia l'operazione. Esempio di Supporto: Examples/Materials/sector_mapping 3.2.6 MAPPATURA SPLINE In aggiunta alle mappature di base e settoriali presentate precedentemente, Real 3D offre un metodo avanzato per usare mappature dello spazio con il parametro B-spline cubico. Questa tecnica significa che puoi usare una superficie cubica B-spline come mappatura per sè stessa, così che la mappatura segue automaticamente la forma della superficie B-spline. Quando si usa questo metodo di mappatura, il modello texture segue le deformazioni della superficie in modo naturale, indipendentemente da quanto la superficie sia piegata o deformata. Una buona illustrazione potrebbe essere lo srotolamento di un rotolo di carta quadrettata in una animazione: se il rotolo di carta è modellato usando la superficie B-spline cubica, ed il modello è una texture spline colore mappata, allora l'effetto desiderato sarà ottenuto. Per usare la mappatura Spline: 1. Crea un oggetto usando una superficie B-spline cubica. 2. Apri l'editore dei materiali e creane uno che abbia la desiderata texture mappata. Seleziona il tipo di mappatura della texture appropriato, p.e. colour mapping. 3. Attiva il pulsante Spline map, e premi APPLY per creare il materiale. 4. Usa Create/Mapping/Default e genera una mappatura su una vista. Puoi usare Default o qualsiasi altra mappatura, dato che la mappatura spline preclude la geometria di mappatura originale. 5. Collega assieme la mappatura e l'oggetto nella gerarchia a meno che tu non lo abbia già fatto, per esempio facendo una selezione multipla di entrambi ed usando Create/Boolean/OR. 6. Rendi la scena usando il modo ambiente di resa. Accertati che il settaggio B-Spline->Phong non sia attivo: la mappatura spline non opera con superfici ombreggiate Phong. Nota: Puoi usare la mappatura spline con: bumps, altre caratteristiche come i colori, la ripetizione (tiling) ed altre opzioni di mappatura. Con la ripetizione, puoi usare le due aree più a destra dei pulsanti S-map uvwh dell'editore dei materiali per dimensionare la ripetizione: p.e. un valore 0.25 riproduce quattro immagini sulla superficie. Esempio di Supporto: Examples/Materials/spline_mapping 3.2.7 FORMATO DELLA STRINGA INDICE Real 3D supporta l'indice automatico dei nomi delle textures. Questa proprietà può essere usata per creare animazioni delle textures. In questo paragrafo il sistema indicizzato è descritto nei dettagli. Vi sono diversi punti in Real dove un indice deve essere incluso nel nome di un file, p.e. una sequenza di immagini di sfondo. Quando un tale elenco è necessario, viene incluso nel nome usando Index Format String. L'inclusione di questa stringa non solo indica che un indice deve essere usato, ma anche quale formato deve essere attivato per questo elenco, e dove deve essere posto nel nome. Per chi conosce il linguaggio di programmazione 'C' questa stringa usa le stesse convenzioni della funzione di 'C' 'sprintf'. Per la maggioranza degli indici, l'uso della seguente informazione dovrebbe essere sufficiente: '%' Inizio della stringa formato Quindi è seguito o no da: '-' Per specificare se l'indice debba avere una giustificazione a sinistra. 'Field width specifier' se l'indice ha meno caratteri che l'ampiezza dell'area, allora sarà allineato sia sulla destra che sulla sinistra se '-' è usato. Se questa ampiezza viene specificata con uno 0 iniziale allora il carattere di allineamento sarà zero, altrimenti sarà uno spazio. La stringa formato finirà con il carattere di conversione 'd'. Questo per indicare che l'indice deve essere in formato decimale. Esempi: Se la variabile dell'indice è 3: File_Name_%d produce: File_Name_3 File_Name_%2d produce: File_Name_3 File_Name.%-2d.IFF produce: File_Name.3.IFF File_Name.%03d produce: File_Name.003 3.2.8 TEXTURES ANIMATE Creando animazioni, potrebbe essere anche desiderabile animare le textures invece di usare delle mappature statiche. P.e. si può animare una passeggiata in una stanza dove un televisore acceso mostra differenti immagini; in questo caso lo schermo televisivo dovrebbe contenere una serie di textures mappate con vari colori. Real 3D offre strumenti flessibili per generare tali effetti. Per poter creare una texture animata, fai il seguente: 1. Crea la sequenza delle textures. P.e. realizza dieci immagini, e salvale con lo stesso nome e con un numero indicizzato crescente. La convenzione per l'indice può essere scelta liberamente; puoi trovare le regole esatte nel paragrafo precedente. Il nome deve essere lo stesso per tutte le immagini. Pe. 'txr0', 'txr1' 'txr2', etc. 2. crea un materiale, e digita il nome della texture che hai creato senza indice nel riquadro del nome della texture (p.e.'trx'). Aggiungi la stringa del formato dell'indice dopo il nome come illustrato precedentemente. P.e. la definizione del nome della texture può essere 'trx%d' 3. Seleziona l'operatore dell'indice per il materiale usando l'editore del materiale. L'operatore predisposto va attraverso la texture, aumentando l'indice della texture immagine per immagine. Se vuoi utilizzare animazioni di texture cicliche, invece di avere un nuovo indice per ogni nuova immagine, dovresti settare il parametro b come quantità delle textures (p.e.10). 4. Usa il materiale nella tua animazione. Invece di usare l'operatore ciclico, puoi usare l'operatore pingpong, che va avanti e indietro nella sequenza. Puoi anche definire la regola che stabilisce quale texture usare per ogni valore frame/time utilizzando gli operatori RPL/Formula, come illustrato nel paragrafo 'Operatori Procedurali in questa sezione e nella sezione di riferimento. Utilizzando quelle alternative, puoi riferirti o al tempo di animazione globale/locale o al conteggio dei fotogrammi. L'esempio contenuto /Examples/Materials/Water illustra l'uso di una texture bump animata per simulare le onde. Utilizza l'operatore predisposto dell'indice con un cicclo di 30 immagini, e qindi, se vuoi creare una animazione ciclica, dovresti settare il pulsante della risoluzione della finestra di animazione ad un multiplo di 30 immagini: 30, 60, 90 etc. 3.3 PROPRIETÀ AVANZATE DEI MATERIALI 3.3.1 MATERIALI MULTIPLI Questo paragrafo illustra una parte molto importante dell'operatore materiali di Real 3D, cioè l'uso di materiali multipli per un oggetto. Veramente, un esempio precedente ha usato questo metodo illustrando la connessione tra la gerarchia ed i materiali (shiny_marble). Utilizzare materiali multipli è molto facile. Devi solo creare l'oggetto ed i materiali che vuoi applicare all'oggetto. Poi crei un livello gerarchico, metti l'oggetto sotto a questo e crei quante mappature sono necesarie sotto lo stesso livello. P.e.: multimatobj myobject colormat(T) bumpmat1(T) bumpmat2(T) topmat(T) Diversi materiali possono essere usati per definire diverse caratteristiche di un oggetto. P.e. un materiale include una texture colorata per definire il colore, un materiale con una densa texture bump definisce la ruvidità della superficie, ed un materiale con una texture bump a scala ingrandita per definire larghe ammaccature. Secondariamente, diversi materiali possono essere usati per definire le caratteristiche di aree specifiche di un oggetto. P.e. una sfera può avere un polo fatto di legno e l'altro di marmo. Spesso, quando materiali multipli vengono utilizzati, le definizioni non si sovrappongono, ed è facile prevedere il risultato. P.e. se mappi due texture colore parallele e non ripetute, diciamo due etichette, ad una scatola, così che le etichette non si sovrappongano, otterrai due aree separate colorate sulla superficie della scatola. Una caso più interessante accade quando i materiali si sovrappongono. Di norma se due mappature definiscono due valori diversi per una caratteristica di un materiale in un punto nello spazio, Real 3D usa una media dei due valori per quel punto. In altre parole, i materiali vengono automaticamemnte miscelati. Diverse definizioni Bump sono: - Una texture bump bit-mappata: immagine + mappa Bump - Una texture matematica bump: operatore Bump = RPL/Formula/Inclusa L'editore del materiale include alcune funzioni con cui puoi controllare la mescolanza dei materiali più accuratamente. Innanzitutto, il cursore Effect offre un aggiustamento globale che determina quanto il materiale influenzi gli oggetti a cui è applicato. P.e. se applichi il marmo ad un oggetto ed il marmo ha un valore di Effect a 50%, otterrai una mescolanza del materiale marmo predefinito. Quando i materiali sono mescolati, i valori Effect sono utilizzati come misure che definiscono quanto grande debba essere la porzione di ogni materiale che deve essere miscelata. Secondariamente gli operatori prospetici possono essere utilizzati come ordinatori spaziali dei valori. Ciò significa che l'effetto di un materiale può variare nei diversi punti dello spazio 3D. P.e. puoi creare una macchia di marmo in un oggetto di legno in modo che il marmo si mescoli gradualmente al legno. Uno degli operatori prospettici più utili è il Local. Misura l'effetto del materiale in modo che sia massimo al centro della mappatura utilizzata (p.e. il centro di mappatura di una sfera oppure l'angolo superiore sinistro di una mappatura parallela). L'effetto massimo, definito dal cursore, svanisce entro una certa distanza. Di norma questa distanza è definita dal raggio della mappatura, ma può essere modificata definendo un valore diverso da 0 in a. Altri operatori prospettici sono descritti nella sezione di riferimento. Come esempio, possiamo creare una sfera 'ammaccata' il cui polo nord è di legno, ed il polo sud di marmo. 1. Crea un nuovo livello. 2. Crea una sfera sotto a quel livello. 3. Apri l'editore dei materiali. 4. Prima crea il materiale 'ammaccato': definisci il nome 'bumpy', definisci la texture r3d2:bumpamps/irregular, disattiva la mappatura Color ed attiva quella Bump, setta l'altezza delle ammaccature a 5% ed aggiusta la specularità al 50%. Premi APPLY. 5. Crea il legno: premi RESET, quindi definisci il nome wood, texture r3d2:textures/wood1, attiva i pulsanti Tile, e setta ancora la specularità al 50%. Quindi clicca il pulsante degli operatori Scope sino a che mostra Local. Premi APPLY. 6. Crea il marmo: NON risettare l'editore dei materiali, cambia semplicemente il nome wood in marble e cambia il nome della texture r3d2:textures/marble1. Premi APPLY. Ora i materiali sono pronti, quindi puoi chiudere l'editore dei materiali. 7. Prima crea il materiale per la mappatura delle ammaccature: seleziona il menù Create/Mapping/Sphere, seleziona bumpy e clicca OK, clicca al centro della sfera e dimensiona l'ampiezza della texture. Questa potrà corrispondere alla dimensione della sfera originale. In questo caso non è importante. 8. seleziona Create/Mapping/Sphere nuovamente, seleziona wood, e forma la mappatura in modo che il polo nord sia al centro della sfera mappante. La dimensione dovrebbe essere circa il doppio della sfera originale. 9. Seleziona Create/Mapping/Sphere, seleziona marble, e forma una sfera mappante di dimensioni uguali alla precedente attorno al polo sud. 10. Rendi l'immagine nel modo ambiente. Esempio di Supporto: Examples/Materials/Localscope. La funzione di mascheratura Scope offre un modo facile di definire la distribuzione prospettica. Puoi scegliere una immagine per definire quali parti dello spazio sono influenzati dal materiale; l'esempio successivo, scrivere lettere 'rozze' su una superficie opaca, lo illustra. 1. Inizia l'esercizio scrivendo delle parole bianche su uno sfondo nero in un programma grafico. Salva l'immagine o una appropriata parte come pennello. 2. Apri l'editore dei materiali di Real 3D e digita il nome di un materiale 'rough'. 3. Definisci il nome della texture con quello del pennello (o immagine) del testo creato prima. 4. Disattiva il pulsante Colour map. 5. Attiva il pulsante per la mascheratura Scope. 6. Attiva il pulsante Transp.col, e setta il colore di trasparenza a nero usando i pulsanti Transp.B, Transp.R e Transp.G tutti a 0. Ciò significa che non mapperai il colore nero dello sfondo del testo. 7. Aggiusta la ruvidità (roughness) al 30% e premi APPLY. 8. Crea un rettangolo in una finestra di visualizzazione. 9. Crea una mappa parallela per il rettangolo con dimensioni e posizione coincidenti al rettangolo. 10. Rendi l'immagine nel modo ambiente. Esempio di Supperto: Examples/Materials/Scopemasking 3.3.2 OPERATORI PROCEDURALI Ogni fila di operatori dell'editore dei materiali di Real 3D ne include quattro tipi principali: operatore Default, operatori interni addizionali, operatore RPL ed operatore formula. Gli ultimi due, RPL e formula, rendono possibile all'utente di definire facilmente e rapidamente nuovi operatori. P.e. è possibile definire un numero illimitato di textures matematiche di colore. L'operatore Formula si basa sulla parola EVAL di RPL. Usando l'operatore Formula puoi digitare direttamente una formula che definisce le caratteristiche desiderate da un certo gruppo di parametri; questi possono includere p.e.: coordinate dello spazio materiale x, y e z. E' possibile usare tutte le usuali funzioni matematiche in queste formule; la lista esatta è fornita nella documentazione RPL EVAL. E' possibile creare mappe di textures bump usando funzioni trigonometriche. Il seguente esempio di una superficie mappata bump dove i rigonfiamenti sono anche dipendenti dal tempo, dimostra questo: 1. Apri l'editore del materiale e chiama il nuovo materiale wave (onda). 2. Setta l'operatore Bump a Formula e digita la seguente funzione nel riquadro dell'operatore: bx=sin(3*sin(5*x)+y+T*3.14), by=sin(x+T)*3.14)*cos(5*x*y) 3. Aggiungi un po' di specularità al materiale e premi APPLY. 4. Crea un rettangolo blu e crea una mappatura parallela che si riferisce al materiale wave. 5. Fai la resa di una immagine o di un'animazione. Esempio di Supporto: Examples/materials/mathbumps Gli operatori RPL offrono un modo persino più flessibile per espandere le caratteristiche del materiale. In questo caso, la stringa di comandi associata all'operatore RPL può contenere qualunque espressione RPL, inclusa la parola EVAL. Le espressioni codificate RPL sono più veloci delle espressioni Formula, ma richiedono una maggiore conoscenza RPL. L'espressione RPL usata può anche essere una completa procedura RPL definita nell'ambiente di controllo RPL. Per maggiori dettagli vedi la documentazione RPL. I successivi esempi illustrano l'uso degli operatori formula. Esempio: y=y+10*sin(4*a*x/100) where a=6.28 Quando usata con un file di una immagine larga 100 pixels per essere mappata sulla superficie, questa formula produce una serie di onde sinoidali verticali. Il parametro a è usato per convertire x in radianti, così che usando la costante 4 si producono quattro cerchi di onde sinoidali. La costante 10 nell'espressione rende la deviazione sinoidale di +/- 10 pixels. Esempio: s=25 Questo combina 25% delle caratteristiche del materiale con le proprietà esistenti. Esempio: s=x Quando usato con un file texture largo 100 pixels applicherà l'immagine in modo che il suo effetto sarà più forte per l'intera ampiezza dell'immagine. Anche l'operatore prospettico (scope) è il posto più appropriato dove assegnare valori procedurali per le Variabili del Materiale che controllano le caratteristiche fisiche di base del materiale. Esempi: br=100.0*x Quando è usata con una mappatura texture parallela e nessun file di immagine accresce la brillantezza linearmente lungo la larghezza del rettangolo mappante. Esempio: bx=sin(5*a*x), by=sin(2*a*y) when a=6.28 Applica onde sinoidali nelle direzioni x ed y sulla superfice. Il paraetro a è usato nuovamente come 2*pi per convertire x & y in radianti così che le costanti 5 & 2 producano 5 creste lungo Y. Dato che x & y non sono normalizzati, queste espressioni producono solo risultati corretti quando usati senza un file texture. Esempio: R=255*x, G=255*y, B=255*z L'espressione sovrastante sostituisce qualsiasi componente di colore con un valore Rosso, che si accresce lungo l'asse x della texture, ed un valore Verde (G) che si accresce lungo l'asse y. Il valore Blu è derivato dalla coordinata z. Usando queste espressioni produrrà un cambiamento di colore della superficie relativamente alla sua posizione nella texture. La variabile dimensionale può essere usata per costringere una formula alla dimensione di una texture, come nell'esempio seguente: Esempio: R=if(z<=sz,255,0) Questo sostituisce la componente rossa della superficie con un valore di intensità massima, se il punto sulla superficie è all'interno della dimensione della texture. Esempio: i=F/a when a=3 L'indice avanza ad un terzo della velocità dell'Indice Globale di Animazione. Esempio: i=10*t%5 %-modulus function Cambiando il tempo locale 't' da 0.0 a 1.0 l'indicew cambierà da o a 4 due volte. 3.3.3 MATERIALI NON OMOGENEI Lafunzione prospettica può essere usata per definire materiali non omogenei. Ci sono due modi per farlo: usando l'operatore prospettico Formula/RPL con una espressione RPL, che definisce direttamente le caratteristiche desiderate, oppure usando materiali multipli misurati prospetticamente, nel qual caso il processo di miscelazione produce risultati differenti in diverse posizioni dello spazio. Un esempio del metodo formula è un materiale lucido con un operatore prospettico formula ed una formula sb=50*(sin(x)+1) Questa formula modifica la lucentezza speculare; la funzione trigonometrica seno produce la ripetizione orizzontale di un modulo di luce ad onda. Come esempio del secondo metodo, mescolando due materiali, modelleremo un pianeta con atmosfera. Lo scopo è di far risplendere l'atmosfera quando il sole la attraversa. 1. Apri l'editore dei materiali. Prima crea un materiale per la superficie del pianeta: chiamalo 'planet' setta la mappa texture r3d2:textures/planet, e premi APPLY. 2. Crea un materiale per il cielo stellato: cambia il nome del materiale a 'space' e cambia il nome della texture r3d2:texture/space. Attiva l pulsanti TileX/TileY, e setta le opzioni Unshaded, perchè l'immagine sarà usata come un piano nero privo di ombre. Premi APPLY. 3. Crea il materiale gassoso: premi RESET per cominciare da capo, chiama il materiale gas, attiva il pulsante Smooth per eliminare le riflessioni della superficie, setta Trasparency, Brillancy e Reraction a 100%, Turbidity a 10%, Turbid Saturation a 50%, e specularità a 100%. Premi APPLY. 4. Crea l'elemento gassoso rilucente modificando il materiale precedente: cambia il nome a glow, ed aggiusta Specular Brightness a 10%. Quindi seleziona l'operatore prospettico Local, e poi APPLY per inserire il nuovo materiale nella libreria dei materiali. 5. Ora puoi chiudere l'editore dei materiali, e cominciare a costruire gli oggetti. Prima crea un livello e chiamalo 'star plane'. Crea un rettangolo sotto al livello, e crea una mappatura parallela, che si riferisce al materiale dello spazio. Il rettangolo texturizzato dello spazio agirà come piano di sfondo, quindi posizionalo dietro al resto della scena e dimensionalo conformemente. Probabilmente è necessario usare il pulsante Modify/Properties/Attributes/Infinite per rendere il piano infinito. 6. Ritorna al livello 'root' della gerarchia e crea un livello chiamato planet. Crea una sfera sotto al livello planet. Poi trova una vista dall'alto del pianeta e crea una sfera mappante che si riferisce al materiale planet. 7. Torna al livello root e crea un nuovo livello chiamato 'atmosphere'. Sotto a quel livello, crea un'altra sfera, bianca o celeste chiara, attorno alla sfera planet, leggermente più grande del pianeta. Poi definisci due sfere mappanti, una riferita a gas e la seconda riferita a glow. Entrambe le mappature devono corrispondere esattamente alla posizione e dimensione dell'atmosfera. 8. Crea una sorgente luminosa tra il piano stellare ed il pianeta. 9. Aggiusta la cinepresa in modo da visualizzare il pianeta con il piano stellato come sfondo. Inoltre assicurati di vedere la sorgente luminosa attraverso l'atmosfera. 10. Apri il requester per il settaggio della resa. Seleziona il modo di resa Normal, setta Mat.samples ad 1 e premi OK. Quindi rendi l'immagine. La struttura gerarchica della scena è: Root starplane rectangle space(T) planet ellipsoid planet(T) atmosphere ellipsoid gas(T) glow(T) lamp E' importante che il pianeta si trovi sopra all'oggetto atmosfera nella scala gerarchica, perchè i due si sovrappongono. L'oggetto pianeta deve sostituire l'atmosfera, e non il contrario. Più è alta la posizione gerarchica di un oggetto, e più alta è la sua priorità. In questo esempio, lo splendore speculare del gas si dissolve verso il bordo esterno dell'atmosfera a causa della proprietà dell'operatore prospettico Locale. Ciò che resta è l'altro gas non risplendente. il valore Mat.sampling 1 era molto importante: istruisce Real 3D a considerare il materiale non solo sulla superficie dell'atmasfera, ma anche al suo interno. Quindi la natura non omogenea del gas è verificata e l'effetto conforme è generato. Nota: L'uso di un valore diverso da zero per Mat.sampling è valido solo per materiali trasparenti. Esempio di Supporto: Examples/Materials/Planet. 3.3.4 MAPPATURA E GERARCHIA La posizione gerarchica delle mappature richiede qualche considerazione. Quando si creano certi effetti di animazione (p.e. la metamorfosi dei materiali), le mappature devono essere raggruppate usando la gerarchia. E' già stato detto che la mappatura è connessa ad un materiale solo per quegli oggetti che si trovano nello stesszo livello gerarchico della mappatura stessa. Come puoi connettere un gruppo gerarchico di mappature in un oggetto? Questo può essere fatto usando il 'Mapping flag' della funzione Modify/Properties/Attributes. Ovunque nella gerarchia puoi sostituire una mappatura con un livello o una connessione simbolica. Il livello può contenere le reali mappature o la connessione può riferirsi alla vera mappatura. Comunque Real 3D cerca attraverso l'intera gerarchia regredendo e verificando tutti gli oggetti contrassegnati da una texture. Se viene trovato un livello un livello o una connessione senza mappatura, la ricerca non procede sotto a questa. Tutte le mappature trovate in questo modo influenzeranno il risultato. Come esempio, considera la seguente semplice gerarchia di un gruppo di texture map animate: Root candlestick motion_mat(T) mappings(T) wood(T) marble(T) level(M) line Esempio di Supporto: Examples/Mayterials/moving_texture 3.3.5 ALCUNI ESEMPI DI METAMORFOSI DEI MATERIALI Gli esempi seguenti possono aiutare a chiarire come i materiali possono trasformarsi. Esempio 1: metamorfosi del materiale usando l'operatore interno 'Temporal Scope'. Questo operatore può essere usato per modificare l'area dell'effetto (scope) del materiale da un valore ad un altro: questi sono definiti usando i riquadri di Scope a & b. Il riquadro a definisce quanto fortemente il materiale influenza l'oggetto all'inizio del tempo ed il b quanto lo influenza alla fine dell'animazione. P.e. se vuoi creare una animazione in cui una sfera di legno si trasforma in una di marmo, puoi creare due materiali in modo che il livello dell'effetto del primo materiale cominci da zero e divenga più forte, mentre l'effetto del secondo materiale si indebolisce sempre di più. Per realizzare questo: 1. Crea due materiali chiamati 'wood' e 'marble'. Usa mappatura colore e texture appropriate in modo da poter visualizzare quando il materiale si trasforma dal legno al marmo. Setta il pulsante ciclico Scope di entrambi i materiali a 'Temporal' ed usa i seguenti valori nei riquadri a e b: Materiale a b wood 1 0 marble 0 1 Quando il tempo è 0, il marmo non ha effetto per nulla, mentre il legno è al suo massimo livello. Con il procedere del tempo, il materiale 'marble' diviene sempre più forte, mentre il materiale 'wood' svanisce. 2. Crea una sfera. Root sphere 3. Aggiungi entrambi i materiali usando Create/Mapping/Parallel. Root sphere wood marble Nota: Puoi usare metodi di mappatura differenti per materiali diversi: proiezione parallela per wood e cilindrica per marble. Non solo le texture possono trasformarsi, ma anche il tipo di proiezione può essere trasformato nel tempo. 4. Avvia l'animazione. Esempio di Supporto: Examples/Materials/temporal_scope Esemio 2: metamorfosi di mappatura geometrica. Dato che le mappature sono piuttosto primitivi che definiscono la dimensione, posizione ed orientamento delle textures reali, puoi animare le mappature usando tutti i metodi disponibili. P.e. puoi usare mappature come particelle ed animarle usando le tecniche di animazione particellare, quali il vento e la gravità, o forse puoi solo voler ruotare la texture sui tuoi oggetti usando il metodo ROTATE. L'esempio seguente spiega come muovere una texture su un oggetto durante una animazione usando il metodo PATH. 1. Crea un materiale 'wood' (legno) usando una texture appropriata. 2. Crea un oggetto, diciamo un tubo. Root tube p1 p2 p3 3. Crea una mappatura usando una proiezione parallela (Create/Mapping/Parallel). Questo seleziona il materiale wood per il tuo oggetto 'tube' (ricorda la filosofia che se un oggetto è composto da macchina e movimento il risultato sarà una macchina che si sposta, mentre uno composto da tubo e legno sarà un tubo di legno). Root tube p1 p2 p3 wood(T) 4. Ora anima il primitivo 'wood' applicando la funzione Animate/Create/Path ad esso (definisci il percorso che la texture di legno deve seguire). Ora la struttura gerarchica del tuo oggetto è la seguente: Root tube p1 p2 p3 wood wood(T) level(PATH) line 5. Imposta la texture del livello object/Root/wood. Questo dice al rendering di vedere dentro al livello per cercare i reali primitivi mappanti. 6. Rendi l'animazione. Esempio di supporto: Examples/Materials/mapping_path Esempio 3: metamorfosi geometrica Materiael/Mappatura usando il metodo di animazione MORPHING. Puoi usare il morphing per animare le forme dei primitivi mappanti. Questo causa anche la metamorfosi delle proprietà corrispondenti ai materiali. In questo esempio, creeremo tre materiali chiave ('key') che sono usati come fotogrammi chiave per trasformare il materiale risultante ('result') e la geometria mappante. 1. Crea quattro materiali 'result', 'key1', 'key2' e 'key3'. Usa per questo esempio diversi valori di specularità per i diversi materiali chiave. Le caratteristiche del materiale risultante non sono rilevanti, perchè saranno determinate dai materiali chiave durante l'animazione. 2. Crea una sfera Root sphere 3. Crea un oggetto livello chiamato 'level' e setta la sua mappatura, usando Modify/Properties/Attributes. Root sphere level(T) 4. Crea la mappatura 'result' usando la mappatura parallela. Root sphere level(T) result 5. Crea un oggetto livello chiamato 'keys' con il metodo di animazione MORPHING CLOSED. Root sphere level result keys(M) 6. Crea delle mappature parallele key1, key2 e key3 all'interno dell'oggetto morfizzante 'keys'. Ogni mappatura dovrebbe avere forma, dimensione e posizione diverse. Root sphere level result keys(M) key1 key2 key3 7. Setta Modify/Properties/Attributes/WF-Invisible per il livello 'keys(M)' se non vuoi vedere tutte le mappature a gabbia. 8. Ora usa una finestra materiale e due finestre di visualizzazione per rendere l'animazione. Carica il materiale 'result' nella finestra del materiale in modo che tu possa vedere come le sue proprietà si trasformano durante l'animazione. Setta View/Drawing Set/Render_Wire per una delle finestre in modo che tu possa osservare come la rappresentazione a gabbia della mappatura risultante è trasformata. Usa, p.e., l'ombreggiatura del modo Lampless nella seconda finestra di visualizzazione in modo che mostri l'animazione usando il ray tracing. Esempio di Supporto: Examples/Materials/mat_morphing Esempio 4: Usare un oggetto intelligente per modificare le proprietà del materiale. Un modo possibile per trasformare le proprietà di un materiale nel tempo è di usare un oggetto intelligente allo scopo. Normalmente i metodi sono usati per definire come gli oggetti ad essi associati si comportano, ma nulla ci vieta dall'usarli per definire come agiscono anche i materiali. 1. Crea un materiale 'wood'. 2. Crea una sfera, una mappatura (parallela) ed un livello vuoto. Root sphere wood level 3. Seleziona 'level' ed il menù Animate/Create/RPL. Questa funzione apre un requester che ti permette di definire un breve programma RPL che viene associato all'oggetto selezionato. Digita il seguente programma: "attr(wood->bril)=Time*100" EVAL DROP 4. Apri la finestra del materiale e carica 'wood'. Attiva l'animazione e vedrai come l'oggetto 'level' modifica la lucentezza del materiale 'wood'. Esempio di Supporto: Examples/Materials/mat_RPL_anim Suggerimento: E' molto facile pensare a modi più sofisticati di usare questa tecnica per animare le caratteristiche del materiale. Innanzitutto, la procedura in sè può essere molto più complessa. Inoltre, l'oggetto a cui la procedura si riferisce, potrebbe contenere degli altri oggetti, etc. P.e. il valore della velocità (che definisce la velocità dell'oggetto per i metodi del sistema particellare) potrebbe essere usato per definire la brillantezza dell'oggetto. Più la velocità è elevata e più riflessivo diviene l'oggetto. Le tecniche sin'ora presentate non sono le sole. Vi sono persino modi più basilari per migliorare la metamorfosi dei materiali. Per esempio: - Puoi creare il materiale per ogni singolo fotogramma invece di modificare quelli esistenti. Questo rende possibile definire tutte le caratteristiche del materiale senza limitazioni. - Puoi definire un insieme di materiali, salvarli in un file e caricarli solo quando il tempo raggiunge un determinato valore. - Puoi scrivere le tue formule per l'operatore del materiale o procedure RPL che possono dipendere dal tempo di animazione. - Puoi usare il metodo SIZE per ridimensionare le mappature sferiche con gli operatori prospettici Local partendo dal loro centro creando così l'effetto di crescita di ogni rispettivo materiale. Le possibilità sono molte...