Blender Manual Iit 1

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Blender Manual Iit 1 as PDF for free.

More details

  • Words: 128,255
  • Pages: 410
Documentazione di Blender Volume I Guida Utente Ultima modifica 27 Settembre 2004

Hanno collaborato alla traduzione della versione italiana: Baldassarre Cesaroni Gianluca Faletti Mauro Bonecchi Luciano Ghione Questa versione della documentazione di Blender è una traduzione dall'inglese per gli italiani, non sostituisce l'inglese, anzi, riporta continuamente le corrispondenza ita-eng, (italiano tra parentesi tonde, inglese tra quadre), nella speranza che possa, sia servire a chi non conosce l'inglese ma ne vuole acquisire la terminologia, sia a chi protende per un "gergo" tutto italiano! Per qualsiasi suggerimento o collaborazione potete inserire un messaggio sul forum di http://www.kino3d.com

Claudio Andaur Manuel Bastioni Baldassarre Cesarano Alejandro Conty Estévez Karsten Dambekalns Florian Findeiss Alex Heizer Tim van Howe Wouter van Heyst Joeri Kassenaar Martin Kleppman Lyubomir Kovacev Johnny Matthews Reevan McKay Kent Mein Martin Middleton Eric Oberlander Jason Oppel Willem-Paul van Overbruggen

Ton Roosendaal Bastian Samela Stefano Selleri Bart Veldhuizen Chris Williamson Carsten Wartmann

Documentazione di Blender Volume I - Guida Utente: Ultima modifica 17 Settembre 2004 Claudio Andaur, Manuel Bastioni, Baldassarre Cesarano, Alejandro Conty Estévez, Karsten Dambekalns, Florian Findeiss, Alex Heizer, Tim van Howe, Wouter van Heyst, Joeri Kassenaar, Martin Kleppman, Lyubomir Kovacev, Johnny Matthews, Reevan McKay, Kent Mein, Martin Middleton, Eric Oberlander, Jason Oppel, Willem-Paul van Overbruggen, Ton Roosendaal, Bastian Samela, Stefano Selleri, Bart Veldhuizen, Chris Williamson, e Carsten Wartmann Copyright © 2004 Legato alla Blender Foundation. Il permesso di copia, distribuzione e/o modifica di questo documento è garantito nei termini della Open Content License. Una copia della licenza è inclusa nell'appendice. Questa è la Guida ufficiale del progetto Blender Documentation. Si è liberi di aggiungere o apportare le proprie modifiche e spedirle ben documentate alla "Blender documentation board" ([email protected]).

Sommario I. Introduzione a Blender............................................................................................................................................. 1. Introduzione.......................................................................................................................................................... 2. Installazione............................................................................................................................................................ 3. Capire l'interfaccia.................................................................................................................................................. 4. La tua prima animazione in 30 + 30 minuti............................................................................................................ II. Modellazione, Materiali e Luci.................................................................................................................................. 5. Modalità Oggetto.................................................................................................................................................. 6. Modellazione Elementare della Mesh..................................................................................................................... 7. Modellazione Avanzata della Mesh........................................................................................................................ 8. Meta Oggetti............................................................................................................................................................ 9. Curve e Superfici..................................................................................................................................................... 10. Materiali e Textures.............................................................................................................................................. 11. Le Texture............................................................................................................................................................. 12. Illuminazione......................................................................................................................................................... 13. Il Mondo e L'Universo.......................................................................................................................................... III. Animazione................................................................................................................................................................ 14. Animazione di Oggetti Senza Deformazione..................................................................................................... 15. Animazione di Deformazioni................................................................................................................................ 16. Animazione di Personaggi.................................................................................................................................... IV. Rendering................................................................................................................................................................... 17. Il Rendering......................................................................................................................................................... 18. Radiosità................................................................................................................................................................ 19. Raytracing............................................................................................................................................................. V. Strumenti Avanzati..................................................................................................................................................... 20. Particelle.............................................................................................................................................................. 21. Altri Effetti............................................................................................................................................................ 22. Tecniche di modellazione speciali........................................................................................................................ 23. Effetti Volumetrici................................................................................................................................................ 24. Editor di Sequenze................................................................................................................................................ VI. Estendere Blender..................................................................................................................................................... 25. Programmazione di Script Python.................................................................................................................... 26. Il Sistema di Plugin di Blender............................................................................................................................. VII. Oltre Blender............................................................................................................................................................ 27. Da Blender a YafRay usando YableX............................................................................................................... 28. YafRay.................................................................................................................................................................. Glossario...........................................................................................................................................................................

Lista delle Tabelle 2-1. Versioni minime delle librerie esterne............................................................................................................... 2-2. Librerie richieste a seconda delle piattaforme............................................................................................................... 2-3. Versioni minime degli strumenti................................................................................................................................... 27-1. Campioni di IOR.........................................................................................................................................................

5

Lista delle Figure 3-1. La scena di default di Blender.............................................................................................................................. 3-2. Il menù Split per creare nuove finestre.......................................................................................................................... 3-3. Il menù per la selezione del tipo di finestra................................................................................................................... 3-4. Contesti e Sub-Contesti................................................................................................................................................. 3-5. Il menù della Pulsantiera............................................................................................................................................... 3-6. Pannello con Fincature [Tabs]....................................................................................................................................... 3-7. Un Pulsante-operazione................................................................................................................................................. 3-8. I pulsanti selettori.......................................................................................................................................................... 3-9. I pulsanti numerici......................................................................................................................................................... 3-10. I pulsanti per collegare il Datablock............................................................................................................................ 3-11. La Toolbox.................................................................................................................................................................. 3-12. Selettori dello Schermo e della Scena......................................................................................................................... 3-13. Il menù di visualizzazione di una Inquadratura [Viewport] 3D................................................................................... 3-14. Proiezione ortogonale (a sinistra) e prospettica (a destra)........................................................................................... 3-15. Esempio di vista telecamera........................................................................................................................................ 3-16. Il pulsante della modalità di disegno di un'Inquadratura [Viewport] 3D.................................................................... 3-17. I Pulsanti dei livelli di una Viewport 3D..................................................................................................................... 3-18. La Finestra di Selezione del File - caricamento........................................................................................................... 3-19. La Finestra di Selezione del File - salvataggio............................................................................................................ 3-20. Le opzioni del Rendering nella Pulsantiera del Rendering.......................................................................................... 3-21. La finestra delle preferenze utente............................................................................................................................... 4-1. La finestra di Blender appena avviato........................................................................................................................... 4-2. Il toolbox per il controllo dei livelli [layer]................................................................................................................... 4-3. Controlli di visibilità del Layer..................................................................................................................................... 4-4. Il nostro cubo in EditMode, tutti i vertici selezionati.................................................................................................... 4-5. Il pulsante della Pulsantiera di Edit............................................................................................................................... 4-6. La Pulsantiera di Edit per una Mesh.............................................................................................................................. 4-7. Il cubo, suddiviso una sola volta................................................................................................................................... 4-8. La sequenza della selezione Delimitata [Box] per un gruppo di vertici........................................................................ 4-9. Il menù pop-up della cancellazione (XKEY)................................................................................................................ 4-10. Estrusione del braccio in due passi.............................................................................................................................. 4-11. Metà corpo................................................................................................................................................................... 4-12. La Pulsantiera di Edit.................................................................................................................................................. 4-13. Impostazione del cento di riferimento nel cursore....................................................................................................... 4-14. Ribalta la copia della metà del corpo per ottenere un corpo intero............................................................................. 4-15. La sequenza per aggiungere la testa............................................................................................................................ 4-16. La Pulsantiera di Edit.................................................................................................................................................. 4-17. L'impostazione per l'arrotondamento di Gus............................................................................................................... 4-18. Assottigliare Gus col ridimensionamento vincolato.................................................................................................... 4-19. Rendere visibili sia il layer 1 che il 10........................................................................................................................ 4-20. Il Pannello per l'immissione numerica della posizione/rotazione ecc. di un oggetto.................................................. 4-21. Posizione della Telecamera rispetto a Gus.................................................................................................................. 4-22. Imposta il centro di riferimento al cento dell'Oggetto................................................................................................. 4-23. Inserimento di una Lampada....................................................................................................................................... 4-24. Il pulsante della Pulsantiera delle Luci........................................................................................................................ 4-25. Le impostazioni del faretto.......................................................................................................................................... 4-26. Le impostazioni della Lampada Hemi......................................................................................................................... 4-27. I pulsanti del rendering nella Pulsantiera..................................................................................................................... 4-28. La Pulsantiera del Rendering....................................................................................................................................... 4-29. Il tuo primo rendering. Congratulazioni!..................................................................................................................... 4-30. Il menù Save (Salva).................................................................................................................................................... 4-31. Il Pulsante per la Pulsantiera del Materiale................................................................................................................. 4-32. Il pulsante del Menù del Materiale.............................................................................................................................. 4-33. La Pulsantiera del Materiale ed un primo materiale GingerBread (PanDiZenzero)....................................................

6

4-34. Il pulsante del menù delle Textures nei Pulsanti del Materiale................................................................................... 4-35. The Texture Buttons window Button........................................................................................................................... 4-36. La Pulsantiera della Texture con una texture stucci.................................................................................................... 4-37. Le impostazioni della texture Stucci nella finestra dei Pulsanti del Materiale............................................................ 4-38. Le impostazioni per una ulteriore texture di tipo Noise nel canale 2.......................................................................... 4-39. Un materiale molto semplice per il pavimento............................................................................................................ 4-40. I pulsanti di visibilità del livello sulla barra degli strumenti....................................................................................... 4-41. La sequenza per la creazione degli occhi.................................................................................................................... 4-42. La creazione della bocca con gli strumenti di Ribaltamento [Spinning]..................................................................... 4-43. I pulsanti per gli Strumenti di Ribaltamento [Spin] nella Pulsantiera di Edit............................................................. 4-44. Gus al completo!.......................................................................................................................................................... 4-45. I materiali di qualche altro dolciume........................................................................................................................... 4-46. La selezione di un materiale esistente dal Menù Materiale......................................................................................... 4-47. Il rendering della foto di Gus completo....................................................................................................................... 4-48. Il menù di selezione del tipo di file nella finestra dei Pulsanti del Rendering............................................................. 4-49. L'aggiunta del primo osso, un braccio senza gomito................................................................................................... 4-50. L'aggiunta del secondo e del terzo osso, la catena ossea della gamba........................................................................ 4-51. L'armatura completa dopo la duplicazione ed il ribaltamento..................................................................................... 4-52. La Pulsantiera di Edit per un'armatura......................................................................................................................... 4-53. Il menù che appare quando s'imparenta un Oggetto ad un'armatura........................................................................... 4-54. Scelte per il Rivestimento Automatico........................................................................................................................ 4-55. I pulsanti dei gruppi di vertici nella Pulsantiera di Edit di una mesh.......................................................................... 4-56. Il menù con i raggruppamenti di vertici creati automaticamente dal processo di rivestimento.................................. 4-57. Gus in modo Edit con tutti i vertici del gruppo Arm.R selezionati............................................................................. 4-58. I sei gruppi di vertici.................................................................................................................................................... 4-59. L'interruttore per commutare in modo Posa nella barra degli strumenti della Finestra 3D......................................... 4-60. Ora siete in modo posa!............................................................................................................................................... 4-61. Il pulsante numerico del fotogramma [frame] corrente nella barra degli strumenti della Pulsantiera........................ 4-62. La nostra prima posa................................................................................................................................................... 4-63. Memorizzazione di una posa nel frame....................................................................................................................... 4-64. La nostra seconda posa................................................................................................................................................ 4-65. La copia della posa nel buffer...................................................................................................................................... 4-66. La nuova posa da una precedente copiata e ribaltata.................................................................................................. 4-67. Le impostazioni dei Pulsanti del Rendering per l'animazione..................................................................................... 5-1. I pulsanti per la selezione del punto di rotazione........................................................................................................... 5-2. La finestra numerica...................................................................................................................................................... 5-3. Selezione di Gruppo....................................................................................................................................................... 5-4. Liberazione dei Figli...................................................................................................................................................... 5-5. Impostazione degli assi per l'Inseguimento................................................................................................................... 5-6. Selezione dei collegamenti............................................................................................................................................ 5-7. Le opzioni per le operazioni booleane........................................................................................................................... 5-8. Gli oggetti risultanti: intersezione, unione e differenza (dall'alto in basso).................................................................. 6-1. Gli Oggetti elementari................................................................................................................................................... 6-2. Due piramidi, una in Modo Edit (a sinistra) e l'altra in Modo Oggetto (a destra)......................................................... 6-3. Un cubo con i vertici selezionati in giallo..................................................................................................................... 6-4. Il tronco di piramide...................................................................................................................................................... 6-5. Il Contesto di Edit.......................................................................................................................................................... 6-6. Il Menù Specials............................................................................................................................................................ 6-7. Undo (Ripristina) e Redo (Ripeti)................................................................................................................................. 6-8. Il Menù Undo................................................................................................................................................................. 6-9. La prova di un semplice oggetto non levigato............................................................................................................... 6-10. I pulsanti Set Smooth e Set Solid nella finestra dei Pulsanti di Edit........................................................................... 6-11. Lo stesso oggetto precedente, ma completamente levigato da 'Set Smooth'............................................................... 6-12. L'oggetto in Modo Edit con delle facce selezionate.................................................................................................... 6-13. Il gruppo di pulsanti AutoSmooth nella Pulsantiera di Edit........................................................................................ 6-14. Lo stesso oggetto di prova con AutoSmooth abilitato.................................................................................................

7

6-15. Il cerchio deformato, diventa la sezione trasversale della lama.................................................................................. 6-16. Il pulsante di Estrusione nel contesto dei Pulsanti di Edit........................................................................................... 6-17. La finestra di conferma dell'Estrusione....................................................................................................................... 6-18. La Lama....................................................................................................................................................................... 6-19. Il Menù Edit della Mesh.............................................................................................................................................. 6-20. La lama completata..................................................................................................................................................... 6-21. La sfera UV per l'impugnatura: i vertici da rimuovere................................................................................................ 6-22. La prima estrusione per l'impugnatura........................................................................................................................ 6-23. L'impugnatura completa.............................................................................................................................................. 6-24. L'elsa completa............................................................................................................................................................ 6-25. La spada finita, con le textures ed i materiali.............................................................................................................. 6-26. Il profilo del bicchiere................................................................................................................................................. 6-27. I Pulsanti dello Spin..................................................................................................................................................... 6-28. Il profilo del bicchiere, visto dall'alto in Modo Edit, appena prima della rotazione................................................... 6-29. Dati della mesh: Il numero dei vertici e delle facce.................................................................................................... 6-30. Il profilo ribaltato........................................................................................................................................................ 6-31. Selezione dei vertici della cucitura.............................................................................................................................. 6-32. Il numero dei vertici dopo la rimozione dei duplicati................................................................................................. 6-33. Il menù Merge.............................................................................................................................................................. 6-34. Il rendering finale dei bicchieri.................................................................................................................................... 6-35. La tacca dell'ora indicata dalla freccia........................................................................................................................ 6-36. I pulsanti dello Spin Dup............................................................................................................................................. 6-37. La Mesh selezionata e pronta per lo SpinDup............................................................................................................. 6-38. Selezione della vista per lo Spin Dup.......................................................................................................................... 6-39. La rimozione dell'oggetto duplicato............................................................................................................................ 6-40. Il rendering finale dell'orologio................................................................................................................................... 6-41. Come fare una molla: prima (a sinistra) e dopo (a destra) dello strumento Screw..................................................... 6-42. Avvitamento allargato (a destra) ottenuto col profilo di sinistra................................................................................. 6-43. Le impostazioni del Testo............................................................................................................................................ 6-44. Vista dall'alto del testo e della sfera............................................................................................................................ 6-45. Il testo curvato............................................................................................................................................................. 6-46. Il rendering finale........................................................................................................................................................ 7-1. I pulsanti del SubSurf.................................................................................................................................................... 7-2. Suzanne con la suddivisione della superficie................................................................................................................ 7-3. Suddivisione di semplici facce quadrate e triangolari................................................................................................... 7-4. Vista laterale di mesh sub-suddivise. Con normali casuali (in alto) e con normali coerenti (in basso)........................ 7-5. Vista solida di mesh sub-suddivise con normali coerenti (in alto) e normali incoerenti (in basso).............................. 7-6. Una mesh "Non Manifold"............................................................................................................................................ 7-7. Un Doccione (Gargoyle) con Mesh base (a sinistra) ed una con Mesh con SubSurf a livello 2 (a destra)................... 7-8. Vista Piena (a sinistra) ed il rendering finale (a destra) del Doccione (Gargoyle)........................................................ 7-9. Un Anello di Lati [Edgeloop] aperto (a sinistra) ed uno chiuso (a destra).................................................................... 7-10. Un Anello di Facce aperto (a sinistra) e due chiusi (al centro ed a destra)................................................................. 7-11. Divisione di un Anello di Facce [Faceloop]................................................................................................................ 7-12. Tagli delle facce Proporzionale e Levigato [Smooth]................................................................................................. 7-13. Taglio al centro (Center) con una poli-linea (in alto); Taglio esatto (Exact) con un solo segmento (in mezzo) e taglio esatto a mano libera (in basso).............................................................................................................................................. 7-14. Smussatura di un cubo................................................................................................................................................. 7-15. Un piano....................................................................................................................................................................... 7-16. La metà destra.............................................................................................................................................................. 7-17. Il duplicato collegato reso speculare........................................................................................................................... 7-18. Modifica di una metà................................................................................................................................................... 7-19. Una testa. A sinistra: Modo Edit; Al centro: Modo Oggetto; A destra: l'Unione........................................................ 7-20. Una mesh piana densa................................................................................................................................................. 7-21. Una mesh piana densa con un solo vertice selezionato............................................................................................... 7-22. L'icona di Modifica Proporzionale e gli schemi.......................................................................................................... 7-23. Diversi 'Magneti' per la Modifica proporzionale.........................................................................................................

8

7-24. Un paesaggio ottenuto con la Modifica Proporzionale................................................................................................ 7-25. Il rendering finale del paesaggio.................................................................................................................................. 7-26. Lo strumento di suddivisione [Subdivide]................................................................................................................... 7-27. Il pulsante Noise nella Pulsantiera di Edit................................................................................................................... 7-28. Applicazione del processo di Noise. Dall'alto a sinistra al basso a destra: Il piano con la texture, il piano suddiviso, il pulsante "Noise" premuto 2, 4, 6 e 8 volte.................................................................................................................. 7-29. Il paesaggio generato col Noise................................................................................................................................... 7-30. I pulsanti del Decimatore............................................................................................................................................. 7-31. Il Decimatore in funzione............................................................................................................................................ 7-32. Paesaggio decimato, in alto: originale; al centro: leggermente decimato; in basso: molto decimato......................... 8-1. Due Metaballs................................................................................................................................................................ 9-1. Tipi di Maniglie per le curve di Bézier.......................................................................................................................... 9-2. Impostazione della risoluzione nella Bézier.................................................................................................................. 9-3. Pulsanti di Controllo delle Nurbs.................................................................................................................................. 9-4. Impostazione dei pesi e del poligono di Controllo delle Nurbs..................................................................................... 9-5. Lo schizzo del logo........................................................................................................................................................ 9-6. Le impostazioni della finestra 3D.................................................................................................................................. 9-7. La bozza del logo caricata come sfondo....................................................................................................................... 9-8. Le maniglie della Bézier................................................................................................................................................ 9-9. L'aggiunta di un Punto di Controllo............................................................................................................................... 9-10. Maniglie Vettore (in verde)......................................................................................................................................... 9-11. Maniglie Libere (nere)................................................................................................................................................. 9-12. Il contorno finito.......................................................................................................................................................... 9-13. Il logo ombreggiato...................................................................................................................................................... 9-14. L'aggiunta di un cerchio............................................................................................................................................... 9-15. Definizione dell'occhio................................................................................................................................................ 9-16. Definizione delle ali..................................................................................................................................................... 9-17. Posizionamento del cerchio all'interno della coda....................................................................................................... 9-18. Impostazioni della smussatura [Bevel]........................................................................................................................ 9-19. Il rendering finale........................................................................................................................................................ 9-20. Il menù per aggiungere una superficie......................................................................................................................... 9-21. La superficie di una sfera............................................................................................................................................. 9-22. I pesi pre-impostati...................................................................................................................................................... 9-23. Esempi di Testo........................................................................................................................................................... 9-24. I pulsanti di modifica del testo.................................................................................................................................... 9-25. Profilo (a sinistra) e percorso (a destra)....................................................................................................................... 9-26. Profilo modificato (a sinistra) e percorso (a destra).................................................................................................... 9-27. Il pulsante della Curva 3D........................................................................................................................................... 9-28. Il nome del Profilo....................................................................................................................................................... 9-29. Indicazione del Profilo sul percorso............................................................................................................................ 9-30. Il risultato dell'estrusione............................................................................................................................................. 9-31. Il piano locale del percorso.......................................................................................................................................... 9-32. I problemi dell'estrusione dovuti al vincolo dell'asse y............................................................................................... 9-33. Una Superficie curva per il rivestimento..................................................................................................................... 9-34. Il profilo della nave...................................................................................................................................................... 9-35. Profili multipli lungo l'asse della nave......................................................................................................................... 9-36. Profili multipli delle forme corrette............................................................................................................................. 9-37. Il profilo riunito........................................................................................................................................................... 9-38. La superficie rivestita in modalità edit........................................................................................................................ 9-39. Lo scafo finale............................................................................................................................................................. 10-1. Il principio base del motore del Rendering.................................................................................................................. 10-2. La luce re-irradiata per il fenomeno della diffusione.................................................................................................. 10-3. Riflessione Speculare................................................................................................................................................... 10-4. L'aggiunta di un nuovo materiale................................................................................................................................. 10-5. I Pulsanti del Materiale................................................................................................................................................ 10-6. L'Anteprima del Materiale, un piano (a sinistra) una sfera (al centro) ed un cubo (a destra)......................................

9

10-7. I pulsanti dei colori del materiale................................................................................................................................ 10-8. I pulsanti dell'Ombreggiatore [Shader] del materiale.................................................................................................. 10-9. Gli ombreggiatori Diffuse (di diffusione) del materiale.............................................................................................. 10-10. Gli ombreggiatori Specular (Speculari) del materiale............................................................................................... 10-11. Riassunto degli shader............................................................................................................................................... 10-12. Ulteriori sliders del materiale.................................................................................................................................... 10-13. Il materiale normale (a sinistra), il materiale con Alpha < 1 (al centro) ed il materiale con Emit > 0 (a destra)...... 10-14. I pulsanti speciali del materiale................................................................................................................................. 10-15. La Mesh del fungo..................................................................................................................................................... 10-16. Il fungo con un materiale........................................................................................................................................... 10-17. Il fungo coi vertici del cappello selezionati............................................................................................................... 10-18. L'aggiunta di un nuovo materiale alla mesh.............................................................................................................. 10-19. Materiale ad utenza multipla..................................................................................................................................... 10-20. Il fungo con due materiali.......................................................................................................................................... 10-21. I pulsanti Halo............................................................................................................................................................ 10-22. I risultati della luminescenza [halo]........................................................................................................................... 10-23. La texture immagine della matrice di punti............................................................................................................... 10-24. Il tabellone a Matrice di Punti................................................................................................................................... 10-25. Le impostazioni del Riflesso Ottico.......................................................................................................................... 10-26. Il Riflesso Ottico........................................................................................................................................................ 11-1. I Canali della Texture.................................................................................................................................................. 11-2. Blocco di selezione della texture................................................................................................................................. 11-3. Immissione della Coordinata del Materiale................................................................................................................. 11-4. Mappatura della texture............................................................................................................................................... 11-5. Trasformazione delle coordinate................................................................................................................................. 11-6. Fattori di Scala e Scostamento [Offset] della coordinata della texture....................................................................... 11-7. Inputs della texture...................................................................................................................................................... 11-8. Outputs della texture.................................................................................................................................................... 11-9. Impostazioni dell'output.............................................................................................................................................. 11-10. I Pulsanti della Texture.............................................................................................................................................. 11-11. La Banda di Colore [Colorband] della texture.......................................................................................................... 11-12. Copia ed Incolla delle Textures................................................................................................................................. 11-13. La prima texture di anelli del Legno (Wood)............................................................................................................ 11-14. La seconda texture di anelli del Legno (Wood)......................................................................................................... 11-15. La texture Clouds [nuvole]........................................................................................................................................ 11-16. Il risultato finale......................................................................................................................................................... 11-17. Mappatura piatta [Flat].............................................................................................................................................. 11-18. Mappatura Cubica...................................................................................................................................................... 11-19. Mappatura Tubolare................................................................................................................................................... 11-20. Mappatura Sferica...................................................................................................................................................... 11-21. Esempio di utilizzo della Mappa Ambientale............................................................................................................ 11-22. Il materiale del piano riflettente................................................................................................................................. 11-23. Le impostazioni della Mappa Ambientale del piano riflettente................................................................................ 11-24. La sfera su una superficie riflettente.......................................................................................................................... 11-25. sfera riflettente su una superficie riflettente............................................................................................................... 11-26. Una sfera riflettente su una superficie riflettente con riflessioni multiple................................................................. 11-27. Impostazione della texture aggiuntiva per la Mappa di Rugosità [Bump Mapping]................................................. 11-28. La sfera riflettente su dell'acqua riflettente con riflessioni multiple.......................................................................... 11-29. La Mappa Ambientale così come viene salvata........................................................................................................ 11-30. Impostazioni della Mappa Ambientale per simulare la rifrazione............................................................................. 11-31. Le impostazioni del Materiale................................................................................................................................... 11-32. La Mappa di Riflessione............................................................................................................................................ 11-33. Il tocco finale............................................................................................................................................................. 11-34. Il Rendering............................................................................................................................................................... 11-35. Le impostazioni della trasparenza............................................................................................................................. 11-36. Impostazioni delle Riflessioni...................................................................................................................................

10

11-37. Vetro Cavo................................................................................................................................................................. 11-38. Il pulsante col triangolo arancione: il Modo Selezione di Facce UV [UV Face Select] nell'intestazione della Finestra 3D. ..................................................................................................................................................................................... 11-39. La Finestra 3D e la Finestra Immagine/Editor UV.................................................................................................... 11-40. UV pre-impostate....................................................................................................................................................... 11-41. Pannello UV mapping................................................................................................................................................ 11-42. Strumenti per la modifica delle UV........................................................................................................................... 11-43. Texture modulata dai Colori dei Vertici.................................................................................................................... 11-44. Suzanne con la cucitura segnata................................................................................................................................ 11-45. Fissaggio delle UV.................................................................................................................................................... 11-46. L'accesso alle UV occluse......................................................................................................................................... 11-47. L'LSCM in azione...................................................................................................................................................... 11-48. Il gruppo frontale mappato "From Window"............................................................................................................. 11-49. Due isole nella mappa................................................................................................................................................ 11-50. Suturazione................................................................................................................................................................ 11-51. Suturazione................................................................................................................................................................ 11-52. Scucitura delle orecchie con l'LSCM........................................................................................................................ 11-53. Suturazione [Stitching].............................................................................................................................................. 11-54. La disposizione UV finale esportata.......................................................................................................................... 11-55. Gimp è un'applicazione 2D che supporta i livelli trasparenti.................................................................................... 11-56. Uso della mappa UV come riferimento per le mappe texture................................................................................... 11-57. Le tre mappe texture.................................................................................................................................................. 11-58. Regolazione della mappa texture del colore.............................................................................................................. 11-59. Il rendering finale. Texture veramente brutte... Le dovrò ridisegnare....................................................................... 12-1. I Pulsanti della Luce.................................................................................................................................................... 12-2. Pulsanti Generali della Luce........................................................................................................................................ 12-3. Una Luce Solare (Sun)................................................................................................................................................. 12-4. Esempio di Luce Sun................................................................................................................................................... 12-5. Esempio di Luce Sun................................................................................................................................................... 12-6. Lo schema concettuale della lampada Semisferica (Hemi)......................................................................................... 12-7. Esempio di luce Semisferica (Hemi)........................................................................................................................... 12-8. Esempio di Luce esterna. Luce Sun: Energy=1, RGB=(1.,0.95,0.8). La direzione della Sun in un riferimento polare è (135°, 135°). Luce Hemi: Energy=0.5, RGB=(0.64,0.78,1.) puntata verso il basso.............................................................. 12-9. Pulsante della luce di tipo Lamp.................................................................................................................................. 12-10. Esempio di Luce tipo Lamp. Negli esempi Quad: Quad1=0, Quad2=1.................................................................... 12-11. Attenuazione della luce: a) Lineare di default di Blender; b) Quadratica di default di Blender con Quad1=0, Quad2=1; c) Quadratica di Blender con Quad1=Quad2=0.5; d). Quadratica di Blender con Quad1=Quad2=0. Nel grafico sono rappresentate anche le stesse curve, negli stessi colori, ma col pulsante Sphere premuto.......................................... 12-12. Schema della luce di tipo Faretto (Spot)................................................................................................................... 12-13. I pulsanti delle Opzioni del Faretto (Spot)................................................................................................................ 12-14. I Pulsanti del Faretto (Spot)....................................................................................................................................... 12-15. Esempi di Illuminazione con Spot per SpotSi=45°.................................................................................................... 12-16. Pulsanti per ombra della Luce di tipo Spot................................................................................................................ 12-17. Esempi di ombre con illuminazione di tipo Spot....................................................................................................... 12-18. Il pulsante halo nella Luce tipo Spot......................................................................................................................... 12-19. Impostazione della Luce tipo Spot............................................................................................................................ 12-20. Il rendering di una Luminescenza (Halo).................................................................................................................. 12-21. Lo Slider per l'intensità della luminescenza (Halo)................................................................................................... 12-22. Il pulsante numerico Halo Step.................................................................................................................................. 12-23. L'alone (Halo) con l'ombra volumetrica, Halo Step = 1............................................................................................ 12-24. L'alone (Halo) con l'ombra volumetrica, Halo Step = 12.......................................................................................... 12-25. La composizione per la regolazione della Luce........................................................................................................ 12-26. Una semplice impostazione della luce Spot.............................................................................................................. 12-27. L'impostazione di una sola luce Spot con una taglio (Clipping) adeguato................................................................ 12-28. Regolazione dello Spot. A sinistra: ClipSta troppo alto; Al centro: Buono; A Destra: ClipEnd troppo basso......... 12-29. Impostazione della Retro-Illuminazione [Back Light]..............................................................................................

11

12-30. La sola Key Light (a sinistra). Solo la Back Light (al centro) ed entrambe (a destra).............................................. 12-31. Impostazione della Luce di Riempimento (Fill)........................................................................................................ 12-32. Le sole luci Key e Back (a sinistra). Solo la luce Fill (al centro) e tutte e tre (a destra)........................................... 12-33. L'impostazione della Luce di Diffusione del Pavimento........................................................................................... 12-34. Impostazione di una quarta Luce............................................................................................................................... 12-35. Impostazione della luce Sun e della Hemi per l'illuminazione esterna...................................................................... 12-36. Il rendering dell'illuminazione esterna con la Sun e la Hemi.................................................................................... 12-37. Il rendering in esterno................................................................................................................................................ 12-38. L'area luminosa e la sua ombra.................................................................................................................................. 12-39. L'area luminosa e la sua ombra 2............................................................................................................................... 12-40. La luce Spot e la sua ombra....................................................................................................................................... 12-41. Impostazione della Griglia (Grid).............................................................................................................................. 12-42. La luce Spot ed i suoi duplicati ai vertici [dupliverts]............................................................................................... 12-43. Simulazione di un'area di luminosa con più Spots.................................................................................................... 12-44. Simulazione di un'area luminosa con più Spot soffusi.............................................................................................. 12-45. Cornelius sotto l'Area Luminosa............................................................................................................................... 12-46. La scena dell'Illuminazione Globale......................................................................................................................... 12-47. La Volta Celeste........................................................................................................................................................ 12-48. La volta Celeste con gli Spots duplicati.................................................................................................................... 12-49. Ribaltamento delle normali....................................................................................................................................... 12-50. La volta celeste corretta e le Luci Spot duplicate ai vertici....................................................................................... 12-51. La regolazione della Luce Spot................................................................................................................................. 12-52. Sistemazione con la Luce Spot.................................................................................................................................. 12-53. La creazione di un'area più densa di faretti............................................................................................................... 12-54. Il rendering con una volta celeste asimmetrica.......................................................................................................... 13-1. I Pulsanti del Mondo [World]...................................................................................................................................... 13-2. Colori di Sfondo [Background]................................................................................................................................... 13-3. I Pulsanti della Texture................................................................................................................................................ 13-4. I Pulsanti della Foschia................................................................................................................................................ 13-5. Una composizione di prova per la foschia................................................................................................................... 13-6. Rendering senza foschia (a sinistra) e con foschia (a destra)...................................................................................... 13-7. Impostazione del Mondo............................................................................................................................................. 13-8. I pulsanti della Stella................................................................................................................................................... 13-9. Il rendering delle Stelle................................................................................................................................................ 13-10. Le impostazioni della Stella...................................................................................................................................... 13-11. Pannello Ambient Occlusion..................................................................................................................................... 13-12. L'effetto dei diversi numeri di campioni.................................................................................................................... 13-13. Ambient Occlusion col Colore del Cielo. Lo Zenith è blu, l'Orizzonte è arancione, ed il tipo è Blend in modo che il cielo diventa totalmente arancione al Nadir........................................................................................................................ 13-14. Valori di bias dell'Ambient Occlusion....................................................................................................................... 13-15. Le impostazioni della luce ambiente......................................................................................................................... 14-1. Il menù Insert Key per l'inserimento della Chiave....................................................................................................... 14-2. La Finestra IPO............................................................................................................................................................ 14-3. Opzioni per l'estensione della IPO............................................................................................................................... 14-4. Le IPO prolungate........................................................................................................................................................ 14-5. La Finestra IPO............................................................................................................................................................ 14-6. La finestra IPO............................................................................................................................................................. 14-7. La IPO del tempo lineare............................................................................................................................................. 14-8. La Finestra Action con i Pulsanti del Percorso [Path]................................................................................................. 14-9. I Pulsanti di Inseguimento [Tracking]......................................................................................................................... 14-10. Animazione di un percorso complesso...................................................................................................................... 14-11. Alcuni fotogrammi, la telecamera insegue fluidamente il caccia.............................................................................. 14-12. Un fotogramma dell'animazione finale...................................................................................................................... 15-1. Il Menù Insert Vertex Keys.......................................................................................................................................... 15-2. La Chiave [Key] di riferimento e la IPO della Velocità [Speed]................................................................................ 15-3. Chiavi Assolute............................................................................................................................................................

12

15-4. La testa femminile da animare..................................................................................................................................... 15-5. Tutti i vertici nascosti ad esclusione di quelli della faccia.......................................................................................... 15-6. L'occhio sinistro chiuso............................................................................................................................................... 15-7. Il sorriso....................................................................................................................................................................... 15-8. Le Chiavi nella Finestra IPO....................................................................................................................................... 15-9. La curva IPO Key 1..................................................................................................................................................... 15-10. I pulsanti per il copia/incolla [Clipboard]................................................................................................................. 15-11. Tutte le IPO................................................................................................................................................................ 15-12. La Sequenza............................................................................................................................................................... 15-13. Le RVK nella Finestra Azione [Action].................................................................................................................... 15-14. Impostazione del Lattice............................................................................................................................................ 15-15. Lo stiramento............................................................................................................................................................. 15-16. La deformazione finale del lattice............................................................................................................................. 15-17. Qualche fotogramma dell'animazione risultante....................................................................................................... 16-1. Le opzioni di Auto key................................................................................................................................................ 16-2. La Finestra IPO con l'Azione fissata........................................................................................................................... 16-3. L'inserimento di un'Armatura...................................................................................................................................... 16-4. I Pulsanti di Edit per un'Armatura............................................................................................................................... 16-5. Opzioni di disegno per le Armature............................................................................................................................. 16-6. Gruppi di Vertici.......................................................................................................................................................... 16-7. Il Pulsante della Colorazione del Peso........................................................................................................................ 16-8. La voce Pose Mode del Menù..................................................................................................................................... 16-9. Il Pulsante del Modo Posa........................................................................................................................................... 16-10. La Finestra Azione..................................................................................................................................................... 16-11. La Finestra Azione con un Vincolo [Constraint]....................................................................................................... 16-12. Una IPO Azione......................................................................................................................................................... 16-13. La Finestra NLA........................................................................................................................................................ 16-14. L'Azione espansa nella Finestra NLA....................................................................................................................... 16-15. Il Vincolo espanso nella Finestra NLA..................................................................................................................... 16-16. Le Opzioni della Striscia Azione NLA...................................................................................................................... 16-17. Il Pannello Constraints (Vincoli)............................................................................................................................... 16-18. Vincolo Copy Location (Ricopia Posizione)............................................................................................................. 16-19. Vincolo Copy Rotation (Ricopia Rotazione)............................................................................................................. 16-20. Vincolo Track To (Punta A)...................................................................................................................................... 16-21. Lock Track (Punta Bloccato)..................................................................................................................................... 16-22. Follow Path (Segui Percorso).................................................................................................................................... 16-23. Vincolo IK Solver (Solutore IK)............................................................................................................................... 16-24. Il Vincolo Action (Azione)........................................................................................................................................ 16-25. Il Vincolo Nullo......................................................................................................................................................... 16-26. Il modello del braccio................................................................................................................................................ 16-27. Il disegno dell'armatura............................................................................................................................................. 16-28. L'armatura nella vista laterale.................................................................................................................................... 16-29. Posizionamento dell'armatura nella vista laterale...................................................................................................... 16-30. Il solutore IK del polso.............................................................................................................................................. 16-31. Allestimento del dito................................................................................................................................................. 16-32. Allestimento del dito................................................................................................................................................. 16-33. L'inserimento del solutore IK del dito....................................................................................................................... 16-34. L'allestimento delle altre dita..................................................................................................................................... 16-35. Panoramica della nomenclatura................................................................................................................................. 16-36. Imparentamento del Pollice....................................................................................................................................... 16-37. Imparentamento delle altre dita................................................................................................................................. 16-38. Impostazione del solutore IK del polso. Selezione dell'osso..................................................................................... 16-39. Impostazione del solutore IK del polso. Impostazione del Vincolo.......................................................................... 16-40. I nomi dei gruppi di vertici........................................................................................................................................ 16-41. Il gruppo di vertici ArmHi.R..................................................................................................................................... 16-42. Assegnazione dei vertici ad un gruppo......................................................................................................................

13

16-43. Diverse Pose.............................................................................................................................................................. 16-44. Un (cattivo) allestimento della gamba....................................................................................................................... 16-45. Assegnazione del vincolo IK..................................................................................................................................... 16-46. L'allestimento in Modo Posa..................................................................................................................................... 16-47. Aggiunta delle dita e qualche altra Animazione IK................................................................................................... 16-48. Spostamento della gamba.......................................................................................................................................... 16-49. Allestimento con un osso nullo.................................................................................................................................. 16-50. Allestimento con un osso nullo.................................................................................................................................. 16-51. L'aggiunta delle dita................................................................................................................................................... 16-52. L'allestimento completo della gamba........................................................................................................................ 16-53. Ingrandimento dell'allestimento del piede................................................................................................................. 16-54. La prova dell'impostazione........................................................................................................................................ 16-55. Un ragno meccanico a quattro zampe........................................................................................................................ 16-56. Il modello del Braccio............................................................................................................................................... 16-57. Il modello del Braccio con l'asse di rotazione........................................................................................................... 16-58. Il modello del Braccio e la sua armatura................................................................................................................... 16-59. Il modello del Braccio in Modo Posa........................................................................................................................ 16-60. Il pistone idraulico..................................................................................................................................................... 16-61. Il pistone idraulico sul braccio.................................................................................................................................. 16-62. Il pistone idraulico in Modo Posa.............................................................................................................................. 16-63. Pistone Idraulico col puntamento reciproco.............................................................................................................. 16-64. Impostazione del puntamento [Track]....................................................................................................................... 16-65. Il Modo Posa per il braccio con l'idraulica................................................................................................................ 16-66. Inserimento di un tubo flessibile................................................................................................................................ 16-67. nserimento dell'armatura nel tubo.............................................................................................................................. 16-68. La Empty per la soluzione dell'Animazione IK......................................................................................................... 16-69. Il vincolo IK............................................................................................................................................................... 16-70. Tutto il braccio del robot in Modo Posa.................................................................................................................... 16-71. Delle semplici pose della camminata........................................................................................................................ 16-72. Uso dei pulsanti copia, incolla e incolla ribaltato delle pose per essere felici!......................................................... 16-73. Una bella passeggiatina............................................................................................................................................. 16-74. Calcolo di STRIDE. Se necessario si raffini la griglia!............................................................................................. 16-75. Fare una pausa durante il cammino........................................................................................................................... 16-76. Salve ragazzi!............................................................................................................................................................ 17-1. I Pulsanti del Rendering............................................................................................................................................... 17-2. I tipi di Immagine e le dimensioni............................................................................................................................... 17-3. Dimensioni pre-imposte dell'immagine....................................................................................................................... 17-4. I pulsanti per il rendering parziale............................................................................................................................... 17-5. Il pulsante per il Panorama.......................................................................................................................................... 17-6. Impostazione di prova del Panorama........................................................................................................................... 17-7. Il rendering non panoramico........................................................................................................................................ 17-8. Il rendering panoramico............................................................................................................................................... 17-9. Il rendering a "occhio di pesce" [Fish-eye]................................................................................................................. 17-10. Un panorama completo di 360° con lenti da 16.0...................................................................................................... 17-11. Un panorama completo di 360° con lenti da 38.5...................................................................................................... 17-12. I Pulsanti per l'OSA (Sovracampionamento)............................................................................................................. 17-13. Rendering senza OSA (a sinistra) con OSA=5 (al centro) ed OSA=8 (a destra)...................................................... 17-14. I formati delle Immagini e delle Animazioni............................................................................................................. 17-15. Le impostazioni del Codec AVI................................................................................................................................ 17-16. I pulsanti per il rendering dell'animazione................................................................................................................. 17-17. Posizione dell'animazione ed estensioni.................................................................................................................... 17-18. I pulsanti dell'Effetto Movimento (Motion Blur)...................................................................................................... 17-19. Il fotogramma 1 del cubo in movimento senza il Motion Blur.................................................................................. 17-20. Il fotogramma 2 del cubo in movimento senza il Motion Blur.................................................................................. 17-21. Il frame 1 del cubo in movimento con un Motion Blur, 8 campionamenti, Bf=0.5................................................... 17-22. Il frame 1 del cubo in movimento con un Motion Blur, 8 campionamenti, Bf=1.0..................................................

14

17-23. Il frame 1 del cubo in movimento con un Motion Blur, 8 campionamenti, Bf=3.0................................................... 17-24. La scena di test per la Profondità di Campo.............................................................................................................. 17-25. Sistemazione della Empty per il Fuoco..................................................................................................................... 17-26. La circonferenza NURBS che insegue la Empty del Fuoco...................................................................................... 17-27. La IPO Speed IPO per il percorso circolare NURBS................................................................................................ 17-28. La Telecamera che punta verso la Empty del Fuoco................................................................................................. 17-29. Le impostazioni per il Motion Blur........................................................................................................................... 17-30. Il rendering finale del Motion Blur............................................................................................................................ 17-31. Una scena con materiali da Vignetta......................................................................................................................... 17-32. I pulsanti dei Bordi da Vignetta................................................................................................................................. 17-33. Impostazioni dei Bordi da Vignetta........................................................................................................................... 17-34. La scena del nuovo rendering con i Bordi da Vignetta.............................................................................................. 17-35. Il pulsante del Rendering Unificato........................................................................................................................... 17-36. I pulsanti addizionali del Rendering Unificato.......................................................................................................... 17-37. Sottomenù del post-process nel Rendering Unificato................................................................................................ 17-38. L'impostazione del Rendering del Campo [Field]..................................................................................................... 17-39. Il risultato del Rendering del Campo......................................................................................................................... 18-1. Esempio di Radiosità................................................................................................................................................... 18-2. Allestimento per il test della Radiosità........................................................................................................................ 18-3. Il materiale abilitato per la Radiosità.......................................................................................................................... 18-4. I pulsanti della Radiosità per il rendering della radiosità............................................................................................ 18-5. Abilitazione della Radiosità nella Pulsantiera del Rendering..................................................................................... 18-6. Il rendering della Radiosità per mesh grossolane (a sinistra) e mesh più raffinate (a destra)..................................... 18-7. Il pulsante Gouraud...................................................................................................................................................... 18-8. I Pulsanti della Radiosità per la Suddivisione............................................................................................................. 18-9. I Pulsanti della Radiosità............................................................................................................................................. 18-10. La post-elaborazione della Radiosità......................................................................................................................... 18-11. Il rendering con la Radiosità dell'Incursore Cylon.................................................................................................... 18-12. L'aggiunta di un piano............................................................................................................................................... 18-13. Il colore del piano...................................................................................................................................................... 18-14. La volta celeste.......................................................................................................................................................... 18-15. Ribaltamento delle normali....................................................................................................................................... 18-16. Il materiale della volta celeste................................................................................................................................... 18-17. Impostazione della Volta e del piano a 'singola faccia'............................................................................................. 18-18. La Selezione di tutte le Mesh..................................................................................................................................... 18-19. Preparazione per la soluzione di Radiosità................................................................................................................ 18-20. Le impostazioni della Radiosità................................................................................................................................ 18-21. La soluzione di Radiosità.......................................................................................................................................... 18-22. Il Rendering della soluzione di radiosità................................................................................................................... 18-23. La mesh del Raider.................................................................................................................................................... 18-24. Separazione delle parti del Raider per applicarvi le texture...................................................................................... 18-25. Il materiale "Metallico"............................................................................................................................................. 18-26. Quattro textures, dall'angolo in alto a sinistra, in senso orario: RaiderBM, RaiderDI, Markings, Raider................ 18-27. Impostazioni della Texture........................................................................................................................................ 18-28. L'anteprima del materiale completo.......................................................................................................................... 20-1. La Pulsantiera Animazione.......................................................................................................................................... 20-2. L'emittente................................................................................................................................................................... 20-3. I Pulsanti delle Particelle............................................................................................................................................. 20-4. Impostazioni delle Particelle....................................................................................................................................... 20-5. Le impostazioni dell'Alone [Halo].............................................................................................................................. 20-6. Stelle cadenti................................................................................................................................................................ 20-7. Impostazioni delle Particelle Duplicate ai Vertici....................................................................................................... 20-8. Il rendering delle particelle Duplicate ai Vertici......................................................................................................... 20-9. Impostazione del bivacco............................................................................................................................................ 20-10. Le impostazioni del fuoco con le particelle............................................................................................................... 20-11. Il materiale delle Fiamme..........................................................................................................................................

15

20-12. La Texture delle fiamme............................................................................................................................................ 20-13. La IPO del Materiale per il fuoco.............................................................................................................................. 20-14. Il rendering finale....................................................................................................................................................... 20-15. L'esplosione............................................................................................................................................................... 20-16. Il materiale per la nube dell'esplosione...................................................................................................................... 20-17. Il materiale per le scintille......................................................................................................................................... 20-18. La Texture per entrambi............................................................................................................................................ 20-19. Il sistema di particelle per la nube............................................................................................................................. 20-20. Il sistema di particelle per le scintille........................................................................................................................ 20-21. I pulsanti della Moltiplicazione delle particelle........................................................................................................ 20-22. Fuochi d'artificio, "Material 1".................................................................................................................................. 20-23. L'inserimento di un secondo materiale all'emittente.................................................................................................. 20-24. "Material 2"............................................................................................................................................................... 20-25. Impostazioni delle Particelle..................................................................................................................................... 20-26. Impostazioni del lattice.............................................................................................................................................. 20-27. Effetti della deformazione del lattice......................................................................................................................... 20-28. Particelle normali, a sinistra; particelle Vettore, al centro; e oggetti Duplicati ai Vertici che seguono le particelle, a destra. ..................................................................................................................................................................................... 20-29. Impostazioni delle particelle statiche........................................................................................................................ 20-30. Impostazioni del Materiale........................................................................................................................................ 20-31. Impostazioni della Banda di Colori [Colorband] della Texture................................................................................ 20-32. Impostazione della Texture nei Pulsanti del Materiale.............................................................................................. 20-33. Il risultato finale......................................................................................................................................................... 21-1. L'effetto Costruzione Progressiva [Build]................................................................................................................... 21-2. Il pannello di controllo dell'effetto Wave (Onda)........................................................................................................ 21-3. Origine dell'Onda......................................................................................................................................................... 21-4. Tipi di fronti d'Onda.................................................................................................................................................... 21-5. I controlli della forma d'Onda...................................................................................................................................... 21-6. Caratteristiche del fronte d'Onda................................................................................................................................. 21-7. I controllo del tempo dell'Onda................................................................................................................................... 22-1. Una semplice scena con cui effettuare le prove........................................................................................................... 22-2. La mesh genitrice può essere una qualunque primitiva............................................................................................... 22-3. L'uomo è imparentato al cerchio................................................................................................................................. 22-4. I pulsanti dell'Animazione........................................................................................................................................... 22-5. In ogni vertice del cerchio viene posto un uomo......................................................................................................... 22-6. Modifica della dimensione del cerchio in Modo Edit................................................................................................. 22-7. Una seconda fila di uomini di Magritte....................................................................................................................... 22-8. Si facciano apparire gli assi dell'oggetto per avere la disposizione che si vuole........................................................ 22-9. L'asse Y negativo è allineato alla normale al vertice (che punta verso il centro del cerchio)..................................... 22-10. L'asse Y positivo è allineato alla normale................................................................................................................. 22-11. L'asse X positivo è allineato alla normale................................................................................................................. 22-12. L'asse Z positivo è allineato alla normale.................................................................................................................. 22-13. Lo strano tentacolo e la versione con SubSurfs......................................................................................................... 22-14. Riferimento locale del tentacolo................................................................................................................................ 22-15. Le Duplicazioni ai Vertici non ruotate...................................................................................................................... 22-16. Le Duplicazioni ai Vertici ruotate............................................................................................................................. 22-17. Il nostro modello completo........................................................................................................................................ 22-18. Il profilo dell'anello................................................................................................................................................... 22-19. La sezione trasversale dell'anello.............................................................................................................................. 22-20. Impostazioni della curva: Curve Path e Curve Follow.............................................................................................. 22-21. Rimozione dell'origine............................................................................................................................................... 22-22. Puntamento degli assi giusti...................................................................................................................................... 22-23. DupliFrame!............................................................................................................................................................... 22-24. I valori per il DupliFrame. Nota "DupEnd: 35" termina l'anello prima che finisca la curva.................................... 22-25. Rendere Reali i Duplicati.......................................................................................................................................... 22-26. Il rivestimento dell'anello..........................................................................................................................................

16

22-27. L'anello rivestito........................................................................................................................................................ 22-28. Uso di una Curva-Percorso [Curve Path] per modellare la catena............................................................................ 22-29. Le impostazioni della curva....................................................................................................................................... 22-30. Regolazione dei DupliFrame..................................................................................................................................... 22-31. La rotazione dell'anello.............................................................................................................................................. 22-32. La catena fatta col DupliFrame................................................................................................................................. 22-33. Una Superficie Circolare........................................................................................................................................... 22-34. Una sezione trasversale trapezoidale......................................................................................................................... 22-35. La sezione trasversale trapezoidale, ruotata e traslata............................................................................................... 22-36. La IPO della Rotazione per la sezione trasversale.................................................................................................... 22-37. La IPO di traslazione per la sezione trasversale........................................................................................................ 22-38. La IPO Dimensione [Size] per la sezione trasversale................................................................................................ 22-39. Cavatappi coi DupliFrame attivati............................................................................................................................ 22-40. Cavatappi con i Duplicati resi reali........................................................................................................................... 22-41. Una brutta forchetta................................................................................................................................................... 22-42. Un Lattice 2x2x2....................................................................................................................................................... 22-43. Si usa una risoluzione adatta, ma senza esagerare..................................................................................................... 22-44. Deformare il lattice è un piacere!.............................................................................................................................. 22-45. Piegare cose............................................................................................................................................................... 22-46. Una bella forchetta.................................................................................................................................................... 22-47. Un ragazzaccio.......................................................................................................................................................... 22-48. Curvare le cose.......................................................................................................................................................... 22-49. Si dimensiona il lattice per adattarlo alla bottiglia.................................................................................................... 22-50. Modifica del Lattice in modo che il ragazzaccio si accomodi nella sua bottiglia..................................................... 22-51. Claustrofobico?.......................................................................................................................................................... 22-52. Il rendering finale. Credetemi, lo meritava!.............................................................................................................. 23-1. Colonne su un piano.................................................................................................................................................... 23-2. Un semplice rendering................................................................................................................................................. 23-3. Un rendering con l'effetto Nebbia [Mist] di Blender................................................................................................... 23-4. L'impostazione del piano............................................................................................................................................. 23-5. Il piano Duplicato ai Frame......................................................................................................................................... 23-6. Riconformazione della IPO del piano Duplicato ai Frame.......................................................................................... 23-7. Riconformazione della IPO del piano Duplicato ai Frame.......................................................................................... 23-8. Impostazione del Materiale base................................................................................................................................. 23-9. Texture limitata in altezza........................................................................................................................................... 23-10. Impostazioni del Materiale base per la texture della nebbia [cloud]......................................................................... 23-11. Le impostazioni della texture Nubiforme [Cloud]..................................................................................................... 23-12. Il rendering finale....................................................................................................................................................... 24-1. Il risultato finale........................................................................................................................................................... 24-2. Rimozione del cubo dalla vista della telecamera........................................................................................................ 24-3. Un rendering del cubo pieno........................................................................................................................................ 24-4. ...ed un rendering del cubo a Fil-di-Ferro.................................................................................................................... 24-5. Imposizione del nome del file di output dell'animazione............................................................................................ 24-6. L'inserimento di una striscia video.............................................................................................................................. 24-7. Disposizione della striscia........................................................................................................................................... 24-8. Miscelazione delle due strisce video........................................................................................................................... 24-9. Il pulsante per l'anteprima dell'Editor di Sequenze...................................................................................................... 24-10. Inserimento della finestra di anteprima..................................................................................................................... 24-11. La sequenza con 4 strisce del cubo a Fil-di-Ferro messe assieme............................................................................. 24-12. Il pulsante della IPO della sequenza.......................................................................................................................... 24-13. Definizione della luminosità di uno strato con una IPO............................................................................................ 24-14. Quattro cubi a 'Fil-di-Ferro' combinati con gli effetti di dissolvenza [fading].......................................................... 24-15. Una META striscia con nome................................................................................................................................... 24-16. La maschera dell'animazione..................................................................................................................................... 24-17. Sottrazione della maschera dal video........................................................................................................................ 24-18. La maschera sottratta.................................................................................................................................................

17

24-19. La maschera moltiplicata.......................................................................................................................................... 24-20. Inserimento dei due effetti......................................................................................................................................... 24-21. Gli strati traslati due volte......................................................................................................................................... 24-22. Inserimento di un cerchio di 20 vertici...................................................................................................................... 24-23. Ribaltamento del cerchio attorno al cursore.............................................................................................................. 24-24. La telecamera dentro il tunnel................................................................................................................................... 24-25. La vista telecamera dell'interno del tunnel................................................................................................................ 24-26. La IPO di rotazione del tunnel senza variazioni d'inizio e di fine............................................................................. 24-27. La rotazione della telecamera per un effetto più spettacolare................................................................................... 24-28. Un tunnel scavato...................................................................................................................................................... 24-29. Impostazione dell'effetto per il fondale..................................................................................................................... 24-30. Inserimento di casualità con una IPO irregolare........................................................................................................ 24-31. Il logo saltellante....................................................................................................................................................... 24-32. Le impostazioni del sistema di particelle.................................................................................................................. 24-33. I rettangoli Duplicati ai Vertici (le particelle)........................................................................................................... 24-34. L'impostazione della nebbia...................................................................................................................................... 24-35. Impostazione dei parametri della nebbia................................................................................................................... 24-36. Il rendering delle particelle rettangolari.................................................................................................................... 24-37. Il doppio uso dell'animazione del logo...................................................................................................................... 24-38. L'animazione delle particelle combinata con l'animazione del logo......................................................................... 24-39. La transizione dal nero al bianco............................................................................................................................... 24-40. La transizione dal bianco al video............................................................................................................................. 24-41. La transizione da video a nero................................................................................................................................... 24-42. Combinazione del tunnel e del cubo a Fil-di-Ferro................................................................................................... 24-43. Combinazione del tunnel, del cubo a Fil-di-Ferro e di quello pieno......................................................................... 24-44. Inserimento dell'animazione particelle/logo.............................................................................................................. 24-45. Inserimento dell'animazione dell'ingrandimento del logo......................................................................................... 24-46. Inserimento di un ultimo dettaglio............................................................................................................................. 24-47. La sequenza completa................................................................................................................................................ 25-1. La barra degli strumenti del testo................................................................................................................................ 25-2. La GUI del nostro esempio.......................................................................................................................................... 25-3. Il risultato del nostro script di esempio....................................................................................................................... 27-1. Impostazione della Dir della Texture ed il pulsante di avvio...................................................................................... 27-2. I pulsanti nell'intestazione di Yable............................................................................................................................. 27-3. Pulsantiera delle Impostazioni Globali [Global Settings]........................................................................................... 27-4. Impostazioni dell'Illuminazione Globale..................................................................................................................... 27-5. Impostazioni dello Sfondo [Background].................................................................................................................... 27-6. Impostazioni della nebbia [Fog].................................................................................................................................. 27-7. Impostazioni della Profondità di Campo [Depth of Field].......................................................................................... 27-8. Impostazioni del Filtro Anti-rumore [Anti Noise]....................................................................................................... 27-9. Impostazioni della Risoluzione................................................................................................................................... 27-10. Impostazioni del Rendering....................................................................................................................................... 27-11. Selezione del Livello [Layer].................................................................................................................................... 27-12. I Pulsanti del Materiale.............................................................................................................................................. 27-13. I Modulatori del Materiale......................................................................................................................................... 27-14. Il Pannello della GUI per la Luce.............................................................................................................................. 27-15. Opzioni della Luce Diretta........................................................................................................................................ 27-16. Impostazione delle Caustiche.................................................................................................................................... 27-17. Impostazione delle Caustiche.................................................................................................................................... 27-18. Vernice dell'auto........................................................................................................................................................ 27-19. Le parti cromate......................................................................................................................................................... 27-20. Parabrezza e gli altri vetri..........................................................................................................................................

18

Lista degli Esempi 25-1. Intestazione dello script....................................................................................................................................... 25-2. Disegno della GUI....................................................................................................................................................... 25-3. Gestione degli eventi................................................................................................................................................... 25-4. Intestazione dello script...............................................................................................................................................

19

I. Introduzione a Blender Questa prima parte della Documentazione vi guiderà attraverso il download, l'installazione, e se si decide di scaricarsi i sorgenti, la compilazione di Blender. Blender ha una interfaccia veramente insolita, altamente ottimizzata per la produzione di grafica 3d. Questo può apparire strano ai nuovi utenti, ma si proverà la sua potenza a lungo termine. Si raccomanda vivamente di leggere con cura il Capitolo 3, sia per familiarizzare con l'interfaccia che con le convenzioni usate nella Documentazione. L'ultimo capitolo di questa parte, il Capitolo 4, darà anche una scorsa alle capacità di Blender. Ovviamente, Blender può fare molto di più di questo, ma questa è solo una partenza veloce.

Capitolo 1. Introduzione Cos'è Blender? Blender è un insieme integrato di strumenti per la creazione di un'ampia gamma di contenuti 3D. Esso offre tutte le funzionalità per la modellazione, il rendering, l'animazione, la post-produzione, la creazione e la riproduzione di contenuto interattivo 3D con i singolari benefici dell'operabilità tra più piattaforme e la dimensione del file da scaricare inferiore a 2.5MB. Indirizzato ai professionisti dei media ed agli artisti, Blender può essere usato per creare visualizzazioni 3D, sia diapositive come che video di qualità televisiva, mentre l'inclusione di un motore 3D in tempo reale permette la creazione di contenuti 3D interattivi per riproduzioni stand-alone. Sviluppato originariamente dalla società 'Not a Number' (NaN), ora Blender viene portato avanti come 'Software Libero', con i sorgenti disponibili sotto GNU GPL. Principali caratteristiche: •

Piattaforma di creazione completamente integrata, in grado di offrire una vasta gamma di strumenti essenziali per la creazione di contenuti 3D, compresa la modellazione, l'animazione, il rendering, la post produzione video e la creazione di giochi;



Piccola dimensione dell'eseguibile, per una facile distribuzione;



Multi piattaforma, con GUI basata su OpenGL, pronto all'uso su tutte le versioni di Windows, Linux, OSX, FreeBSD, Irix e Sun;



Architettura 3D di alta qualità che consente la creazione rapida ed efficace di un flusso di lavoro;



Canale di supporto gratuito tramite www.blender3d.org;



Una comunità di più di 250.000 persone nel mondo;

L'ultima versione di Blender si può scaricare su download.blender.org.

La Storia di Blender Nel 1988 Ton Roosendaal ha co-fondato lo studio di animazione olandese NeoGeo. NeoGeo è diventata rapidamente il più grande studio di animazione 3D dell'Olanda ed una delle principali case di animazione in Europa. NeoGeo ha creato delle produzioni vincitrici di premi (European Corporate Video Awards 1993 e 1995) per grandi aziende come clienti come la Philips, multinazionale dell'elettronica. All'interno di NeoGeo, Ton è stato responsabile sia della direzione artistica sia dello sviluppo interno del software. Dopo un'attenta riflessione, Ton decise che l'insieme dei strumenti 3D propri della NeoGeo era troppo vecchio ed ingombrante da mantenere ed aggiornare e bisognava riscriverle daccapo. Nel 1995 è iniziata questa riscrittura ed fu destinata a diventare la piattaforma di creazione di software 3D che noi tutti conosciamo come Blender. Dato che NeoGeo ha continuato a rifinire e migliorare Blender, diventò chiaro a Ton che Blender potesse essere usato come strumento per altri artisti, al di fuori della NeoGeo. Nel 1998, Ton decise di fondare una nuova azienda chiamata Not a Number (NaN) come spin-off della NeoGeo per altri mercati e per lo sviluppo di Blender. Nel cuore della NaN c'era il desiderio di creare e distribuire gratuitamente una piattaforma di crea-

zione 3D compatta e multi-piattaforma. Inizialmente fu un concetto rivoluzionario dato che la maggior parte dei modellatori costavano migliaia di dollari americani. La NaN ha sperato di portare ad un livello professionale gli strumenti di modellazione 3D e di animazione prima di raggiungere il grande pubblico. Il modello aziendale della NaN era legato alla fornitura di prodotti commerciali e servizi intorno a Blender. Nel 1999 la NaN ha partecipato alla sua prima conferenza Siggraph nello sforzo di un'ulteriore promozione di Blender. La prima convention del Siggraph 1999 di Blender è stata un grande successo ed ha suscitato un enorme interesse sia della stampa che dei partecipanti. Blender è stato un successo ed è stato confermato il suo potenziale! Sulla scia del successo del Siggraph all'inizio del 2000, la NaN aveva un finanziamento privilegiato di 4.5 milioni di Euro da dai capitalisti d'impresa. Questo grande afflusso di cassa ha consentito alla NaN di espandersi rapidamente nelle sue operazioni. Ben presto la NaN ha raggiunto i 50 dipendenti sparsi nel mondo per migliorare e promuovere Blender. Nell'estate del 2000, fu rilasciato Blender v2.0. In tale versione di Blender fu aggiunto il motore per i giochi alla piattaforma 3D. Per la fine del 2000, il numero di utenti registrati sul sito web della NaN superava i 250.000. Sfortunatamente, le ambizioni della NaN e le opportunità non incontrarono le capacità dell'azienda e la realtà del mercato del momento. Questa ristrutturazione portò ad un riavvio della NaN con nuovi finanziatori ed un'azienda più piccola nell'aprile 2001. Sei mesi dopo, fu lanciato il primo prodotto software commerciale della NaN, Blender Publisher. Questo prodotto era destinato al mercato emergente dei media 3D interattivi basati su web. A causa delle vendite deludenti e del clima di difficoltà economiche in corso, i nuovi investitori decisero di fermare tutte le operazioni della NaN. La chiusura includeva anche la cessazione dello sviluppo di Blender. Sebbene la versione di allora di Blender fosse chiaramente difettosa, con una complessa architettura software interna, le caratteristiche incomplete ed un modo non-standard della GUI, si ebbe un entusiastico supporto della comunità di utenti e di clienti che hanno acquistato Blender Publisher nel passato, Ton non poteva lasciare che Blender sparisse nell'oblio. Dal riavvio della società con un team abbastanza ampio di sviluppatori non fu possibile, nel Marzo 2002 Ton Roosendaal ha fondato l'organizzazione non-profit Blender Foundation. Il primo obiettivo della Blender Foundation è stato di trovare un modo per continuare lo sviluppo e la promozione di Blender come un progetto fondato sulla comunità Open Source (http://www.opensource.org/). Nel luglio del 2002, Ton è riuscito ad ottenere dagli investitori della NaN il passaggio unico alla fondazione Blender per tentare di avere Blender in Open Source. La campagna "Free Blender" ha cercato di raggiungere 100,000 EUR affinché tale Fondazione potesse acquistare i diritti dei codici sorgenti di Blender e la proprietà dei diritti intellettuali dagli investitori della NaN e di conseguenza il rilascio di Blender alla comunità open source. Con un gruppo di entusiastici volontari, tra cui diversi ex impiegati della NaN, iniziò la campagna per raccogliere fondi per "Liberare Blender". Con piacevole sorpresa di tutti la campagna raccolse 100.000 EUR in sole sette settimane. La domenica del 13 ottobre 2002, Blender è stato rilasciato al mondo nei termini della GNU General Public License (GPL). Lo sviluppo di Blender continua in questi giorni condotto da un vasto gruppo di volontari da tutto il mondo guidati dal creatore originale di Blender, Ton Roosendaal. Storia di Blender e tappe principali •

1.00 Gennaio 1995 Blender sviluppato nello studio di animazione NeoGeo



1.23 Gennaio 1998 SGI Versione pubblicata su web, IrisGL



1.30 Aprile 1998 Versioni per Linux e FreeBSD, porting per OpenGL ed X



1.3x Giugno 1998 Fondazione della NaN



1.4x Settembre 1998 Rilasciate le versioni per Sun e Linux Alpha



1.50 Novembre 1998 Pubblicato il primo Manuale



1.60 Aprile 1999 C-key (nuove caratteristiche bloccate, $95), rilasciata versione per Windows



1.6x Giugno 1999 Rilasciate versioni per BeOS e PPC



1.80 Giugno 2000 Fine della of C-key, Blender di nuovo completamente libero



2.00 Agosto 2000 Motore interattivo 3D e in tempo reale



2.10 Dicembre 2000 Nuovo motore, simulazione leggi fisiche e Python



2.20 Agosto 2001 Sistema di animazione dei Personaggi



2.21 Ottobre 2001 Lancio di Blender Publisher



2.2x Dicembre 2001 Versione per Mac OSX



13 Ottobre 2002 Blender diventa Open Source, Prima Blender Conference



2.25 Ottobre 2002 Blender Publisher diventa liberamente disponibile



Tuhopuu1 Ottobre 2002 Viene creata la ramificazione sperimentale di Blender, un'arena di programmatori



2.26 Febbraio 2003 Il primo vero Blender Open Source



2.27 Maggio 2003 Il secondo Blender Open Source



2.28x Luglio 2003 La prima della serie 2.28x



2.30 Ottobre 2003 Alla seconda Blender Conference viene presentato il rifacimento della UI della 2.3x



2.31 Dicembre 2003 Aggiornamento al progetto stabile 2.3x UI



2.32 Gennaio 2004 Importanti revisioni delle funzionalità interne del rendering

Il Software Libero e la GPL Quando si sente di "software libero", la prima cosa che viene in mente è che "non costa nulla". Mentre ciò è vero per la maggior parte dei casi, il termine "software libero" [free software] è usato dalla Free Software Foundation (iniziatori del Progetto GNU e creatori della GNU General Public License) nel senso di "libero come in libertà" anziché "senza costo, gratis". Il software libero in questo senso è un software che si è liberi di usare, copiare, modificare, ridistribuire, senza limiti. Di contro questo con la licenza della maggior parte dei programmi commerciali, è consentito caricare il software su un solo computer, non è permesso fare copie né vedere il codice sorgente. Il software libero concede un'incredibile libertà all'utente finale; inoltre, dato che il codice sorgente è disponibile universalmente, ci sono molte possibilità che i bachi vengano trovati e corretti. Quando un programma è distribuito con sotto la licenza GNU General Public License (la GPL): •

si ha il diritto di usare il programma per qualsiasi scopo;



si ha il diritto aver accesso al codice sorgente e di poterlo modificare;



si ha il diritto di copiare e distribuire il programma;



si ha il diritto di migliorare il programma e rilasciare le proprie versioni.

In cambio di questi diritti, si hanno alcune responsabilità se si distribuisce un programma GPL, per proteggere la propria e l'altrui libertà: •

Si deve fornire una copia della GPL col programma, in modo che il destinatario sappia i suoi diritti sotto la licenza.



Si deve includere il codice sorgente o renderlo liberamente disponibile.



Se si modifica il codice e si distribuiscono le versioni modificate, si devono licenziare le proprie modifiche sotto la GPL e rendere disponibile il codice delle modifiche. (Non si può usare il codice sotto GPL in un programma proprietario).



Non si possono applicare restrizioni alla licenza del programma sotto i termini della GPL. (Non si può trasformare un programma GPL in un prodotto proprietario).

Per ulteriori informazioni sulla GPL, si controlli il sito Web del Progetto GNU (http://www.gnu.org). Per riferimento, una copia della GNU General Public License è inclusa nel Volume II.

Ottenere Supporto - Le Comunità Blender Essere liberamente disponibile all'inizio, col fatto di avere il codice sorgente disponibile, ha favorito molto l'adozione di Blender. Una grande, stabile ed attiva comunità di utenti si è raccolta attorno a Blender sin dal 1998. La comunità ha mostrato il meglio nella liberazione dello stesso Blender, sotto la licenza GNU GPL alla fine dell'estate 2002. La comunità stessa ora è suddivisa in due, grandi siti sovrapposti: 1. La Comunità di Sviluppo, intorno al sito della Blender Foundation http://www.blender.org/. Questo è il centro di sviluppo del progetto, comitati delle Funzionalità e della Documentazione, il repository CVS con i sorgenti di Blender, tutta la documentazione dei sorgenti, ed i relativi forum pubblici di discussione. Gli sviluppatori che producono codice per lo stesso Blender, per Python, scrittori della documentazione e chiunque lavori per lo sviluppo di Blender in generale può essere trovato qui. 2. La Comunità degli utenti, intorno al sito indipendente http://www.elysiun.com/. Qui gli artisti di Blender, creatori di giochi e

fan si radunano per mostrare le loro creazioni, ricevere critiche, e rispondere per aiutare per una migliore percezione delle funzionalità di Blender. Qui si trovano anche i tutorial di Blender e la Base della Conoscenza. Questi due siti web non sono le uniche risorse di Blender. La comunità mondiale ha creato una moltitudine di siti indipendenti, in lingue locali o dedicati ad argomenti specifici. Un elenco costantemente aggiornato delle risorse di Blender lo si può reperire presso i siti summenzionati. Per una risposta immediata online ci sono tre chat boxes permanentemente aperte su irc.freenode.net. Ci si può unire tramite il client IRC client preferito. Le Chat boxes sono #blenderchat, #blenderqa e #gameblender. La prima è accessibile anche senza un client IRC, usando un semplice Browser Web abilitato per Java tramite il sito di elYsiun (http://www.elysiun.com/).

Capitolo 2. Installazione A partire da Blender v2.31 Blender è disponibile sia come eseguibile binario che come codice sorgente sul sito della Fondazione (http://www.blender.org/). Dalla pagina principale si cerchi la sezione 'Downloads'. Ad ogni modo, per un uso corretto di tale libro, è consigliabile usare la versione fornita sul CDROM della Guida 2.3. Laddove nel testo seguente si menzionerà un "download", si dovrà intendere il recupero dal CDROM.

Download ed installazione della distribuzione binaria La distribuzione binaria è in 6 versioni base: •

Windows



Linux



MacOSX



FreeBSD



Irix



Solaris

La versione Linux è in 4 diverse sotto-versioni, per architetture Intel e PowerPC, con librerie collegate staticamente o caricate dinamicamente. La differenza tra la versione statica e quella dinamica è importante. La versione statica ha le librerie OpenGL compilate internamente. Questo fa s' che Blender giri sul sistema senza usare acceleratori grafici hardware. L'uso della versione statica è per controllare se Blender gira quando fallisce la versione dinamica! OpenGL viene usato in Blender per tutti i disegni, inclusi i menù ed i pulsanti. Questa dipendenza richiede una opportuna installazione conforme di OpenGL secondo i requisiti del proprio sistema. Non tutti i fornitori di schede 3D forniscono tale conformità, specie le schede economiche per il mercato dei giochi. Ovviamente dato che il rendering viene eseguito da motore del rendering di Blender nella memoria centrale e dalla CPU principale della propria macchina, una scheda grafica con accelerazione hardware non modifica i tempi del rendering stesso.

Windows Installazione Rapida Si scarica il file blender-2.3#-windows.exe, dove 2.3# è il numero della versione, dalla sezione downloads del sito Web di Blender. Si avvia l'installazione con un doppio click sul file. Vengono poste alcune domande, su quale debbano essere i default giusti. Una volta completata l'installazione, si può subito avviare Blender, o usare le voci nel menù Start.

Istruzioni approfondite Si scarica il file blender-2.3#-windows.exe dalla sezione downloads del sito Web di Blender. Si sceglie di scaricarlo (se richiesto), si seleziona una posizione e click su "Save". Con Explorer si cerca la posizione dove si è salvato il file e doppio click per avviare l'installazione.

La prima dialog presenta la licenza. Viene richiesto di accettarla se si vuole che l'installazione proceda Dopo aver accettato la licenza, si selezionano i componenti che si vogliono installare (ce n'è solo uno, Blender) e le ulteriori azioni che si vogliono intraprendere. Queste sono tre: Aggiungere una scorciatoia [shortcut] nel menù Avvio [Start], Aggiungere l'icona di Blender sulla Scrivania [desktop], associare i file .blend a Blender. Per default sono tutti marcati. Se non si vogliono alcune di esse basta semplicemente smarcarle. Una volta fatto, click su Next. Si seleziona una directory in cui installare i file (il default dovrebbe andar bene), e click su Next per installare Blender. Si preme Close quando l'installazione è finita. In seguito verrà chiesto se si vuol avviare immediatamente Blender. Ora Blender è installato e può essere avviato dal menù Start (dalla routine di installazione è stata creata una voce "Blender Foundation") o doppio click su un file Blender (*.blend).

OSX Installazione si scarica il file blender-2.3#-darwin-6.6-powerpc.dmg dalla sezione downloads del sito Web di Blender. Lo si estrae con un doppio click sul file. Questo aprirà una directory con diversi file. Dato che Blender usa OpenGL per tutta la GUI, ed anche il Mac OSX disegna tutta la Scrivania [Desktop] con OpenGL si dovrà controllare prima di avere VRAM sufficiente nel proprio sistema. Sotto gli 8 MB di VRAM Blender non gira affatto. Fino a 16 MB di VRAM si avrà bisogno di impostare il sistema a "1000s of colors" (System Preferences -> Displays). Ora si può usare Blender con un doppio click sulla sua icona. Oppure trascinare l'icona di Blender sul Dock per creargli un alias. Blender inizia per default in una finestra più piccola. Si usa il pulsante "+" nell'intestazione della finestra per ampliarla al massimo. Ulteriori consigli e suggerimenti sulla versione OSX si possono reperire nel file OSX tips.rtf nella directory di installazione.

Linux Installazione Rapida Si scarica il file blender-2.3#-linux-glibc#.#.#-ARCH.tar.gz dalla sezione downloads del sito Web di Blender. Qui 2.3# è la versione di Blender, #.#.# è la versione glibc e ARCH è l'architettura della macchina, o i386 o powerpc. Si deve prelevare quella coincidente col proprio sistema, si ricordi di scegliere tra la versione statica e la dinamica. Si scompatta l'archivio in un posto a propria scelta. Ciò creerà la directory blender-2.3#-linux-glibc#.#.#-ARCH, in cui si potrà trovare il file binario blender. Per avviare blender basta aprire una shell ed eseguire ./blender, ovviamente quando sta girando X.

Istruzioni approfondite Si scarica il file blender-2.3#-linux-glibc#.#.#-ARCH.tar.gz dalla sezione downloads del sito Web di Blender. Si sceglie di scaricarla (se richiesto), si seleziona una posizione e click su "Save". Quindi si naviga verso la posizione in cui si vuol installare Blender(per es. /usr/local/) e si scompatta l'archivio (con tar xzf /path/to/blender-2.3#-linux-glibc#.#.#-ARCH.tar.gz). Se si vuole, si può rinominare la directory risultante da blender-2.3#-linux-glibc#.#.#-ARCH a qualcosa di più breve, per es. solo blender. Ora Blender è installato e può essere avviato sulla linea di comando immettendo in una shell cd /path/to/blender seguito dalla pressione del tasto Enter. Se si usa KDE o Gnome si può avviare Blender usando il proprio file manager navigando sull'eseguibile di Blender e doppio click su di esso. Se si usa il gestore di finestre Sawfish, si potrebbe dover aggiungere una linea simile a ("Blender" (system "blender &")) al proprio file .sawfish/rc . Per aggiungere l'icona del programma in KDE 1. Si seleziona il "Menu Editor" dal sottomenù System del menù K. 2. Si seleziona il sottomenù chiamato "Graphics" nel menù list. 3. Click sul pulsante "New Item". Apparirà una dialog box che chiederà di creare un nome. Si crea e si digita un nome appropriato click "OK". "Blender" o "Blender 2.3#" sarebbero delle scelte logiche, ma questo non influisce sul

funzionamento del programma. 4. Si dovrà tornare nel menù list, e si espanderà il sottomenù Graphics, con la nuova voce evidenziata. Nella sezione giusta ci si assicuri che siano riempiti i seguenti campi: "Name", "Comment", "Command", "Type" e "Work Path". •

Il campo "Name" dovrebbe già essere riempito, ma lo si può cambiare in qualsiasi momento.



Si riempie il campo "Comment". Qui è dove si definisce l'etichetta [tag] che appare quando si passa sull'icona.



Click sull'icona della cartella [folder] alla fine del campo "Command" per cercare l'icona del programma blenderpublisher. Si seleziona l'icona del programma e click su "OK" per tornare al Menu Editor.



Il "Type" dovrebbe essere "Application".



Il "Work Path" dovrebbe essere lo stesso del "Command", col nome del programma rimosso. Per esempio, se il campo "Command" indica /home/user/blender-publisher-#.##-linux-glibc#.#.#-ARCH/blender , "Work Path" dovrebbe essere /home/user/blender-publisher-#.##-linux-glibc#.#.#-ARCH/.

5. Click su "Apply" e si chiude il Menu Editor. Per aggiungere un collegamento [link] a Blender sul KPanel, click destro su un punto vuoto del KPanel, quindi su "Add", "Button", "Graphics", e si seleziona "Blender" (o qualsiasi cosa si sia immessa al punto 3). In alternativa, si può navigare attraverso il sottomenù "Configure Panel" del menù K, per "Add", "Button", "Graphics", "Blender". Per aggiungere un'icona sul Desktop per Blender, si apre Konquerer (lo si trova sul Pannello per default, o nel sottomenù "System" del menù K) e si naviga per l'icona del programma dove lo si è scompattato. Click e si tiene premuto sull'icona del programma, e la si trascina da Konquerer in uno spazio vuoto sul proprio Desktop. Verrà richiesto Copy Here, Move Here o Link Here, si sceglie Link Here. Per aggiungere un'icona per Blender in GNOME 1. Si seleziona "Edit menus" dal sottomenù Panel del menù GNOME. 2. Si seleziona il sottomenù "Graphics", e click sul pulsante "New Item". 3. Nella parte destra, si riempiono i campi "Name:", "Comment:" e "Command:". Si riempie il campo "Name:" col nome del programma, per esempio "Blender". Lo si può chiamare come si vuole, questo è quello che apparirà nel menù, ma non riguarda il funzionamento del programma. Si riempie il campo "Comment:" con un commento descrittivo. Questo è quello che apparirà come tooltips. Si riempie il campo "Command:" col path completo del programma blenderpublisher, per esempio, /home/user/blender-publisher-#.##-linux-glibc#.#.#-ARCH/blender 4. Click sul pulsante "No Icon" per scegliere un'icona. Ci può essere o meno un'icona per Blender nella locazione di default. Se ne può creare una, o guardare le icone che vengono con KDE. Questa dovrebbe essere / opt/kde/share/icons/hicolor/48x48/apps/blender.png . Se la directory di installazione è diversa, la si può cercare in un Terminale o una Console col comando : find / -name "blender.png" -print 5. Click sul pulsante "Save" e si chiude il Menu Editor. Per aggiungere un'icona al Pannello, click destro su un'area vuota del Pannello, quindi si seleziona "Programs", "Graphics", "Blender". In alternativa, click sul menù GNOME, quindi si seleziona "Panel", "Add to panel", "Launcher from menu", "Graphics", "Blender". Per aggiungere un'icona al Desktop per Blender, si apre Nautilus (doppio click sull'icona Home nell'angolo in alto a sinistra del proprio Desktop, o click sul menù GNOME, quindi "Programs","Applications", "Nautilus"). Si naviga per la cartella che contiene l'icona del programma blenderpublisher. Click destro sull'icona, e la si trascina sul Desktop. Un menù chiederà di Copy Here, Move Here, Link Here o Cancel. Si seleziona Link Here.

FreeBSD Installazione Si scarica il file blender-2.3#-freebsd-#.#-i386.tar.gz dalla sezione downloads del sito Web di Blender. Qui 2.3# è la versione di Blender, #.# è la versione di FreeBSD e i386 è l'architettura della macchina. Per avviare Blender basta aprire una shell ed eseguire ./blender, ovviamente quando gira X.

Irix Install Si scarica il file blender-2.3#-irix-6.5-mips.tar.gz dalla sezione downloads del sito Web di Blender. Qui 2.3# è la versione di Blender, 6.5 è la versione di Irix e mips è l'architettura della macchina. Per avviare Blender basta aprire una shell ed eseguire ./blender, ovviamente quando gira X. Blender è stato originariamente sviluppato per la piattaforma IRIX, ma attualmente non è mantenuta in modo attivo per tutte le versioni delle workstation IRIX. Per qualche workstations sono stati riportati dei problemi di prestazioni.

Solaris Installazione Si scarica il file blender-2.3#-solaris-2.8-sparc.tar.gz dalla sezione downloads del sito Web di Blender. Qui 2.3# è la versione di Blender, 2.8 è la versione di Solaris e sparc è l'architettura della macchina. Attualmente non sono disponibili ulteriori istruzioni per Sun Solaris. Si prega di usare i forum del sito web di Blender per un supporto.

Compilazione di Blender dal sorgente A partire da Blender v2.31 Questo documento descrive gli strumenti necessari per compilare Blender dai sorgenti, sia da CVS che da un pacchetto sorgente. La compilazione da CVS richiede l'uso di più strumenti. Mentre questo può essere un po' più fastidioso che costruire da un pacchetto sorgente, può essere necessario per alcune persone. Per esempio, quando si vuol compilare Blender per una piattaforma non supportata o quando si vogliono implementare delle nuove funzionalità. La versione di questo documento è molto in anticipo. Questo vuol dire che è incompleto e che qualche procedura o qualche concetto possono non essere corretti per il proprio sistema Si prega ti ricordarsi ciò durante la lettura. Si consideri anche che Blender è un prodotto complesso per cui si richiederà di creare l'ambiente giusto.

Prelevare il sorgente Il seguente paragrafo descriverà come e ove prelevare i sorgenti necessari per compilare Blender.

Prelevare l'ultimo pacchetto sorgente stabile I sorgenti sono disponibili sul CDROM di accompagnamento di questo libro. Si possono anche scaricare dal sito web http://www.blender3d.org/Download/?sub=Source

Prelevare gli ultimi sorgenti da CVS CVS sta per Concurrent Versioning System (Sistema di Versioni Concorrenti). Esso è uno strumento software di configurazione che tiene i vari file sorgenti in un magazzino [repository] centrale CVS consente agli sviluppatori di aggiornasi rapidamente con l'ultimo stato del repository ed inviare le modifiche. Lo strumento tiene traccia delle modifiche per ciascuna versione di un file. Per avere lo stato corrente del repository, bisogna avere un username per accedere ai sorgenti. Questa caratteristica è opzionale, ma in uno sviluppo opensource, è quasi un'esigenza. Per inviare modifiche verso il repository, però, bisogna avere l'accesso da sviluppatore. Dato che questo documento descrive solo come prelevare i sorgenti nell'ultimo stato, la procedura di invio non viene descritta qui. Per avere i sorgenti dell'ultimo stato si usa: export CVSROOT=:pserver:[email protected]:/cvs01 cvs login password:Enter

cvs -z3 co blender Si prega di non usare un livello più alto di compressione per accedere al server di Blender.

Se si sta già lavorando su un set di file ottenuti dal server, si può usare il comando update per aggiornare i sorgenti allo stato attuale del repository. cd per l'albero del sorgente di Blender sul proprio sistema e si digita il seguente comando: cvs -z3 update.

Librerie esterne necessarie Blender è un pacchetto che usa tanti altri pacchetti esterni per espandere le sue funzionalità. Ciascuno di tali pacchetti ha, proprio come Blender, una storia di modifiche. Nessuna versione di tale pacchetto probabilmente avrà più funzionalità e meno problemi noti.Per sviluppatore è eccitante lavorare con le ultime funzionalità disponibile dell'ultimo strumento uscito. Ad ogni modo, il numero di sviluppatori là fuori è molto basso rispetto al numero di utenti cui non interessano le ultime funzionalità, tali utenti vogliono un'applicazione che funziona. Dato che Blender gira su più piattaforme, tutte queste piattaforme hanno le stesse funzionalità minime disponibili in pacchetti esterni. La tabella seguente mostra i pacchetti necessari e la versione minima di tali pacchetti. Straordinariamente è possibile che tali versioni minime vengano aumentate come richiesta per nuove funzionalità sia alta. Tabella 2-1. Versioni minime delle librerie esterne. Libreria

Versione

glibc

2.2.4

libjpeg

6b

libpng

1.0.14

libsdl

1.0

libz

1.1.4

mesa

3.4.2

openAL

N/A

openGL

1.1 (1.2 per l'engine)

python

2.2

Non tutte le librerie riguardano tutte le piattaforme. La seguente tabella dà una panoramica sulle piattaforme attualmente supportate e le librerie richieste. Una 'X' indica che la libreria è necessaria, un '-' indica che non lo è ed una 'O' indica che è opzionale.

Tabella 2-2. Librerie richieste a seconda delle piattaforme. Libreria

Linux

Windows

FreeBSD

IRIX

MacOS X

glibc

X

-

X

X

X

libjpeg

X

X

X

X

X

libpng

X

X

X

X

X

libsdl

O

O

O

O

O

libz

X

X

X

X

X

mesa

X

X

X

-

-

openAL

X

X

X

X

X

openGL

-

-

-

X

X

python

X

X

X

X

X

Strumenti necessari Avere le librerie necessarie installate ed i sorgenti di Blender scaricati sul sistema significa che si è ora in grado di compilare Blender. L'intero processo di compilazione richiede che sia disponibile qualche strumento sul proprio sistema. La tabella seguente, mostra l'elenco degli strumenti con la versione minima. La terza colonna mostra se lo strumento è richiesto solo per il CVS ('X'). Se lo strumento non è richiesto per la compilazione dei sorgenti, appare un '-'.

Tabella 2-3. Versioni minime degli strumenti. Strumento [Tool]

Versione

CVS

Note

autoconf

2.53

X

automake

1.6.2

X

cvs

1.11.1p1

X

docbook

3.1

O

doxygen

N/A

O

gawk

3.1.0

X

gcc

2.96

-

gettext

0.11

-

gmake

3.79.1

-

m4

1.4

X

sed

3.02

X

sh

2.05.1

-

Visual C++

6.0 SP5

-

Solo Windows

Python: Python non è incluso in questa tabella sebbene venga usato per compilare Blender. La ragione è che Python è necessario anche come libreria esterna e quindi dovrebbe già essere stato installato come scritto nella sezione precedente.

Compilare Blender Ci sono due sistemi di compilazione usando i compilatori gcc o cc; normali Makefile, che provengono dal periodo in cui Blender era sviluppato per la NaN, e lo stile di "configure" automake/autoconf. Usando "configure" si sovrascrivono i Makefile della NaN, quindi se ne deve scegliere l'uno. Per Windows MSVC, Blender supporta l'uso dei file di progetto ed i workspace. I file che descrivono dettagliatamente le informazioni della compilazione sono localizzati nella directory principale di Blender: •

INSTALL: informazione generale, link di download per le librerie



INSTALL.AUTO: uso degli script autoconf e configure



INSTALL.MAKE: uso dei normali makefile



INSTALL.MSVC: uso dei file di progetto Microsoft Visual C

Supporto tecnico •

portale: http://www.blender.org



panoramica: http://www.blender.org/docs/get_involved.html



mailing list: http://www.blender.org/mailman/listinfo/bf-committers/



bug tracker: http://projects.blender.org/tracker/?group_id=9



IRC: irc.freenode.net, #blendercoders

Capitolo 3. Capire l'interfaccia di Martin Kleppmann Se si è nuovi di Blender, si dovrebbe afferrare bene come si lavora con l'interfaccia utente prima di cominciare con la modellazione. I concetti che stanno dietro l'interfaccia di Blender non sono standard, e differiscono da altri pacchetti software 3D. Specialmente gli utenti Windows dovranno abituarsi al diverso modo con cui Blender gestisce i controlli, come le scelte dei pulsanti ed i movimenti del mouse. Ma questa differenza è infatti uno dei maggiori punti di forza di Blender: una volta capito il modo lavorare con Blender, scoprirete che si può lavorare molto velocemente e produttivamente. Inoltre, l'interfaccia di Blender è cambiata molto nel passaggio dalla versione 2.28 alla versione 2.3, cosicché anche gli utenti esperti possono beneficiare di questo capitolo.

Il concetto di interfaccia in Blender A partire da Blender v2.31 L'interfaccia utente è il mezzo per un'interazione a due vie tra l'utente ed il programma. L'utente comunica col programma tramite la tastiera ed il mouse; il programma dà una risposta tramite lo schermo ed il suo sistema a finestre.

Tastiera e mouse L'interfaccia di Blender utilizza un mouse a tre pulsanti ed una gran quantità di tasti attivi o scorciatoie [hotkeys] (per una discussione completa ed approfondita si faccia riferimento al Volume II). Se il mouse ha solo due pulsanti, è possibile emulare il pulsante centrale del mouse (la sezione Preferenze dell'utente e Temi descrive come fare). Si può usare un mouse con la rotellina, ma non è necessario, poiché ci sono anche delle appropriate scorciatoie da tastiera. Questo libro usa le seguenti convenzioni per descrivere l'input dell'utente: •

I pulsanti del mouse sono chiamati LMB (pulsante sinistro [Left Mouse Button]), MMB (pulsante centrale [Middle Mouse Button]) e RMB (pulsante destro [Right Mouse Button]).



Se il mouse ha una rotellina, MMB indica il cliccare sulla rotellina come se fosse un pulsante, mentre MW indica la rotazione della rotellina.



Le lettere dei tasti attivi sono indicate accodando KEY alla lettera, cioè con GKEY ci si riferisce alla lettera g della tastiera. I tasti possono essere combinati con i modificatori SHIFT, CTRL e/o ALT. Per i tasti modificatori viene generalmente omesso il suffisso KEY, per esempio CTRL-W o SHIFT-ALT-A.



Da NUM0 a NUM9, NUM+ e così via ci si riferisce ai tasti sul tastierino numerico. NumLock dovrebbe generalmente essere attivato.



Agli altri tasti ci si riferisce coi loro nomi, come per ESC, TAB, da F1 a F12.



Altri tasti speciali degni di nota sono quelli freccia, FrecciaSu, FrecciaGiù e così via.

Dato che Blender fa un uso esteso sia del mouse sia della tastiera, si è sviluppata una "regola d'oro" tra gli utenti di Blender: tieni una mano sul mouse e l'altra sulla tastiera! Se si usa normalmente una tastiera molto diversa dalla tastiera inglese o americana, si dovrebbe pensare seriamente a sostituirla con una inglese o americana quando si lavora con Blender. I tasti più frequentemente usati, sono raggruppati in modo da essere raggiungibili con la mano sinistra in posizione standard (il dito indice su FKEY) sulla tastiera inglese. Ciò presuppone che si usi il mouse con la destra.

Il sistema a finestre Ora è tempo di avviare Blender e cominciare a provare.

29

Capitolo 3. Capire l'interfaccia Figura 3-1. La scena di default di Blender.

La Figura 3-1 mostra lo schermo che si dovrebbe avere all'avvio di Blender (eccetto il testo aggiunto e le frecce). Di norma questo è suddiviso in tre finestre: il menù principale in alto, la grande Finestra 3D e la Finestra dei Pulsanti (o Pulsantiera) in basso. La maggior parte delle finestre hanno una testata [header] (la striscia su fondo grigio chiaro contenente i pulsanti icona - per tale ragione ci si riferisce alla testata come alla Barra degli strumenti [ToolBar] della finestra); se presente, la testata può essere posizionata in cima (come nella pulsantiera) o in basso (come nella Finestra 3D) nell'area di una finestra. Spostando il mouse su una finestra, si nota che la testata cambia in un grigio più chiaro. Questo segnala che essa ha il "focus"; tutti i tasti attivi che si premono influiranno sul contenuto di tale finestra. Si può facilmente personalizzare il sistema a finestre di Blender per seguire le proprie necessità e desideri. Si può creare una nuova finestra dividendone a metà una esistente. Questo si fa ponendo il focus sulla finestra che si vuol dividere (si sposta il puntatore del mouse su di essa), cliccando sul bordo con MMB o RMB, e selezionando Split Area (Figura 3-2). Ora si può regolare la posizione del nuovo bordo cliccando con LMB, o cancellare l'operazione premendo ESC. La nuova finestra inizierà come clone della finestra suddivisa, ma può in seguito essere impostata ad un tipo diverso, o per mostrare la scena da un altro punto di vista. Oggetti dell'interfaccia: Le etichette nei pulsanti dell'interfaccia, le voci dei menù e, in generale, tutto il testo mostrato sullo schermo è evidenziato in questo libro come questo.

Figura 3-2. Il menù Split per creare nuove finestre.

Si crea un nuovo bordo verticale scegliendo Split Area da un lato orizzontale, e viceversa. Si può ridimensionare ciascuna finestra trascinandone un bordo con LMB. Per ridurre il numero di finestre, si clicca su un bordo tra due finestre con MMB o

30

RMB e si sceglie Join Areas. La finestra risultante riceve le proprietà della finestra che possedeva in precedenza a quella col focus. Per stabilire la posizione di una testata si clicca con RMB sulla testata e si sceglie Top o Bottom. Si può anche nascondere la testata scegliendo No Header, ma questo è consigliabile solo se si conoscono tutti i tasti attivi pertinenti. Si può di nuovo mostrare una testata nascosta cliccando sul bordo della finestra con MMB o RMB e selezionando Add Header.

Tipi di finestre Ogni cornice della finestra può contenere diversi tipi e gruppi di informazioni, secondo la cosa su cui si sta lavorando. Questi possono includere modelli 3D, animazioni, materiali della superficie, script Python e così via. Si può selezionare il tipo di ciascuna finestra cliccando sul pulsante più a sinistra della propria testata con LMB (Figura 3-3). Figura 3-3. Il menù per la selezione del tipo di finestra.

Saranno spiegate le funzioni e l'uso dei rispettivi tipi di finestre nel seguito di questo libro. Per adesso si ha bisogno solo di ciò che riguarda i tre tipi di finestre già forniti nella scena di default di Blender: Viewport o Inquadratura 3D Fornisce una vista grafica nella scena su cui si sta lavorando. Si può vedere la scena da qualsiasi angolazione con diverse opzioni; si veda la sezione Navigare nello Spazio 3D per i dettagli. Avere diverse Viewports 3D sulla stessa scena può essere utile se si vogliono osservare le modifiche da diverse prospettive contemporaneamente. Finestra dei Pulsanti o Pulsantiera Contiene la maggior parte degli strumenti per la modifica di oggetti, superfici, textures, luci e molto altro. Si avrà continuamente necessità di tale finestra se non si conoscono tutti i tasti attivi a memoria. Infatti, se ne potrebbero avere più di una di queste finestre, ognuna con un diverso insieme di strumenti. Preferenze dell'utente (Menù principale) Questa finestra di solito è nascosta, cosicché è visibile solo la parte del menù - si veda la sezione Preferenze dell'utente e Temi per i dettagli. Essa tuttavia è usata raramente, dato che contiene le impostazioni globali della configurazione. Ci sono diverse novità in Blender 2.30. Prima di tutto le testate [headers] delle finestre tendono ad essere molto più pulite, meno zeppe di pulsanti, ed i menù ora sono presenti in molte testate. La maggior parte delle testate, immediatamente dopo questo primo pulsante Menù "Tipo di Finestra [Window Type]" espone una serie di menù; questa è una delle principali nuove caratteristiche dell'interfaccia 2.30. I menù ora consentono di accedere direttamente a molte regolazioni e comandi che precedentemente erano accessibili solo con tasti scorciatoia o pulsanti incomprensibili. I menù possono essere nascosti o essere visibili tramite il pulsante triangolare accanto ad essi. I menù non sono solo sensibili alla finestra (cambiano col tipo di finestra) ma sono sensibili anche al contesto (cambiano con l'oggetto selezionato) in modo da essere sempre molto compatti, mostrando solo le azioni che possono veramente essere eseguite.

31

Capitolo 3. Capire l'interfaccia Tutte le voci di menù mostrano il tasto attivo pertinente, se c'è. Il flusso di lavoro di Blender dà il meglio quando si usano i tasti attivi. Pertanto il resto di questo Libro presenterà per lo più i tasti attivi, invece che le voci dei Menù. I menù sono comunque preziosi dato che danno la più completa panoramica possibile di tutti gli strumenti e comandi che Blender offre. Una caratteristica delle finestre che talvolta risulta comoda per una modifica precisa, è l'ingrandimento a tutto schermo: se si usa la voce di menù appropriata View>>Maximize Window o il tasto attivo CTRL-FrecciaGiù, la finestra col focus sarà ampliata fino a riempire l'intero schermo. Per tornare alle dimensioni normali si usa ancora il pulsante View>>Tile Window o CTRLFrecciaSu.

Contesti, Pannelli e Pulsanti I pulsanti di Blender sono molto più avvincenti di quelli nella maggioranza delle altre interfacce utenti, ed essi sono diventati più belli nella 2.30. Questo è dovuto per lo più al fatto che sono basati su vettori e disegnati in OpenGL, cosa che li rende eleganti e ridimensionabili. I pulsanti sono raggruppati principalmente nella Pulsantiera. Con Blender 2.3 la pulsantiera mostra sei contesti principali, che possono essere scelti tramite la prima riga di icone nella testata (Figura 3-4), ciascuno dei quali può essere suddiviso in un numero variabile di sub-contesti, che si possono scegliere con la seconda riga di icone nella testata (Figura 3-4): Figura 3-4. Contesti e Sub-Contesti



Logic - scorciatoia F4



Script - nessuna scorciatoia



Shading - scorciatoia F5 •

Lamp - nessuna scorciatoia



Material - nessuna scorciatoia



Texture - scorciatoia F6



Radio - nessuna scorciatoia



World - scorciatoia F8



Object - scorciatoia F7



Editing - scorciatoia F9



Scene - scorciatoia F10 •

Rendering - nessuna scorciatoia



Anim/Playback - nessuna scorciatoia



Sound - nessuna scorciatoia

Una volta che è stato selezionato dall'utente il Contesto, il sub-contesto è solitamente determinato da Blender sulla base dell'Oggetto attivo. Per esempio, col contesto "Shading", se è selezionato un Oggetto Lampada allora il sub-contesto mostra i Pulsanti della Lampada, Se è selezionata una mesh o un altro oggetto visualizzabile nel rendering, allora è attivo il sub-contesto Material, e se è selezionata una Telecamera il sub-contesto attivo è World. La novità più notevole nell'interfaccia è probabilmente la presenza di Pannelli per raggruppare logicamente i pulsanti. Ciascun pannello ha le stesse dimensioni. Essi possono essere spostati nella Pulsantiera con LMB cliccando e trascinandone la loro testata [header]. I pannelli possono essere allineati con RMB sulla Pulsantiera e scegliendo la disposizione [layout] desiderata dal Menù che appare (Figura 3-5). Figura 3-5. Il menù della Pulsantiera.

32

MW fa scorrere i Pannelli nella loro direzione di allineamento, CTRL-MW e CTRL-MMB ingrandiscono e riducono i pannelli. I singoli pannelli possono essere richiusi/espansi con LMB cliccando il triangolo sulla sinistra della loro testata. I Pannelli particolarmente complessi sono organizzati in Fincature [Tab]. Cliccando LMB su un Tab nella testata del Pannello cambiano i pulsanti mostrati (Figura 3-6). I Tab possono essere "estratti" dal pannello per formare pannelli indipendenti cliccando LMB sulle loro testate e trascinandoli via. Allo stesso modo Pannelli separati possono essere riuniti in un singolo pannello con Tab rilasciando la testata di un Pannello in un altro. Figura 3-6. Pannello con Fincature [Tabs].

Come ultimo argomento nella catena dell'interfaccia, ci sono diversi tipi di pulsanti disposti nei Tab del Pannello: Pulsanti Operazione. Questi sono pulsanti che eseguono un'operazione quando ci si clicca sopra (con LMB, per tutti i pulsanti). Essi possono essere identificati dal loro colore marrone scuro nello schema di default di Blender (Figura 3-7). Figura 3-7. Un Pulsante-operazione.

Pulsante Selettore. [Toggle button]. I pulsanti Selettori sono di varie dimensioni e colori (Figura 3-8). I colori verde, violetto e grigio non cambiano la funzionalità, essi aiutano gli occhi a raggruppare i pulsanti e riconoscere più velocemente i contenuti dell'interfaccia. Cliccando questo tipo di pulsante non si esegue alcuna operazione, ma si cambia solo uno stato come "on" o "off". Alcuni pulsanti possono avere anche un terzo stato che è identificato dal testo che diventa giallo (il pulsante Ref nella Figura 38). Solitamente il terzo stato significa "negativo", ed il normale stato "on" significa "positivo". Figura 3-8. I pulsanti selettori.

Pulsanti Radio. I pulsanti Radio sono dei particolari gruppi di interruttori mutuamente esclusivi. Non più di un Pulsante Radio di un dato gruppo può essere "on" (attivo) in un dato momento. Pulsanti Numerici. I pulsanti Numerici (Figura 3-10) si possono identificare dalla loro etichetta, che contiene un ":" (simbolo dei due punti) seguito da un numero. I pulsanti numerici sono gestiti in vari modi: Per aumentare il valore, clic su LMB sulla destra del pulsante, dove appare il piccolo triangolo; per diminuirlo, click sulla sinistra del pulsante, dove appare un altro triangolo. Per cambiarne il valore in una gamma più ampia, si tiene premuto LMB e si trascina il mouse a sinistra o a destra. Se si tiene premuto CTRL mentre si fa ciò, il valore cambia a passi discreti; se si tiene premuto SHIFT, si avrà un controllo più fine dei valori. Qui si può usare ENTER al posto di LMB. Figura 3-9. I pulsanti numerici.

Si può immettere un valore da tastiera premendo SHIFT e cliccando su LMB. Si preme SHIFT-BACKSPACE per cancellare il

33

Capitolo 3. Capire l'interfaccia valore; SHIFT-FrecciaSinistra per spostare il cursore all'inizio; e SHIFT-FrecciaDestra per spostare il cursore alla fine. Premendo ESC si ripristina il valore originale. Dei pulsanti numerici contengono uno slider (cursore) anziché un semplice numero con triangoli laterali. Si applica lo stesso modo di operare, eccetto che si devono dare dei singoli click LMB sulla sinistra o sulla destra dello slider, mentre cliccando sull'etichetta o sul numero si entra automaticamente in modo immissione tastiera. Pulsanti Menù. I pulsanti Menù si usano per scegliere da liste create dinamicamente. I pulsanti Menù vengono usati principalmente per collegare i DataBlocks tra loro. (I DataBlocks sono strutture come le Mesh, gli Oggetti, i Materiali, le Texture e così via; collegando un Materiale ad un Oggetto, lo si assegna). Si vedrà un esempio di tale blocco di pulsanti in Figura 3-10. Il primo pulsante (con i triangolini verso l'alto ed il basso) apre un menù che consente di selezionare il DataBlock da collegare tenendo premuto LMB e rilasciandolo sulla voce richiesta. Il secondo pulsante mostra il tipo ed il nome del DataBlock collegato e consente di modificare il nome dopo aver cliccato con LMB. Il pulsante "X" cancella il collegamento; il pulsante "automobilina" genera un nome automatico per il DataBlock ed il pulsante "F" specifica se il DataBlock deve essere salvato nel file anche se inutilizzato (non collegato). Oggetti scollegati: I dati scollegati non vengono persi fin quando non si esce da Blender. Questa è una potentissima funzione di Undo. Se si cancella un oggetto il materiale assegnato ad esso diventa scollegato, ma resta lì! Si deve solo ricollegare ad un altro oggetto o premere il pulsante "F".

Figura 3-10. I pulsanti per collegare il Datablock

Toolbox (Scatola degli attrezzi) Premendo SPAZIO nell'Inquadratura [Viewport] 3D, o tenendo premuto LMB o RMB col mouse fermo per più di mezzo secondo si apre la scatola degli attrezzi [Toolbox]. Questa contiene sei contesti principali, organizzati in due file, ciascuno dei quali apre dei menù e sotto-menù. Tre di questi contesti aprono gli stessi tre menù presenti della testata della Viewport 3D, degli altri tre, Add permette di aggiungere nuovi Oggetti alla scena mentre Edit e Transform mostrano tutte le possibili operazioni sugli oggetti selezionati (Figura 311). Figura 3-11. La Toolbox.

34

Schermate La flessibilità di Blender con le finestre consente di creare ambienti di lavoro personalizzati per diversi compiti come la modellazione, l'animazione e lo scripting. Spesso è utile spostarsi rapidamente tra i diversi ambienti all'interno dello stesso file. Ciò è possibile creando diversi schermi: Tutte le modifiche alle finestre sono descritte nella sezione Il sistema a finestra e nella sezione Tipi di finestre e vengono salvate all'interno di uno schermo, così se si cambiano le finestre in uno schermo, gli altri schermi restano invariati. Ma la scena su cui si sta lavorando resta la stessa in tutti gli schermi. Con Blender vengono forniti tre schermi di default; essi sono disponibili tramite i pulsanti Menù SCR nella testata della Finestra delle Preferenze Utente mostrata in Figura 3-12. Per spostarsi nello schermo alfabeticamente successivo, si preme CTRL-FrecciaDestra; per spostarsi nello schermo alfabeticamente precedente, si preme CTRL-FrecciaSinistra. Figura 3-12. Selettori dello Schermo e della Scena.

Scene È possibile anche avere diverse scene all'interno dello stesso file Blender. Le scene possono usare oggetti di altre scene o essere completamente separate dalle altre. Si possono selezionare e creare scene col Pulsante Menù SCE nella testata della Finestra delle Preferenze Utente (Figura 3-12). Quando si crea una nuova scena, si possono effettuare quattro scelte per controllarne il contenuto: • Empty

crea una scena vuota.

crea la nuova scena con gli stessi contenuti della scena attualmente selezionata. Le modifiche in una scena saranno effettuate anche nell'altra.

• Link Objects

crea la nuova scena in base a quella attualmente selezionata, con gli stessi collegamenti alle mesh, ai materiali e così via. Questo significa che si possono cambiare le posizioni degli oggetti e le relative proprietà, ma le modifiche alle mesh, ai materiali, e così via si ripercuoteranno anche nelle altre scene senza dover fare delle copie ad utenza singola.

• Link ObData

• Full Copy

crea una scena totalmente indipendente con la copia del contenuto della scena attualmente selezionata.

Navigare nello Spazio 3D A partire da Blender v2.31 Blender consente di lavorare nello spazio tri-dimensionale, ma gli schermi dei monitor sono solo bi-dimensionali. Per essere in grado di lavorare in tre dimensioni, si deve essere in grado di cambiare il proprio punto di vista così come la direzione visiva della scena. Questo è possibile in tutte le Inquadrature [Viewports] 3D. Anche se si descriveranno le Finestre di Viewport 3D, la maggior parte delle finestre non-3D una serie equivalente di funzioni, per esempio è possibile anche traslare ed ingrandire una Pulsantiera ed i suoi Pannelli.

La direzione della vista (rotazione) Blender normalmente fornisce tre direzioni di vista: Laterale, Frontale e dall'Alto. Giacché Blender usa un sistema di coordinate 'destrorso' con l'asse Z che punta verso l'alto, "laterale" corrisponde ad osservare lungo l'asse X, in direzione negativa, "frontale" lungo l'asse Y, e "dall'Alto" lungo l'asse Z, in direzione negativa. Si può selezionare la direzione della vista per una Inquadratura [Viewport] 3D con le voci del Menù View (Figura 3-13) o premendo i tasti scorciatoia NUM3 per "laterale", NUM1 per "frontale" e NUM7 per "dall'alto". Tasti attivi o scorciatoie [Hotkeys]: Si ricordi che la maggior parte dei tasti attivi riguardano la finestra che ha il focus, quindi prima si controlla che il cursore del mouse stia nell'area in cui si intende lavorare prima di usare i tasti attivi!

35

Capitolo 3. Capire l'interfaccia Figura 3-13. Il menù di visualizzazione di una Inquadratura [Viewport] 3D.

Oltre a queste tre direzioni di default, la visuale può essere ruotata di qualsiasi angolo si desidera. Si clicca e si trascina MMB sull'area della Viewport: iniziando dal centro della finestra e muovendo sopra e sotto o destra e sinistra, la vista ruota attorno al centro della finestra. Iniziando dal bordo e senza spostarsi verso il centro, si può ruotare attorno al proprio asse visivo. Si provino queste funzioni fino ad acquisire una certa dimestichezza nell'utilizzo. Per cambiare l'angolo visivo, ad intervalli discreti, si usano NUM8 e NUM2, che corrispondono al trascinamento verticale di MMB. O NUM4 e NUM6, che corrispondono al trascinamento orizzontale di MMB.

Traslare ed Ingrandire la Vista Per traslare la vista, si tiene premuto SHIFT e si trascina MMB nella Viewport 3D. Per intervalli discreti, si usano i tasti attivi CTRL-NUM8, CTRL-NUM2, CTRL-NUM4 e CTRL-NUM6 come per la rotazione. Si può ingrandire o rimpicciolire tenendo premuto CTRL e trascinando MMB. Le scorciatoie sono NUM+ e NUM-. Il Submenù View>>Viewport Navigation contiene anche queste funzioni. Rotellina del mouse: Se si ha un mouse con la rotellina, si possono eseguire tutte le azioni che si potrebbero compiere con NUM+ e NUM- ruotando la rotellina (MW). La direzione della rotazione seleziona l'azione. Se ci si dovesse perdere...: Se ci si dovesse perdere nello spazio 3D, cosa non rara, saranno d'aiuto due tasti attivi: HOME che sposta la visuale in modo che si possano vedere tutti gli oggetti (La voce di menù View>>Frame All), mentre NUM. effettua un ridimensionamento tale da mostrare l'oggetto attualmente selezionato (La voce di menù View>>Frame Selected).

Prospettiva e Proiezioni Ortogonali Ogni Inquadratura [Viewport] 3D supporta due diversi tipi di proiezione. Queste sono descritte in Figura 3-14: ortogonale (a sinistra) e prospettica (a destra).

36

Figura 3-14. Proiezione ortogonale (a sinistra) e prospettica (a destra).

Il nostro occhio è usato per la visione prospettica in quanto gli oggetti distanti appaiono più piccoli. La proiezione ortogonale spesso sembra essere un po' strana all'inizio, giacché gli oggetti restano della stessa dimensione indipendentemente dalla distanza: è come vedere la scena da un punto infinitamente distante. Tuttavia, la vista ortogonale è molto utile (essa è il default in Blender e nella maggior parte delle altre applicazioni 3D), poiché fornisce una percezione più "tecnica" della scena, rendendola più facile da disegnare e per valutare le proporzioni. Prospettica ed Ortogonale: La vista prospettica viene geometricamente costruita in questo modo: si ha una scena in 3D e si è un osservatore posto in un punto O. La scena della prospettiva 2D viene costruita ponendo un piano, un foglio di carta dove la scena 2D dev'essere disegnata, di fronte al punto O, perpendicolare alla direzione della vista. Per ciascun punto P nella scena 3D viene tracciata una retta, passante da O e da P. Il punto d'intersezione S tra tale retta ed il piano è la proiezione prospettica di tale punto. Proiettando tutti i punti P della scena si ha una vista prospettica. D'altra parte, in una proiezione ortogonale, detta anche "ortonormale", si ha una direzione di vista ma non un punto di vista O. Quindi la retta viene tracciata attraverso il punto P in modo da essere parallela alla direzione della vista. Le intersezioni S tra la retta ed il piano è la proiezione ortogonale. Proiettando tutti i punti P della scena si ha una vista ortogonale.

Per cambiare la proiezione di un Viewport 3D, si scelgono le voci di menù View>>Orthographic o View>>Perspective (Figura 3-13). L'hotkey NUM5 passa da un modo all'altro. Proiezione telecamera: Si noti che il cambiamento della proiezione di una Viewport 3D non influisce sul modo in cui la scena parteciperà al rendering. Il rendering è per default in prospettiva. Se si ha bisogno di un rendering Ortogonale, si seleziona la telecamera e si preme Ortho nella Pulsantiera (F9) Pannello Camera.

La voce di Menù View>>Camera imposta la Viewport 3D in Modo Telecamera (Hotkey: NUM0). La scena viene quindi mostrata così come apparirà nel rendering (si veda la Figura 3-15): l'immagine del rendering conterrà tutto ciò che è compreso dal rettangolo esterno tratteggiato. In questa vista è possibile ingrandire o rimpicciolire, ma per cambiare il punto di vista, si deve spostare o ruotare la telecamera. Figura 3-15. Esempio di vista telecamera.

37

Capitolo 3. Capire l'interfaccia

Modalità di Disegno A seconda della velocità del proprio computer, della complessità della propria Scena e del tipo di lavoro che si sta facendo, si può passare tra le diverse modalità di disegno: - Cerca di disegnare tutto il più completamente possibile, sebbene non è ancora un'alternativa al rendering. Si noti che se non si ha illuminazione nella propria scena, tutto quanto resterà nero.

• Textured

[Ombreggiata] - Disegna le superfici solide includendo il calcolo dell'illuminazione. Come nel disegno textured, non si vede niente senza luci.

• Shaded

• Solid

- Le superfici vengono disegnate come solidi, ma la visualizzazione funziona anche senza luci.

[a Fil-di-ferro] - Gli oggetti sono costituiti da linee che ne rendono riconoscibili le sagome. Questa è la modalità di disegno di default.

• Wireframe

[Inscatolata] - Gli oggetti non vengono affatto disegnati; al loro posto appaiono solo delle scatole rettangolari che corrispondono alla forma ed alla dimensione di ciascun oggetto.

• Bounding Box

La modalità di disegno può essere selezionata col Pulsante Menù appropriato nella testata (Figura 3-16) o con i tasti attivi: ZKEY passa tra la visualizzazione a fil-di-ferro e quella solida, SHIFT-Z passa dalla visualizzazione a fil-di-ferro a quella ombreggiata. Figura 3-16. Il pulsante della modalità di disegno di un'Inquadratura [Viewport] 3D.

Vista locale Quando si è nella vista locale, vengono mostrati solo gli oggetti selezionati, che possono essere modificati più facilmente in scene complesse. Per entrare nella vista locale, si selezionano prima gli oggetti desiderati (si veda la sezione Selezionare oggetti nel Capitolo 5) e poi si seleziona la voce del Menù View>>Local View; si usa la voce di Menù View>>Global View per tornare nella Vista Globale. (Figura 3-13). Il tasto attivo è NUM/, che alterna tra la Vista Locale e quella Globale.

Il sistema dei Livelli Le scene 3D spesso diventano esponenzialmente più confuse al crescere della complessità. Per tenerle sotto controllo, gli oggetti possono essere raggruppati in "livelli (o strati)" [layers], in modo che solo i livelli selezionati siano visibili in un dato momento. I livelli 3D sono diversi dai livelli conosciuti dalle applicazioni grafiche 2D: essi non influiscono sull'ordine di disegno (degli oggetti) ed esistono quindi (eccetto che per alcune funzioni speciali) unicamente per fornire al modellatore una migliore panoramica. Blender è dotato di 20 livelli; si possono scegliere quali debbano essere visibili tramite i pulsantini senza etichetta nella testata (Figura 3-17). Per selezionare solo un livello, si clicca sul pulsante appropriato con LMB; per selezionarne più di uno, si tiene premuto SHIFT mentre si clicca. Figura 3-17. I Pulsanti dei livelli di una Viewport 3D.

Per selezionare i livelli tramite la tastiera, si preme da 1KEY a 0KEY (sull'area principale della tastiera) per i livelli dall'1 al 10 (la riga in alto dei pulsanti), e da ALT-1 ad ALT-0 per i livelli dall'11 al 20 (la riga in basso). Il tasto SHIFT per le selezioni multiple funziona anche per questi.

38

Normalmente, il pulsante col catenaccio subito a destra dei pulsanti dei livelli, risulta premuto; questo vuol dire che le modifiche ai livelli visibili riguardano tutte le Viewports 3D. Per selezionare solo certi livelli in una finestra, si deve prima deselezionare il catenaccio. Per spostare gli oggetti selezionati in un livello diverso, si preme MKEY, si seleziona il livello voluto menù che appare, quindi si preme il pulsante Ok.

Le funzioni vitali A partire da Blender v2.31

Caricamento di files Blender usa il formato di files .blend per registrarvi qualsiasi cosa: Oggetti, scene, texture, ed anche tutte le impostazioni dell'interfaccia a finestra. Per caricare un file Blender dal disco, si preme F1. La finestra attiva quindi si trasforma temporaneamente nella Finestra di Selezione del File come mostrato in Figura 3-18. La barra sulla sinistra può essere trascinata con LMB per lo scorrimento. Per caricare un file, lo si seleziona con LMB e si preme ENTER, o semplicemente click su di esso con MMB. Figura 3-18. La Finestra di Selezione del File - caricamento.

La text box in alto mostra il percorso della directory corrente, quella sotto contiene il nome del file selezionato. Col pulsante P (PKEY) ci si sposta nella directory genitore ed il pulsante col trattino contiene un elenco dei percorsi usati recentemente. Sui sistemi operativi Windows, quest'ultima contiene anche l'elenco di tutti i drive (C:, D: ecc). Nota: Blender ritiene che si sappia cosa fare! Quando si carica un file, non viene chiesto nulla sulle modifiche non salvate effettuate alla scena su cui si stava precedentemente lavorando: il completamento del caricamento del file è considerato una conferma sufficiente che non sia fatto accidentalmente. Ci si assicuri di salvare i propri files.

Salvataggio dei file Il salvataggio dei file è simile al caricamento dei file: Quando si preme F2, la finestra attiva si trasforma momentaneamente in una Finestra di Selezione del File, come mostrato in Figura 3-19. Si clicca sull'edit box per immettere un nome di file. Se esso non finisce con ".blend", l'estensione viene accodata automaticamente. Quindi si preme ENTER per scrivere il file. Se esiste già un file con lo stesso nome, si dovrà confermare che si vuol salvare il file alla richiesta di sovrascrittura.

39

Capitolo 3. Capire l'interfaccia Figura 3-19. La Finestra di Selezione del File - salvataggio.

La dialog del salvataggio contiene una piccola funzionalità per aiutare a creare versioni multiple del proprio lavoro: Premendo NUM+ o NUM- si incrementa o decrementa un numero contenuto nel nome del file. Per salvare semplicemente sul file attualmente caricato e saltare la dialog, si può premere CTRL-W invece che F2 e confermare quando richiesto.

Il Rendering Questa sezione fornirà solo una rapida panoramica di quello di cui si ha bisogno per effettuare il rendering della propria scena. Si troverà una descrizione dettagliata di tutte le opzioni nel Capitolo 17. Le impostazioni del rendering sono nel Contesto Scene e nel sub-contesto Rendering Buttons (Figura 3-20) raggiungibili cliccando su , o premendo F10. Figura 3-20. Le opzioni del Rendering nella Pulsantiera del Rendering.

Per ora si è interessati solo al Pannello Format. La dimensione (numero di pixels orizzontalmente e verticalmente) ed il formato del file per l'immagine da creare vengono scelti qui. Si può indicare la dimensione usando i pulsanti SizeX e SizeY. Cliccando sul rettangolo di selezione sotto (nella Figura 3-20, è stato scelto "Targa") si apre un menù con tutti i formati di uscita disponibili per le immagini e le animazioni. Per le immagini fisse, si può scegliere, per esempio, Jpeg. Ora che sono state eseguite le impostazioni, si può fare il rendering della scena pigiando sul pulsante RENDER nel Pannello Render o premendo F12. A seconda della complessità della scena, ciò richiede da pochi secondi a diversi minuti, e l'avanzamento appare in una finestra separata. Se la scena contiene un'animazione, viene effettuato il rendering solo del frame corrente. (Per effettuare il rendering dell'intera animazione, si veda la sezione Rendering di Animazioni nel Capitolo 17). Se non si vede niente nella vista del rendering, ci si assicuri che la scena sia stata costruita in modo appropriato. C'è l'illuminazione? La telecamera è sistemata correttamente, puntando nella giusta direzione? Sono visibili tutti i livelli di cui si vuole effettuare il rendering? Nota: L'immagine di un rendering non viene automaticamente salvata sul disco. Se si è soddisfatti del rendering, lo si può salvare premendo F3 ed usando la dialog di salvataggio come descritto nella sezione Salvataggio dei file. L'immagine viene salvata nel formato precedentemente selezionato nella Pulsantiera del Display.

40

Estensioni dei file: Blender non aggiunge automaticamente il tipo di estensione all'immagine dei file! Si deve esplicitamente digitare l'estensione, se la si vuole.

Preferenze dell'utente e Temi Blender ha poche opzioni che non vengono salvate assieme a ciascun file, ma applicate invece a tutti i files di un utente. Queste preferenze riguardano principalmente i dettagli di gestione dell'interfaccia utente, e le proprietà del sistema come il mouse, i fonts e le lingue. Dato che le preferenze dell'utente sono raramente necessarie, esse sono abilmente nascoste dietro il menù principale. Per renderle visibili, si abbassa il bordo della finestra del menù (di solito il bordo più alto nello schermo). Le impostazioni sono raggruppate in sette categorie che possono essere selezionate coi pulsanti violetti mostrati in Figura 3-21. Figura 3-21. La finestra delle preferenze utente.

Dato che la maggior parte dei pulsanti sono autoesplicativi o mostrano un tool-tip d'aiuto se ci si sofferma sopra col mouse, non saranno descritti in dettaglio qui. Sarà data, invece, solo una panoramica delle categorie delle preferenze: View & Controls Le impostazioni riguardano come l'interfaccia utente debba reagire all'input dell'utente, ad esempio quale metodo di rotazione debba essere usato nelle viste 3D. Qui si può attivare l'emulazione del mouse a tre tasti se il mouse ne ha solo due. MMB può essere sostituito da ALT-LMB. Edit Methods Consente di specificare i dettagli per la lavorazione di certi comandi di modifica come duplicate . Language & Fonts Seleziona un font TrueType alternativo da mostrare nell'interfaccia, e scegliere dalle lingue disponibili. Themes Dalla versione 2.30 Blender consente l'utilizzo di Temi per definire i colori dell'interfaccia utente. Da qui si possono gestire e creare temi. Auto Save Gli -salvataggi automatici possono essere impostati per avere dei backup di emergenza nel caso che qualcosa vada storto. Questi files sono nominati Filename.blend1, Filename.blend2, ecc. System & OpenGL Questa sezione va consultata se si hanno problemi gravi con l'output della grafica o del suono, o se non si ha il tastierino numerico e lo si vuole emulare (per i portatili). Inoltre qui si può impostare lo schema della luce per i Solidi ed i modi di ombreggiatura. File Paths Si indicano i percorsi di default per le varie finestre per il caricamento di file.

Impostazione della scena di default Non piace l'impostazione della finestra di default di Blender, o si vogliono specificare le impostazioni del rendering per ciascun nuovo progetto da iniziare, o si vuol salvare il proprio Tema? Nessun problema. Si può usare qualsiasi file della scena come de-

41

Capitolo 3. Capire l'interfaccia fault quando si avvia Blender. Si renda la scena corrente quella di default premendo CTRL-U. La scena quindi verrà copiata nel file chiamato .B.blend nella home directory. Si può cancellare il progetto su cui si sta lavorando e ripristinare la scena di default in qualsiasi momento premendo CTRL-X. Ma ci si rammenti di salvare prima le modifiche alla scena precedente!

Capitolo 4. La tua prima animazione in 30 + 30 minuti Questo capitolo ti guiderà passo passo attraverso l'animazione del personaggio di un "Omino di Pan di Zenzero". Saranno completamente descritte tutte le azioni, ma si supporrà la lettura di tutto il Capitolo 3, e che si siano apprese le convenzioni usate in tutto questo libro. Nei primi 30 minuti di questo tutorial costruiremo un uomo di pan di zenzero fermo. Quindi, nei successivi 30 minuti, gli daremo uno scheletro ed animeremo un ciclo di camminata.

Riscaldamento A partire da Blender v2.31 Iniziamo. 1. Avvia Blender con un doppio click sulla sua icona o avvialo dalla linea di comando. Blender si aprirà mostrando, dalla vista dall'alto, l'impostazione di default: una telecamera ed un piano. Il piano è rosa, vuol dire che è selezionato (Figura 4-1). Cancella il piano con XKEY e conferma cliccando la voce Erase Selected nella dialog che appare. Figura 4-1. La finestra di Blender appena avviato.

42

Ora seleziona la telecamera con RMB e premi MKEY. Sotto il tuo mouse apparirà un piccolo toolbox, come quello in Figura 42, col primo pulsante premuto. Premi il pulsante più a destra sulla riga in alto e poi il pulsante OK. Questo sposterà la telecamera nel livello [layer] 10. Blender ti fornisce 20 layers per aiutarti ad organizzare il tuo lavoro. Puoi vedere quali layers sono attualmente visibili dal gruppo dei venti pulsanti nella toolbar della finestra 3D (Figura 4-3). Puoi cambiare il layer visibile con LMB ed alternare la visibilità con SHIFT-LMB. Figura 4-2. Il toolbox per il controllo dei livelli [layer].

Figura 4-3. Controlli di visibilità del Layer.

Costruzione del corpo A partire da Blender v2.31 Spostati nella vista frontale con NUM1 ed aggiungi un cubo premendo SPAZIO e selezionando il menù Add, sottomenù Mesh, sotto-sottomenù Cube. (Nel libro useremo SPAZIO>>ADD>>Mesh>>Cube per abbreviare questo tipo di azioni). Apparirà un cubo (Figura 4-4). Tale cubo appena aggiunto è in Modo Edit, un modo in cui puoi spostare i singoli vertici che compongono la mesh. Per default, tutti i vertici risultano selezionati (evidenziati in giallo - i vertici non selezionati sono rosa). Figura 4-4. Il nostro cubo in EditMode, tutti i vertici selezionati.

Chiameremo il nostro uomo di Pan di Zenzero "Gus". Il nostro primo compito è quello di costruire il corpo di Gus lavorando sul nostro cubo in Modo Edit. Per vedere gli strumenti di Blender che useremo per fare ciò, si preme il pulsante che ha un quadrato con i vertici gialli nella Finestra dei Pulsanti (Figura 4-5), o si preme F9. Figura 4-5. Il pulsante della Pulsantiera di Edit.

Si cerchi il pulsante Subdivide nel pannello Mesh Tools e lo si prema una volta (Figura 4-6). Questo dividerà ciascun lato del cubo in due, creando nuovi vertici e nuove facce (Figura 4-7).

43

Capitolo 3. Capire l'interfaccia Figura 4-6. La Pulsantiera di Edit per una Mesh.

Figura 4-7. Il cubo, suddiviso una sola volta.

Col cursore del mouse nella finestra 3D premi AKEY per deselezionare tutti gli elementi. I vertici diventeranno rosa. Ora premi BKEY; il cursore si trasformerà in una coppia di linee grigie ortogonali. Muovi cursore sopra l'angolo in alto a sinistra del cubo, tieni premuto LMB, quindi trascina il mouse giù ed a destra in modo che il rettangolo grigio racchiuda tutti i vertici più a sinistra. Ora lascia il LMB. Questa sequenza, con cui selezioni un gruppo di vertici in un rettangolo, è riassunta in Figura 4-8. Selezione Delimitata [Box]: In molte occasioni si possono avere dei vertici nascosti dietro altri vertici, come nel caso in questione. Il nostro cubo suddiviso ha 26 vertici, ma ne puoi vedere solo nove perché gli altri sono nascosti. Un normale click del RMB seleziona solo uno di questi vertici sovrapposti, mentre una selezione delimitata [box select] seleziona tutto. Così, in questo caso, anche se vedi solo tre vertici diventare gialli, hai invece selezionato nove vertici.

Figura 4-8. La sequenza della selezione Delimitata [Box] per un gruppo di vertici.

Ora premi XKEY e, dal menù che appare, seleziona Vertices per cancellare i vertici selezionati (Figura 4-9). Figura 4-9. Il menù pop-up della cancellazione (XKEY).

Ripristino [Undo]: Introdotto nella versione 2.3, Blender ha la possibilità di ripristinare una mesh [Mesh Undo]. Premendo UKEY in Modo Edit fa sì che Blender ripristini l'ultima mesh modificata. Tenendo premuto UKEY si ripercorrono a ritroso le modifiche finché lo permette il buffer di Undo, mentre SHIFT-U ri-applica le modifiche. ALT-U

44

apre un menù con un elenco di possibili livelli di ripristino in modo che si possa cercare facilmente il punto su cui ritornare. Il ripristino della [Mesh Undo] funziona solo in Modo Edit e solo per una sola mesh per volta. I dati per il ripristino non vengono persi quando si esce dal Modo Edit, solo quando si comincia a modificare una mesh diversa. Un altro modo per tornare allo stato precedentemente salvato consiste nel premere ESC durante un'azione. Questo cancella l'operazione, ripristinando lo stato precedente.

Ora, usando la sequenza appena appresa, Seleziona col Box i due vertici più in alto a destra (Figura 4-10, a sinistra). Premi EKEY e click sulla voce Extrude del menù per estruderli. Questo creerà nuovo vertici e nuove facce che si potranno spostare e seguiranno il mouse. Spostali a destra. Per costringere ad un movimento orizzontale o verticale, clicca MMB mentre ci si sposta. Puoi tornare al movimento svincolato cliccando ancora MMB. Alternativamente puoi usare XKEY per vincolare il movimento all'asse x, YKEY per l'asse y e così via. Creiamo le braccia e le gambe di Gus. Muovi questi nuovi vertici un quadrato e mezzo a destra, quindi click con LMB per confermare la posizione. Estrudi ancora con EKEY e sposta i nuovi vertici di un altro mezzo quadrato a destra. La Figura 4-10 illustra questa sequenza. Figura 4-10. Estrusione del braccio in due passi.

Gus dovrebbe ora avere un braccio sinistro (lui guarda noi). Costruiremo la gamba sinistra allo stesso modo estrudendo i vertici in basso. Prova ad ottenere qualcosa come quello mostrato in Figura 4-11. Nota: Viene usato lo strumento di Estrusione tre volte per formare la gamba. Non ci si preoccupa dei gomiti, ma si avrà bisogno in seguito di un ginocchio!

Figura 4-11. Metà corpo.

Vertici coincidenti: Se estrudi, e durante il processo dello spostamento cambi idea e premi ESC per rimediare, i vertici estrusi resteranno, nella loro posizione originale! Mentre puoi continuare a spostarli o dimensionarli o ruotarli premendo GKEY, probabilmente non vuoi estruderli ulteriormente. Per un undo completo dell'estrusione, cerca il pulsante Remove Doubles (Rimuovi Doppioni), evidenziato in Figura 4-12. Questo eliminerà i vertici coincidenti.

45

Capitolo 3. Capire l'interfaccia Figura 4-12. La Pulsantiera di Edit.

Nota: Il CD contiene un file .blend con questo esempio, salvato durante varie fasi della modellazione. Il primo file, Quickstart00.blend contiene quello che dovresti aver ottenuto fino ad ora. I successivi passi sono numerati progressivamente, Quickstart01.blend, Quickstart02.blend e così via, mentre Quickstart.blend contiene il risultato finale. Questo standard riguarda tutti gli altri esempi nel Libro.

Ora è il momento di creare l'altra metà di Gus: 1. Seleziona tutti i vertici (AKEY) e scegli la voce 3D Cursor nel Menù Rotation/Scaling Pivot nell'intestazione [header] della Finestra 3D. (Figura 4-13). 2. Premi SHIFT-D per duplicare tutti i vertici, i lati e le facce selezionate. I nuovi oggetti sono in Modo Traslazione [Grab], premi ESC per uscire da questa modalità senza spostare i vertici. 3. Premi MKEY per aprire il Menù Mirror Axis. Scegli Global X. Il risultato appare in Figura 4-14. Figura 4-13. Impostazione del cento di riferimento nel cursore.

Figura 4-14. Ribalta la copia della metà del corpo per ottenere un corpo intero.

4. Deseleziona tutto e riseleziona tutto premendo AKEY due volte, quindi elimina i vertici coincidenti premendo il pulsante Remove doubles (Figura 4-12). Apparirà un box, notificandoti che sono stati eliminati otto vertici. Centro di riferimento: In Blender, dimensionamento, rotazione ed altre modifiche della mesh avvengono o rispetto alla posizione del cursore, o del centro dell'oggetto o del baricentro (centro di massa) degli oggetti selezionati, a seconda di quale voce del Menù Rotation/Scaling Pivot (Figura 4-13) è attiva. Il pulsante col mirino [cross-hair] seleziona il cursore come riferimento. Spostare il cursore: Per piazzare il cursore in uno specifico punto della griglia, lo si pone vicino a dove lo si vuole e si preme SHIFT-S per invocare il Menù Snap (Accostamento). La voce Curs->Grid pone il cursore esattamente sul punto della griglia. Curs->Sel lo pone esattamente sull'oggetto selezionato. Le altre voci spostano gli oggetti invece che il cursore.

46

Gus ha bisogno di una testa: 1. Sposta il cursore in modo che sia esattamente un quadrato della griglia sopra il corpo di Gus (Figura 4-15, a sinistra). Aggiungi qui un nuovo cubo (SPAZIO>>ADD>>Mesh>>Cube). 2. Premi GKEY per andare in modalità Grab e sposta giù i vertici appena creati, limitando il movimento con MMB, per circa un terzo di una unità di griglia (Figura 4-15, a destra). Figura 4-15. La sequenza per aggiungere la testa.

3. Questo produce appena una figura grezza. Per renderla più arrotondata cerca il pulsante-commutatore [Toggle] SubSurf (Figura 4-16) nel pannello Mesh ed attivalo. Accertati che entrambi i due pulsanti numerici, sotto, siano impostati a 2. Nota: Il SubSurfacing è uno strumento avanzato di modellazione, esso raffina dinamicamente una mesh grezza creando una mesh più densa e posizionando i vertici della mesh raffinata in modo che seguano gradualmente la mesh grezza originale. La forma dell'Oggetto resta sotto il controllo della posizione dei vertici della mesh grezza, ma la forma nel rendering è quella della mesh arrotondata, e raffinata.

4. Esci dal Modo Edit (TAB) e cambia dall'attuale modalità di default "fil-di-ferro" [Wireframe] a Solido con ZKEY per avere una visione di Gus. Esso dovrebbe apparire come la Figura 4-17 a sinistra. Figura 4-16. La Pulsantiera di Edit.

Figura 4-17. L'impostazione per l'arrotondamento di Gus.

5. Per far apparire Gus più liscio, si preme il pulsante SetSmooth nella Figura 4-16. Gus ora apparirà liscio ma con delle buffe linee nere al centro (Figura 4-17, al centro). Queste linee appaiono perché la mesh più precisa ottenuta col SubSurf viene calcolata usando le informazioni della mesh grezza riguardo le direzioni delle normali, che possono non essere coerenti, vale a dire che, se è stata fatta un'estrusione o applicato un ribaltamento, alcune delle normali possono puntare verso l'esterno, altre verso l'interno. Per azzerare le normali, si torna in modo edit (TAB), si selezionano tutti i vertici (AKEY), e si preme CTRL-N. Click con LMB sul rettangolo Recalc normals outside che appare. Ora Gus dovrebbe essere bello liscio, come mostrato in Figura 417, a destra. Premi MMB e trascina il mouse per vedere Gus da tutte le angolazioni. Oops, è troppo spesso! Per rimediare, cambia in vista laterale NUM3. Ora, entra in Modo Edit (se non lo sei già), e torna in modalità fil-di-ferro [Wireframe] (ZKEY), e seleziona tutti i vertici con AKEY (Figura 4-18, a sinistra).

47

Capitolo 3. Capire l'interfaccia Figura 4-18. Assottigliare Gus col ridimensionamento vincolato.

Assottigliamo Gus: 1. Premi SKEY e comincia a spostare il mouse orizzontalmente. (Click su MMB per vincolare il ridimensionamento lungo solo un asse o premi YKEY per ottenere lo stesso risultato). Se ora muovi il mouse verso Gus dovrebbe diventare più sottile ma restare della stessa altezza. 2. I tre numeri sulla toolbar della Finestra 3D mostrano il fattore di scala. Dopo aver vincolato il dimensionamento, solo uno di questi numeri cambierà. Si pigia e si tiene premuto CTRL. Ora il fattore di scala varierà a passi discreti del valore di 0.1. Riduci Gus in modo che il fattore sia 0.2 e conferma le dimensioni cliccando con LMB. 3. Torna nella vista frontale e nella modalità Solida (ZKEY), quindi ruota la tua vista con MMB. Gus è molto meglio ora!

Vediamo a cosa assomiglia Gus A partire da Blender v2.31 Siamo pronti per vedere il nostro primo rendering, ma prima, c'è un po' di lavoro da fare. 1. SHIFT-LMB sul piccolo pulsante in alto a destra nei pulsanti di visibilità del layer nella toolbar della finestra 3D (Figura 419) per rendere visibili sia il Layer 1 (il layer di Gus') che il Layer 10 (il layer con la telecamera). Figura 4-19. Rendere visibili sia il layer 1 che il 10.

Nota: Ricorda che l'ultimo layer selezionato è il layer attivo, quindi tutte le seguenti aggiunte saranno poste automaticamente sul layer 10.

2. Seleziona la telecamera (RMB) e spostala nei pressi di (x=7, y=-10, z=7). Lo si fa premendo GKEY e trascinando la telecamera mentre si tiene CTRL premuto per spostarla a passi di 1 unità di griglia. Immissione di posizioni e rotazioni precise: Se preferisci immettere valori numerici per la posizione di un oggetto, lo puoi fare premendo NKEY e modificando i NumButtons nel Pannello che appare (Figura 4-20). Ricorda di premere OK per confermare quanto immesso. Figura 4-20. Il Pannello per l'immissione numerica della posizione/rotazione ecc. di un oggetto.

Per fare in modo che la telecamera punti verso Gus, si lascia la telecamera selezionata quindi si seleziona Gus con SHIFT-RMB. La telecamera dovrebbe diventare magenta e Gus rosa chiaro. Ora premi CTRL-T e seleziona la voce Old Track nel menù che appare. Questo forzerà la telecamera a tracciare Gus puntando sempre su di esso. Questo vuol dire che potrai spostare la teleca-

48

mera ovunque ed essere sicuro che Gus stia nel centro della vista telecamera. Inseguimento [Tracking]: Se l'oggetto inseguitore ha già una propria rotazione, come spesso accade, il risultato della sequenza CTRL-T potrebbe non essere quello atteso. Se non è così, si seleziona l'oggetto che insegue ( nel nostro esempio la telecamera), e premi ALT-R per eliminare la rotazione dell'oggetto. Una volta fatto questo la telecamera inseguirà realmente Gus.

La Figura 4-21 mostra le viste dall'alto, frontale, laterale e da telecamera di Gus. Per ottenere la vista Telecamera premi NUM0. Figura 4-21. Posizione della Telecamera rispetto a Gus.

Ora abbiamo bisogno di creare il pavimento per Gus su cui stare. 1. Nella vista dall'alto (NUM7), e fuori dalla modalità Edit, aggiungi un piano (SPAZIO>>ADD>>Mesh>>Plane). Nota: È importante essere fuori dal Modo Edit, altrimenti gli oggetti appena aggiunti farebbero parte dell'oggetto attualmente in EditMode, come è stato per la testa di Gus quando l'abbiamo aggiunta. Se il cursore è dove mostra la Figura 4-21, questo piano starà nel mezzo del corpo di Gus.

2. Cambia in Modo Oggetto e vista Frontale (NUM1) e sposta (GKEY) il piano sotto il piede di Gus, usando CTRL per tenerlo allineato con Gus. 3. Cambia il centro di riferimento dal cursore (dove l'abbiamo impostato inizialmente) all'oggetto premendo il pulsante evidenziato in Figura 4-22. 4. Vai nella vista Telecamera (NUM0) e, col piano sempre selezionato, premi SKEY per iniziare il ridimensionamento. Figura 4-22. Imposta il centro di riferimento al cento dell'Oggetto.

5. Allarga il piano in modo che i suoi lati si estendano oltre l'area di visione della telecamera come è indicata da un rettangolo esterno punteggiato nella vista Telecamera.

49

Capitolo 3. Capire l'interfaccia Ed ora, qualche luce! 1. Nella vista dall'Alto (NUM7), aggiungi una semplice Lampada (SPAZIO>>ADD>>Lamp) di fronte a Gus, ma sul lato opposto alla telecamera; per esempio in (x=-9, y=-10, z=7) (Figura 4-23). Figura 4-23. Inserimento di una Lampada.

2. Vai nella Pulsantiera della Lampada nel contesto dell'Ombreggiatura [Shading] col pulsante con una lampada nella toolbar della Pulsantiera (Figura 4-24) o con F5. Figura 4-24. Il pulsante della Pulsantiera delle Luci.

3. Nella Pulsantiera, Pannello Preview, premi il pulsante commutatore Spot per trasformare la lampada in Faretto [Spot] (Figura 4-25) di colore giallo pallido (R=1, G=1, B=0.9). Regola il pulsante numerico ClipSta: a 5, il Samples: a 4, ed il Soft: a 8. Figura 4-25. Le impostazioni del faretto.

4. Si faccia in modo che questo Faretto insegua Gus esattamente come fatto per la telecamera selezionando il Faretto, SHIFT, selezionando quindi Gus, e premendo CTRL-T. Se hai aggiunto il faretto nella Vista dall'Alto non dovresti aver bisogno di cancellarne la rotazione con ALT-R. 5. Aggiungi una seconda luce nella stessa posizione dello spot, ed ancora nella Vista dall'Alto, con (SPAZIO>>ADD>>Lamp). Rendi questa lampada di tipo Hemi con energia a 0.6 (Figura 4-26).

50

Figura 4-26. Le impostazioni della Lampada Hemi.

Due lampade?: Usare due o più lampade aiuta nel fornire un'illuminazione soffusa e realistica, in quanto nella realtà la luce naturale non proviene da un singolo punto. Imparerai di più su questo nel Capitolo 12.

Siamo già pronti per effettuare il rendering. Come prima cosa, andiamo nel contesto della Scena e nei pulsanti del Rendering premendo l'icona simile ad un'immagine nella barra degli strumenti della pulsantiera (Figura 4-27) o F10. Figura 4-27. I pulsanti del rendering nella Pulsantiera.

Nei Pulsanti del Rendering, Pannello Format, imposta la dimensione dell'immagine a 640x480 coi pulsanti Numerici in alto a destra. Nel Pannello Render imposta il Commutatore Shadows al centro in alto a On, ed il Commutatore OSA al centro a sinistra anch'esso a On (Figura 4-28). Questi ultimi controlli consentiranno di avere le ombre ed il sovracampionamento (OSA) che eviteranno i bordi frastagliati. Figura 4-28. La Pulsantiera del Rendering.

Ora premi il pulsante RENDER o F12. Il risultato, mostrato in Figura 4-29, è attualmente molto misero. Abbiamo bisogno dei materiali ed un sacco di dettagli, come gli occhi, e così via. Figura 4-29. Il tuo primo rendering. Congratulazioni!

Salvataggio: Se non lo hai già fatto, questo è il momento giusto per salvare il tuo lavoro, tramite il menù File>>Save mostrato in Figura 4-30, o con CTRL-W. Blender ti metterà in guardia se tenti di sovrascrivere un file esistente.

51

Capitolo 3. Capire l'interfaccia Blender salva automaticamente nella tua directory temporanea di sistema. Normalmente, questo avviene ogni quattro minuti ed il nome del file è un numero. Caricare questi salvataggi è un altro modo per disfare [undo] le modifiche indesiderate. Figura 4-30. Il menù Save (Salva).

Materiali e Texture A partire da Blender v2.31 È ora di dare a Gus un bel materiale biscottato: 1. Si seleziona Gus. Quindi, nell'header della Pulsantiera, si seleziona il Contesto dell'Ombreggiatura [Shading] premendo il pulsante col pallino rosso (Figura 4-31) o usando il tasto F5. Figura 4-31. Il Pulsante per la Pulsantiera del Materiale.

2. La Pulsantiera sarà quasi vuota in quanto Gus non ha ancora dei materiali. Per aggiungere un materiale, si clicca sul Pulsante Menù nel Pannello Material (quello con due triangoli, puntati verso l'alto ed il basso) e si seleziona Add New (Figura 4-32). Figura 4-32. Il pulsante del Menù del Materiale.

3. La finestra dei Pulsanti sarà popolata dai Pannelli e Pulsanti e da una stringa contenente il nome del Materiale, per default "Material", che apparirà di seguito al pulsante col rettangolo bianco. Lo si cambi con qualcosa di più significativo, come GingerBread (PanDiZenzero). 4. Modifica i valori di default come in Figura 4-33 per ottenere una prima bozza del materiale.

52

Figura 4-33. La Pulsantiera del Materiale ed un primo materiale GingerBread (PanDiZenzero).

5. Si preme Pulsante Menù nell'area del Pannello delle Texture (Figura 4-34) e si seleziona Add new. Abbiamo aggiunto una texture nel primo canale. Chiamalo "GingerTex". Figura 4-34. Il pulsante del menù delle Textures nei Pulsanti del Materiale.

6. Si selezionano i Pulsanti della Texture cliccando sul pulsante in Figura 4-35 o premendo F6. Figura 4-35. The Texture Buttons window Button.

7. Dalle colonne di Commutatori cha appaiono nel pannello Texture si seleziona Stucci e si impostano tutti i parametri come in Figura 4-36. Figura 4-36. La Pulsantiera della Texture con una texture stucci.

8. Si torni sulla pulsantiera del Materiale (F5) e si impostino le fincature [tab] Map Input e Map To del Pannello Texture come in Figura 4-37. De-seleziona l'Interruttore Col e imposta l'interruttore Nor alzando lo slider Nor a 0.75. Queste modifiche faranno in modo cha la texture Stucci agisca come una "mappa di rugosità" [bumpmap] e faccia assomigliare di più Gus ad un biscotto.

53

Capitolo 3. Capire l'interfaccia Figura 4-37. Le impostazioni della texture Stucci nella finestra dei Pulsanti del Materiale.

9. Si può aggiungere anche una seconda texture, di nome "Grain" (Grano) e fare in modo che funzioni solo la proprietà Ref con una Var di 0.4 (Figura 4-38). La stessa texture è una semplice texture Noise (rumore). Figura 4-38. Le impostazioni per una ulteriore texture di tipo Noise nel canale 2.

Diamo al pavimento un materiale appropriato, come il blu scuro mostrato nella Figura 4-39. Figura 4-39. Un materiale molto semplice per il pavimento.

Per dare dei tocchi finali, si aggiungeremo gli occhi e qualche altro dettaglio. 1. Prima di tutto si renda visibile solo il Livello 1 cliccando su LMB sul pulsante del livello 1 (Figura 4-40). Questo nasconderà le luci, la telecamera, ed il pavimento. Figura 4-40. I pulsanti di visibilità del livello sulla barra degli strumenti.

54

2. Si pone il cursore al centro della testa di Gus. (Ci si ricordi che si è in 3D e che quindi si hanno bisogno di almeno due viste di controllo per essere sicuri!) 3. Si aggiunge una sfera (SPAZIO>>ADD>>Mesh>>UVsphere). Sarà chiesto il numero dei Segments: (meridiani) e quello dei Rings: (paralleli) con cui suddividere la sfera. Il default di 32 è eccessivo per i nostri bisogni quindi si usa il valore di 16 per entrambi. La sfera è la prima immagine in alto a sinistra della sequenza nella Figura 4-41. 4. Si riduce la sfera (SKEY) di un fattore 0.1 in tutte le dimensioni, quindi si cambia in vista laterale (NUM3) e si riduce nella sola direzione orizzontale (YKEY) di un ulteriore fattore di 0.5 (Le seconde due immagini in Figura 4-41). Figura 4-41. La sequenza per la creazione degli occhi.

5. Si ingrandisce un po', se necessario, tramite NUM+, MW, o CTRL-MMB, e si trascina la sfera (GKEY) sulla sinistra in modo che stia a metà nella testa (come mostrato nella prima immagine della seconda riga della Figura 4-41). 6. Si torna nella vista frontale (NUM1) e si sposta la sfera di fianco a destra. La si pone dove Gus dovrebbe avere un occhio. 7. Si ribalta [flip] un duplicato attorno al cursore seguendo la sequenza imparata quando si è ribaltato il corpo di Gus. (Si seleziona il pulsante con la crocetta dalla barra degli strumenti, in modo Edit AKEY per deselezionare tutto, SHIFT-D, ESC MKEY, e la voce Global X del menù). Ora Gus ha due occhi. 8. Si esce dal Modo Edit (TAB), e si pone il cursore il più vicino possibile al centro della faccia di Gus. Si aggiunge una nuova sfera e la si ridimensiona e sposta esattamente come prima, ma rendendola più piccola e piazzandola più in basso e più sulla destra del cursore, centrata sul vertice della mesh Sub-Suddivisa [SubSurfed] Figura 4-42). Figura 4-42. La creazione della bocca con gli strumenti di Ribaltamento [Spinning].

9. Ora, tra i Pulsanti di Edit (F9), si cerchi il gruppo di pulsanti in basso nel pannello Mesh Tools (Figura 4-43). Si imposti Degr: a 90, Steps: a 3, e si verifichi che l'interruttore Clockwise: sia premuto. Quindi, con tutti i vertici ancora selezionati, si preme SpinDup. Questo creerà tre duplicati dei vertici selezionati su un arco di 90 gradi centrato sul cursore. Il risultato dovrebbe essere la bocca di Gus, come l'ultima immagine della sequenza mostrata nella Figura 4-42. Figura 4-43. I pulsanti per gli Strumenti di Ribaltamento [Spin] nella Pulsantiera di Edit.

Ora che si è appreso il trucco, aggiungiamo altri tre di questi ellissoidi per formare i bottoni di Gus. Una volta creato un bottone,

55

Capitolo 3. Capire l'interfaccia semplicemente si esce dal modo Edit, si preme SHIFT-D per creare un duplicato, e si mette in posizione il duplicato, come mostrato in Figura 4-44. Figura 4-44. Gus al completo!

Diamo agli occhi un materiale simile al cioccolato, come quello mostrato in alto nella Figura 4-45. Diamo alla bocca un materiale simile allo zucchero bianco, come il secondo mostrato della Figura 4-45, e diamo ai bottoni un materiale simili allo zucchero rosso, bianco e verde. Anche questi sono mostrati anche nella Figura 4-45 dall'alto verso il basso.

56

Figura 4-45. I materiali di qualche altro dolciume.

Oggetti che condividono un materiale: Per dare ad un oggetto lo stesso materiale di un altro oggetto, si seleziona il materiale nella lista del Menù che appare quando si preme il Pulsante Menù nel Pannello Material della Pulsantiera.

Figura 4-46. La selezione di un materiale esistente dal Menù Materiale.

Una volta completata l'assegnazione dei materiali, si rende nuovamente visibile il livello 10 (si dovrebbe sapere come fare), in modo che appaiano anche le luci e la telecamera, e fare un nuovo rendering (F12). Il risultato dovrebbe assomigliare più o meno a quello di Figura 4-47.

57

Capitolo 3. Capire l'interfaccia Figura 4-47. Il rendering della foto di Gus completo.

Si salva l'immagine, se si vuole, premendo F3. Si immette il nome dell'immagine nella finestra del file e si salva. Tipi di immagini ed estensioni: Bisogna scegliere il formato dell'immagine (JPEG, PNG e così via) impostando i pulsanti del Rendering prima di premere F3 (Figura 4-27) ed usando il Menù (Figura 4-48) nel Pannello Format. Blender non aggiunge un'estensione al nome del file; se ne deve digitare una se la si vuole. Figura 4-48. Il menù di selezione del tipo di file nella finestra dei Pulsanti del Rendering.

Allestimento [Rigging] A partire da Blender v2.31 Se vogliamo un'immagine ferma, a questo punto il nostro lavoro è sufficiente, ma noi vogliamo che Gus si muova! Il passo successivo sarà quello di dargli uno scheletro, o Armatura, con cui potrà muoversi. Questa è la bella arte dell'allestimento [rigging]. Gus avrà un allestimento molto semplice, quattro arti (due braccia e due gambe) ed un paio di giunture(nessun gomito, solo ginocchia), ma senza piedi o mani. Per aggiungere l'allestimento: 1. Si ponga il cursore dove starà la spalla, si preme SPAZIO>>Add>>Armature. Apparirà un oggetto romboidale, un osso del sistema dell'armatura, teso dal cursore al puntatore del mouse. Si ponga l'altra estremità dell'armatura nella mano di Gus (Figura 449) con LMB. Questo fisserà l'osso e ne creerà uno nuovo a partire dall'estremità finale del precedente, producendo una catena di ossa. Non abbiamo bisogno di nessun'altro osso, quindi si preme ESC per uscire.

58

Figura 4-49. L'aggiunta del primo osso, un braccio senza gomito.

2. Si resta in modo Edit, quindi si sposta il cursore dove c'è la giuntura dell'anca e si aggiunge un altro osso (SPAZIO>>ADD>>Armature) scendendo fino al ginocchio. Si preme LMB e vi dovrebbe apparire automaticamente un nuovo osso. Tale osso si tira fino al piede (Figura 4-50). Figura 4-50. L'aggiunta del secondo e del terzo osso, la catena ossea della gamba.

Posizionamento dell'osso: Le ossa che saranno aggiunte deformeranno la mesh del corpo di Gus. Per avere un risultato pulito, si provi a porre le giunture delle ossa come mostrato nelle illustrazioni.

3. Ora si pone il cursore al centro e si selezionano tutte le ossa con AKEY. Si duplicano con SHIFT-D e si esce dal modo traslazione [grab] con ESC quindi si ribaltano con MKEY relativamente al cursore e all'asse X globale come fatto con le mesh (Figura 4-51).

59

Capitolo 3. Capire l'interfaccia Figura 4-51. L'armatura completa dopo la duplicazione ed il ribaltamento.

Una volta selezionate tutte le ossa (AKEY), la Pulsantiera di Edit dovrebbe mostrare un Pannello Armature Bones che contiene i pulsanti dell'Armatura (Figura 4-52). Figura 4-52. La Pulsantiera di Edit per un'armatura.

Si preme il pulsante Draw Names per vedere i nomi delle ossa, quindi SHIFT-LMB sui nomi nella Pulsantiera di Edit (Figura 452) per cambiarli in qualcosa di appropriato come Arm.R, Arm.L, UpLeg.R, LoLeg.R, UpLeg.L e LoLeg.L. Si esce dal modo Edit con (TAB). Dare un nome alle Ossa: È molto importante dare un nome alle ossa con l'estensione '.L' o '.R' per fare distinzione tra quelli di sinistra e quelli di destra, in questo modo, l'editor dell'Azione sarà in grado di ribaltare [flip] automaticamente le pose.

Rivestimento [Skinning] A partire da Blender v2.31 Ora dobbiamo fare in modo che una deformazione dell'armatura provochi una deformazione del corpo. Questo è fatto col Rivestimento [Skinning] che assegna i vertici alle ossa in modo che i primi siano assoggettati ai movimenti di questi ultimi. 1. Si seleziona il corpo di Gus, quindi SHIFT e si seleziona l'armatura in questo modo il corpo è violetto e l'armatura è rosa chiaro. 2. Si preme CTRL-P per imparentare il corpo all'armatura. Apparirà un menù (Figura 4-53). Si seleziona la voce Use Armature.

60

Figura 4-53. Il menù che appare quando s'imparenta un Oggetto ad un'armatura.

3. Appare un nuovo menù, chiedendo se si vuole che Blender non faccia nient'altro, crei dei gruppi di vertici vuoti, o crei e popolino dei gruppi di vertici (Figura 4-54). Figura 4-54. Scelte per il Rivestimento Automatico.

4. Useremo la funzionalità del rivestimento automatico. Si prosegue e si seleziona Create From Closest Bones. Ora si seleziona solo il corpo di Gus e si va in Modo Edit (TAB). Si noti, nella Pulsantiera di Edit (F9) e nel Pannello Mesh Tools 1, la presenza di un menù dei Gruppi di Vertici e dei pulsanti (Figura 4-55). Figura 4-55. I pulsanti dei gruppi di vertici nella Pulsantiera di Edit di una mesh.

Premendo il Pulsante Menù appare un menù con tutti i raggruppamenti di vertici disponibili (sei nel nostro caso, ma in personaggi veramente complessi, con mani e piedi completamente articolati se ne possono avere dieci di questi! Figura 4-56). I pulsanti Select e Deselect mostrano quali vertici appartengono a quale gruppo.

61

Capitolo 3. Capire l'interfaccia Figura 4-56. Il menù con i raggruppamenti di vertici creati automaticamente dal processo di rivestimento.

Si seleziona il gruppo Braccio Destro (Arm.R) e, con tutti i vertici de-selezionati (AKEY, se necessario) si preme Select. Si vedrà qualcosa di simile alla Figura 4-57. Figura 4-57. Gus in modo Edit con tutti i vertici del gruppo Arm.R selezionati.

I vertici evidenziati coi cerchi gialli nella Figura 4-57 appartengono al gruppo di deformazione, ma non dovrebbero esserlo. Il processo di autorivestimento ha trovato che essi risultano molto prossimi all'osso quindi li ha aggiunti al gruppo di deformazione. Non vogliamo che essi siano in questo gruppo in quanto, alcuni sono della testa ed altri del petto, aggiungendoli al gruppo di deformazione si deformerebbero queste parti del corpo. Per rimuoverli dal gruppo, si deselezionano tutti gli altri vertici, quelli che devono restare nel gruppo usando la selezione Delimitata [Box selection] (BKEY), ma usando MMB, non LMB, per definire il rettangolo, così tutti i vertici all'interno del rettangolo diventano deselezionati. Una volta che solo i vertici 'indesiderati' sono selezionati, si preme il pulsante Remove (Figura 4-55) per eliminarli dal gruppo Arm.R. Si deseleziona tutto (AKEY) quindi si controlla un altro gruppo. Si controllano tutti in modo da essere sicuri che assomigliano a quelli in Figura 4-58.

62

Figura 4-58. I sei gruppi di vertici.

Gruppi di vertici: Si ponga molta cura nell'assegnare o rimuovere i vertici dai raggruppamenti di vertici. Nel caso in cui in seguito si noteranno delle deformazioni strane, potrebbe essere per aver dimenticato qualche vertice o averne piazzati troppi nel gruppo. Si possono modificare i gruppi di vertici in qualsiasi momento. Altri dettagli: Le deformazioni riguarderanno solo il corpo di Gus, non i suoi occhi, la bocca o i bottoni, che sono oggetti separati. Mentre questo non è un argomento da considerare in questa semplice animazione, è qualcosa da tenere conto per progetti più complessi, per esempio nell'imparentamento o altrimenti unendo le varie parti al corpo per farne una singola mesh. (Tutte queste possibilità saranno descritte in dettaglio nei Capitoli successivi).

Posizionamento A partire da Blender v2.31 Una volta strutturato e rivestito Gus si può iniziare a giocarci come se fosse una bambola, movendogli le ossa ed osservando il risultato. 1. Si seleziona solo l'armatura, quindi si seleziona Pose Mode dal Menù "Mode" (Figura 4-59). Tale opzione appare solo se è selezionata un'armatura. Figura 4-59. L'interruttore per commutare in modo Posa nella barra degli strumenti della Finestra 3D.

2. L'armatura diventerà blu. Si è in Modo Posa. Se ora si seleziona un osso esso si trasforma in azzurro, non rosa, e se lo si sposta (GKEY), o lo si ruota (RKEY), il corpo si deformerà!

63

Capitolo 3. Capire l'interfaccia Figura 4-60. Ora siete in modo posa!

Posizione originale: Blender ricorda la posizione originale delle ossa, si può riposizionare l'armatura, premendo il pulsante RestPos nella Pulsantiera di Edit dell'Armatura (Figura 4-52). Cinematica Diretta ed Inversa: Maneggiando le ossa in modo posa si noterà che esse agiscono come corpi rigidi ed inestensibili con giunture sferiche alle estremità. Al momento si può solo trascinare il primo osso di una catena, tutti gli altri lo seguono. Tutte le ossa successive nella catena non possono essere afferrate e spostate, si possono solo ruotare, in modo che l'osso selezionato ruoti rispetto all'osso precedente della catena, mentre tutti i successivi ossi della catena seguono la sua rotazione. Questa procedura, detta Cinematica Diretta [Forward Kinematics (FK)] è facile da seguire, ma rende difficoltoso il posizionamento dell'ultimo osso della catena. Possiamo usare un altro metodo, chiamato Cinematica Inversa [Inverse Kinematics (IK)] dove in effetti si definisce la posizione dell'ultimo osso della catena, e tutti gli altri assumono una posizione, calcolata automaticamente da Blender, Per tenere la catena senza buchi. Dunque il posizionamento preciso di mani e piedi è molto più facile.

Faremo camminare Gus de definendo quattro pose relative ai quattro diversi stadi di una falcata. Blender stesso si prenderà cura di creare un'animazione fluida. 1. Prima, si verifica di essere al frame 1 nella linea del tempo. Il numero del frame appare in un pulsante numerico alla destra della barra degli strumenti della Pulsantiera (Figura 4-61). Se non è impostato a 1, lo si ponga a 1 ora. Figura 4-61. Il pulsante numerico del fotogramma [frame] corrente nella barra degli strumenti della Pulsantiera.

2. Ora, ruotando un solo osso per volta (RKEY), solleviamo UpLeg.L e pieghiamo indietro LoLeg.L. mentre solleviamo un po' Arm.R ed abbassiamo un po' Arm.L, come mostrato in Figura 4-62.

64

Figura 4-62. La nostra prima posa.

3. Si selezionano tutte le ossa con AKEY. Col puntatore del mouse sulla Finestra 3D, si preme IKEY. Appare un menù (Figura 4-63). Si seleziona LocRot da tale menù. Questo leggerà la posizione e la rotazione di tutte le ossa e la memorizzerà in una posa al frame 1. Questa posa rappresenta Gus a metà della sua falcata, mentre sposta la gamba avanti sollevandola dal suolo. Figura 4-63. Memorizzazione di una posa nel frame.

4. Ora ci si sposta al frame 11 o immettendo il numero nel pulsante numerico o premendo FrecciaSu. Quindi si sposta Gus in una posizione diversa, come nella Figura 4-64, con la sua gamba sinistra avanti e la destra indietro, entrambe lievemente piegate. Gus sta camminando sul posto!

65

Capitolo 3. Capire l'interfaccia Figura 4-64. La nostra seconda posa.

5. Si selezionano ancora tutte le ossa e si preme IKEY per memorizzare questa posa al frame 11. 6. Ora abbiamo bisogno di una terza posa al frame 21, con la gamba destra su, perché siamo nel mezzo della falcata successiva. Questa posa è speculare a quella definita al frame 1. Perciò, si torna al frame 1 e, nel Menù Armature nell'header della Finestra 3D si seleziona la voce Copy Pose. (Figura 4-65). La posa è stata effettivamente copiata nel buffer. Figura 4-65. La copia della posa nel buffer

7. Si torna al frame 21 e la si incolla con l'opzione Paste Flipped Pose nel Menù Armature (Figura 4-66). Questo pulsante incollerà la posa copiata, scambiando le posizioni delle ossa col suffisso .L con le ossa col suffisso .R, in pratica ribaltandole! Figura 4-66. La nuova posa da una precedente copiata e ribaltata.

66

La posa è lì ma non è stata ancora memorizzata! Bisogna premere IKEY con tutte le ossa selezionate. 8. Ora si usi la stessa procedura per copiare la posa al 11 al frame 31, ribaltandola pure. 9. Per completare il ciclo, bisogna copiare la posa al frame 1 senza ribaltamento al frame 41. Lo si può fare come al solito, ed usando la voce Paste Pose. La sequenza si completa memorizzando la posa con IKEY. Controllo dell'animazione: Per un'anteprima dell'animazione, si imposta il frane corrente a 1 e si preme ALT-A nella finestra 3D.

Gus cammina! A partire da Blender v2.31 Il singolo passo sul posto è il nucleo della camminata, ed una volta definitane una ci sono tecniche per far sì che un personaggio cammini lungo un percorso complesso. Ma, per l'utilizzo nel nostro Avvio Rapido, questo passo sul posto è abbastanza. 1. Ci si sposti nei Pulsanti del Rendering (F10) e si imposti l'inizio e la fine dell'animazione a 1 ed a 40 rispettivamente (Figura 467). Poiché il frame 41 è identico al frame 1, abbiamo bisogno di effettuare solo il rendering dei frames da 1 al 40 per produrre l'intero ciclo. Figura 4-67. Le impostazioni dei Pulsanti del Rendering per l'animazione.

2. Si selezioni AVI Raw come tipo di file nel Pannello Format (Figura 4-67). Mentre questa non è in genere la scelta migliore, principalmente per la dimensione del file (come sarà spiegato in seguito), esso è veloce e girerà su tutte le macchine, quindi è adatto al nostro scopo. (Si può selezionare anche AVI Jpeg, per produrre un file più compatto, ma usando una compressione Jpeg con perdita ed ottenendo un filmato che qualche riproduttore esterno non potrebbe essere in grado di riprodurre). 3. Finalmente si preme il pulsante ANIM nel Pannello Anim. Si ricordi che tutti i livelli che si vogliono usare nell'animazione devono apparire! Nel nostro caso, questi sono livelli 1 e 10. Fermare un Rendering: Se si fa un errore, come dimenticare di attivare il livello 10, si può fermare il processo del rendering col tasto ESC.

La scena è abbastanza semplice, e Blender probabilmente porterà a termine il rendering delle 40 immagini in pochi secondi. Si osservi come appaiono. Fotogrammi: Ovviamente si può effettuare il rendering di ciascuna animazione come fotogrammi selezionando il frame di cui si vuol fare il rendering e premendo il pulsante RENDER.

Una volta completato il rendering si dovrebbe avere un file chiamato 0001_0040.avi in una subdirectory render della directory corrente - quella contenente il proprio file .blend. Si può riprodurre questo file direttamente dentro Blender premendo il pulsante Play sotto il pulsante ANIM (Figura 4-67). L'animazione si ripeterà automaticamente. Per fermarla si preme ESC. Abbiamo prodotto solo un semplicissimo ciclo di camminata. C'è molto di più in Blender, come andremo a scoprire!

67

II. Modellazione, Materiali e Luci Come si è visto nel capitolo sulla Partenza Rapida nella Parte I, per la creazione di una scena 3D si ha bisogno di almeno tre oggetti chiave: Modelli, Materiali e Luci. In questa Parte frugheremo in ciascuno di essi. Una volta completata questa Parte o si potrà andare alla Parte IV se si vuole apprendere di più sui motori di rendering delle immagini fisse di Blender, oppure leggere la Parte III per imparare tutto sulle capacità di animazione di Blender. D'altronde la Parte V fornisce più informazioni sugli strumenti avanzati di modellazione.

Capitolo 5. Modalità Oggetto di Martin Kleppmann La geometria di una scena di Blender viene costruita a partire da uno o più Oggetti: tra cui Lampade, Curve, Superfici, Telecamere, Mesh e gli oggetti base sono descritti nella sezione Oggetti elementari nel Capitolo 6. Ciascun oggetto può essere spostato, ruotato e dimensionato in Modo Oggetto. Per ulteriori dettagli sulla modifica della geometria, si può lavorare sulla mesh di un Oggetto in Modo Edit (si veda la sezione Modo Edit nel Capitolo 6). Una volta aggiunto un oggetto base col menù SPAZIO>>Add, Blender va automaticamente in Modo Edit se l'Oggetto è una Mesh, una Curva o una Superficie,. Si può andare in Modo Oggetto premendo TAB. La struttura a 'fil-di-ferro' degli oggetti, se ce ne sono, dovrebbe, quindi, apparire rosa, indicando che tale oggetto è ora selezionato ed attivo.

Selezionare oggetti A partire da Blender v2.31 Per selezionare un oggetto ci si clicca sopra col tasto destro del mouse (RMB). Per selezionare più oggetti, si tiene premuto SHIFT e si clicca con RMB. Generalmente, l'ultimo oggetto selezionato diventa quello attivo: esso appare in rosa chiaro, mentre gli oggetti selezionati non attivi sono viola. La definizione di oggetto attivo è importante per varie ragioni, incluso l'imparentamento o affiliazione. Per deselezionare l'oggetto attivo, si clicca ancora con RMB, se sono selezionati più Oggetti si tiene premuto SHIFT per tenere selezionati gli altri. Si preme AKEY per selezionare tutti gli oggetti nella scena (se attualmente non ne è stato selezionato nessuno) o per deselezionare tutti (se nessuno è attualmente selezionato). BKEY attiva la selezione Delimitata [Border]. La selezione Delimitata si usa per selezionare un gruppo di oggetti tracciando un rettangolo tenendo premuto LMB. Si selezioneranno tutti gli oggetti giacenti all'interno o toccati da tale rettangolo. Nota: La selezione delimitata aggiunge alla precedente selezione, quindi se si vuol selezionare solo il contenuto del rettangolo, si deve prima deselezionare tutto con AKEY. Si usa MMB mentre si traccia il rettangolo delimitatore per deselezionare tutti gli oggetti all'interno del rettangolo.

Spostare (traslare) oggetti A partire da Blender v2.31 Per spostare un gruppo di oggetti si preme GKEY per attivare il modo Traslazione [Grab] per tutti gli oggetti selezionati. Gli oggetti selezionati appariranno come fil-di-ferro bianco e possono essere spostati col mouse (senza premere nessuno dei pulsanti del mouse). Per confermare la nuova posizione, si clicca su LMB o si preme ENTER; per uscire dalla modalità di traslazione, si clicca su RMB o si preme ESC. La testata [header] della finestra 3D mostra la distanza dello spostamento. Per vincolare il movimento lungo un asse del sistema di coordinate globali, si entra in modo traslazione, si sposta leggermente l'oggetto lungo l'asse desiderato, quindi si preme MMB. Per disabilitare il vincolo si preme ancora MMB. Come nuova caratteristica della 2.3 si può vincolare il movimento ad un dato asse premendo XKEY, YKEY o ZKEY. Un solo tasto vincola lo spostamento al corrispondente asse globale, come fa MMB. Una seconda pressione dello stesso tasto vincola lo spostamento al corrispondente asse locale dell'Oggetto. Una terza pressione dello stesso tasto rimuove i vincoli. Delle linee vengono disegnate per consentire una migliore visualizzazione del vincolo.

Una volta attivata la traslazione su può immettere numericamente la traslazione dell'Oggetto semplicemente digitando un numero. Questo consentirà di immettere la prima coordinata mostrata nella testata della Finestra 3D. La coordinata si può cambiare con TAB e si usa NKEY per uscire/ri-entrare in modalità immissione numerica, Con ENTER si completa e con ESC si esce. BACKSPACE ripristinerà i valori originali. Da notare che si deve usare il tasto .KEY della tastiera non NUM. per i decimali. Se si tiene premuto CTRL mentre si sposta l'oggetto si attiva la modalità accostata [snap], e l'oggetto si muoverà di un numero intero di unità Blender (i quadrati della griglia). La modalità snap termina rilasciando CTRL quindi ci si assicuri di confermare la posizione prima di rilasciarlo. La posizione degli oggetti selezionati può essere rimessa al valore di default premendo ALT-G. Nota: Se ci si sta sforzando per ottenere un posizionamento preciso, si tenga premuto SHIFT mentre ci si sposta. In questo modo un ampio movimento del mouse si trasformerà in un piccolo spostamento dell'oggetto, cosa che consente una regolazione fine. Sistema di Gestualità [Gesture] di Blender: Si può entrare in modo Traslazione disegnando una linea dritta tenendo premuto LMB.

Ruotare Oggetti A partire da Blender v2.31 Per ruotare gli oggetti, si attiva la modalità Rotazione premendo RKEY. Come in Traslazione, si può variare la rotazione spostando il mouse, si conferma con LMB o ENTER, si annulla con RMB o ESC. La rotazione nello spazio 3D avviene attorno ad un asse, e ci sono vari modi per definire quest'asse. Blender definisce un asse per la direzione ed un punto attraverso cui passa. Per esempio, di norma, la direzione dell'asse è ortogonale allo schermo. Se si sta guardando la scena di fronte, di lato, o dall'alto, la rotazione dell'asse sarà parallela a quella del sistema di coordinate globali degli assi. Se si sta guardando la scena da una angolazione [non ortogonale], anche l'asse di rotazione è inclinato, con questo si può facilmente ottenere una rotazione molto particolare dell'oggetto. In questo caso, si potrebbe voler mantenere l'asse di rotazione parallelo al sistema di coordinate degli assi, cambiandone il funzionamento premendo MMB durante la Rotazione e sorvegliare l'angolo mostrato nella testata [header] della finestra. Alternativamente, una volta in modalità rotazione, si può premere XKEY, YKEY o ZKEY per vincolare la rotazione attorno a tale asse del riferimento globale. Premendo XKEY-XKEY (due volte XKEY) si può vincolare la rotazione attorno all'asse x del riferimento locale dell'Oggetto. Lo stesso vale anche per doppio YKEY e ZKEY. Come per la traslazione, una terza pressione rimuove i vincoli. È possibile avere una immissione numerica per la rotazione esattamente come per le traslazioni. Si seleziona il punto attraverso cui passa l'asse di rotazione col menù pertinente nella testata della finestra 3D, come descritto in precedenza (Figura 5-1). Figura 5-1. I pulsanti per la selezione del punto di rotazione



Bounding Box Center - l'asse passa attraverso il centro del parallelepipedo che racchiude la selezione. (Se è selezionato un

solo oggetto, il punto usato è il punto del centro dell'oggetto, che non deve necessariamente essere il centro geometrico. In Figura 5-1 esso è a metà del lato più a destra, segnalato da un punto viola. Per altre notizie su questo punto si legga la sezione Modo Edit nel Capitolo 6). •

Median Point - l'asse passa attraverso il punto mediano della selezione. Questa differenza è importante solo in Modo Edit, ed il punto 'Mediano' è il baricentro di tutti i vertici.



3D Cursor - l'asse passa attraverso il cursore 3D. Il cursore può essere posto ovunque si voglia prima di effettuare la rotazione. Tale può utilizzare tale possibilità per eseguire facilmente certe traslazioni nello stesso momento in cui si ruota un oggetto.



Individual Object Centers - ciascun oggetto selezionato ha il proprio asse di rotazione; essi sono tutti mutuamente paralleli e passanti attraverso ciascun punto del centro dell'oggetto, rispettivamente. Se si seleziona un solo oggetto, si avrà lo stesso effetto del primo pulsante.

Se si è appena agli inizi con la rotazione, non ci si preoccupi troppo dei dettagli precedenti. Basta allenarsi con gli strumenti di Blender per imparare a lavorarci. Tenendo premuto CTRL si va in modalità Accostata [snap]. Nel modo snap le rotazioni sono vincolate a passi di 5°. Tenendo premuto SHIFT si ha anche qui una regolazione fine. La rotazione degli oggetti selezionati può essere reimpostata al valore normale premendo ALT-R. Sistema di Gestualità [Gesture] di Blender: Si può entrare in modo Rotazione disegnando una linea circolare tenendo premuto LMB.

Ridimensionare e Rendere speculari gli oggetti A partire da Blender v2.31 Per cambiare la dimensione degli oggetti, si preme SKEY. Così come in traslazione ed in rotazione, il dimensionamento degli oggetti avviene spostando il mouse, si conferma con LMB o ENTER, e si annulla con RMB o ESC. Il dimensionamento nello spazio 3D richiede un punto centrale. Tale punto è definito con gli stessi pulsanti che gestiscono il punto di rotazione dell'asse (Figura 5-1). Se si aumenta la dimensione dell'oggetto, tutti i punti vengono allontanati dal punto centrale selezionato; se la si diminuisce, tutti i punti si avvicinano a questo punto. Normalmente, gli oggetti selezionati vengono dimensionati uniformemente in tutte le direzioni. Per cambiare le proporzioni (rendere l'oggetto più lungo, più largo, e cos' via), Si può vincolare il processo di dimensionamento ad uno degli assi delle coordinate globali, proprio come nella traslazione degli oggetti. Per fare ciò si entra in Modo Dimensionamento, si sposta un po' il mouse nella direzione dell'asse lungo cui si vuol ridimensionare, quindi si preme MMB. Per tornare al dimensionamento uniforme, si preme ancora MMB. Si vedranno i fattori di scala nella testata della finestra 3D. Ancora una volta tutte le considerazioni sul vincolo ad un dato asse fatte con la Traslazione restano, così come quelle sull'immissione numerica. Anche qui CTRL cambia in modalità accostata [snap], con una scala discreta a passi di 0.1. Si preme SHIFT per una regolazione fine. Il dimensionamento degli oggetti selezionati può essere ripristinato al default premendo ALT-S. La specularizzazione degli oggetti è una diversa applicazione dello strumento di ridimensionamento. In effetti la specularizzazione non è altro che un ridimensionamento con valori negativi in una data direzione. Per speculare nella direzione degli assi X o Y, si preme SKEY per andare in modalità dimensionamento, quindi NKEY per spostarsi nell'immissione numerica. Si selezionano le coordinate desiderate e si immette '-1' come fattore di scala. Sistema di Gestualità [Gesture] di Blender: Si può entrare in modo dimensionamento disegnando una linea a forma di V tenendo premuto LMB.

Pannello delle Proprietà della Trasformazione A partire da Blender v2.31 Diciamo che si voglia mostrare la posizione/rotazione/dimensione dell'oggetto in numeri. O, si vogliano immettere contemporaneamente i valori della posizione, rotazione e della dimensione di un oggetto direttamente. Per fare ciò, si seleziona l'oggetto che si vuol editare e si preme NKEY. Appare il pannello Transform Properties (Figura 5-2). SHIFT-LMB-click su un numero

per immettere un valore, quindi si preme OK per confermare la modifica o si sposta il mouse fuori la finestra per cancellare. Figura 5-2. La finestra numerica

Il pannello mostra anche il nome dell'Oggetto nel Pulsante OB:. Lo si può modificare da qui.

Duplicare A partire da Blender v2.31 Per duplicare un oggetto, si preme SHIFT-D per creare una copia identica degli oggetti selezionati. La copia viene creata nella stessa posizione, in modalità traslazione [Grab]. Questo è un nuovo oggetto, eccetto per il fatto che condivide ogni Materiale, Texture e IPO con l'originale. Questi attributi sono collegati ad entrambe le copie e cambiando il materiale di uno oggetto si cambia anche il materiale dell'altro. (Si possono creare dei materiali separati per ciascuno, come descritto nel Capitolo Materiali). Si può creare un Duplicato Collegato anziché un reale doppione premendo ALT-D. Questo creerà un nuovo oggetto avente tutti i suoi dati collegati all'oggetto originale. Se si modifica uno degli Oggetti collegati in Modo Edit, verranno modificate anche tutte le copie.

Imparentare (Raggruppare) A partire da Blender v2.31 Per creare un gruppo di oggetti bisogna prima renderne uno genitore degli altri. Per fare ciò, si selezionano almeno due oggetti, si preme CTRL-P, e confermando Make Parent?. L'oggetto attivo diventerà il genitore di tutti gli altri. Il centro di tutti i figli viene quindi collegato al centro del genitore da una linea tratteggiata. A questo punto, traslando, ruotando e dimensionando il genitore si farà lo stesso al figlio che sarà traslato, ruotato o dimensionato allo stesso modo. L'imparentamento è uno strumento molto importante con molte applicazioni avanzate, come si vedrà nei capitoli successivi. Si preme SHIFT-G con un gli oggetto attivo per vedere il menù di Selezione di Gruppo [Group Selection] (Figura 5-3). Questo contiene le voci: • Children

- Seleziona tutti i figli dell'oggetto attivo, ed i figli dei figli, fino all'ultima generazione.

• Immediate Children • Parent

- Seleziona tutti i figli dell'oggetto attivo ma non i figli di questi ultimi.

- Seleziona il genitore dell'oggetto attivo.

- Questo in realtà non fa niente con la parentela. Esso seleziona tutti gli oggetti sullo stesso strato(i) [layer] dell'oggetto attivo.

• Objects on shared layers

Figura 5-3. Selezione di Gruppo

Si sposta il figlio verso il genitore cancellandone la sua origine (lo si seleziona e si preme ALT-O). Una relazione di parentela si rimuove con ALT-P. Si può scegliere tra (Figura 5-4): • Clear parent

- Libera i figli, che tornano nelle loro posizione, rotazione e dimensione originale.

• Clear parent...and keep transform

- Libera i figli, e conserva la posizione, rotazione e dimensione ottenuta dalla

loro parentela. - Pone il figlio rispetto al genitore come se fosse posto nel riferimento Globale. Questo di fatto elimina dal figlio le trasformazioni del genitore.

• Clear parent inverse

Figura 5-4. Liberazione dei Figli.

Inseguimento [Tracking] A partire da Blender v2.31 Per fare in modo che un oggetto ruoti in modo che sia rivolto verso un altro oggetto, anche se entrambi gli oggetti vengono spostati, Si selezionano almeno due oggetti e premere CTRL-T. Appare una finestra per chiedere se si vuol usare un vincolo di inseguimento [Track] o il vecchio (Pre-2.30) sistema di inseguimento. Il vincolo di inseguimento verrà analizzato nella sezione Vincoli nel Capitolo 16 ed è il metodo preferito. Qui tratteremo brevemente il vecchio sistema di inseguimento, quindi, si assume che si sia scelto Old Track nella finestra di dialogo. Di norma l'oggetto (o gli oggetti) inattivo puntano l'oggetto attivo in modo che il loro asse locale y punti all'oggetto inseguito [tracked]. Ad ogni modo, questo può non avvenire se l'oggetto inseguitore ha già una propria rotazione. Si può produrre il puntamento corretto cancellando la rotazione (ALT-R) dell'oggetto inseguitore. L'orientamento degli oggetti inseguitori viene impostato in modo che l'asse z sia rivolto verso l'alto. Per cambiare si seleziona l'oggetto inseguitore, ci si sposta dalla Pulsantiera al Contesto dell'Oggetto ( , o F7) e si seleziona l'asse di inseguimento [track] dalla prima riga di sei Pulsanti Radio e l'asse verso l'alto dal secondo gruppo nel pannello Anim Setting. (Figura 5-5). Figura 5-5. Impostazione degli assi per l'Inseguimento.

Per cancellare il vincolo dell'inseguimento si seleziona l'oggetto inseguitore e si preme ALT-T. Come per la cancellazione di un

vincolo di parentela, si deve scegliere tra perdere o salvare la rotazione imposta dall'inseguimento.

Altre azioni A partire da Blender v2.31 Cancellazione Si preme XKEY o DEL per cancellare gli oggetti selezionati. L'uso di XKEY è più pratico per la maggior parte delle persone, in quanto è facilmente raggiungibile con la mano sinistra sulla tastiera. Unione (Join) Si preme CTRL-J per riunire tutti gli oggetti selezionati in un singolo Oggetto. (Questi oggetti devono essere dello stesso tipo). Il punto centrale dell'oggetto risultante è ottenuto dall'oggetto precedentemente attivo. Selezione dei collegamenti (Select Links) Si preme SHIFT-L per selezionare tutti gli oggetti che condividono un collegamento con quello attivo. Si possono selezionare gli oggetti che condividono una IPO, dati, materiale o una texture (Figura 5-6). Figura 5-6. Selezione dei collegamenti.

Operazioni Booleane A partire da Blender v2.31 Le operazioni booleane sono particolari azioni eseguibili solo su oggetti di tipo Mesh. Mentre esse funzionano per tutti gli oggetti Mesh, esse sono in effetti per essere usate con solidi, oggetti chiusi con una regione interna ed una esterna ben definite. Così, è molto importante definire coerentemente le normali in ciascun oggetto, vale a dire che ciascuna normale di ciascuna faccia deve puntare verso l'esterno. Si veda il Capitolo 6 per ulteriori informazioni sulle normali e perché si può finire con delle normali che puntano verso l'esterno ed altre verso l'interno. Nel caso di oggetti aperti, l'interno è definito matematicamente estendendo i confini delle facce dell'oggetto all'infinito. Quindi, si potrebbero avere dei risultati inaspettati, per questi oggetti. Un'operazione booleana non modifica gli operandi originali, il risultato è sempre un nuovo oggetto di Blender. Le operazioni booleane vengono invocate selezionando esattamente due mesh e premendo WKEY. Ci sono tre tipi di operazioni booleane da scegliere dal menù che appare, Intersect (Intersezione), Union (Unione) e Difference (Differenza). Le operazioni booleane tengono anche in conto dei Materiali e delle Texture UV, producendo oggetti con indici di materiale o oggetti con più mappature UV.

Figura 5-7. Le opzioni per le operazioni booleane.

Si consideri l'oggetto della Figura 5-7. • L'operazione Intersect crea un nuovo oggetto la cui superficie racchiude il volume comune ad entrambi gli oggetti originali. • L'operazione Union crea un nuovo oggetto la cui superficie racchiude il volume di entrambi gli oggetti originali. • L'operazione Difference è la sola per cui è importante l'ordine di selezione. L'oggetto attivo (viola chiaro nella vista a fil-diferro) viene sottratto dall'oggetto selezionato. Vale a dire che, la superficie dell'oggetto risultante racchiude un volume che è il volume appartenente all'oggetto selezionato e inattivo, ma non a quello selezionato ed attivo. La Figura 5-8 mostra i risultati delle tre operazioni. Figura 5-8. Gli oggetti risultanti: intersezione, unione e differenza (dall'alto in basso).

Il numero di poligoni generato può essere molto alto in confronto alle mesh originali, specialmente quando si usano oggetti concavi complessi. Inoltre i poligoni generati possono essere di pessima qualità: molto lunghi e sottili e talvolta molto piccoli. Si provi col Decimatore della Mesh (Pulsantiera di Edit F9) per rimediare a questo problema. I vertici nella mesh risultante che ricadono sul confine dei due oggetti originali spesso non coincidono col confine stesso, e vengono duplicati. Questo è un bene, da un certo punto di vista, in quanto vuol dire che, in Blender, si possono selezionare parti delle mesh originali selezionando un vertice nel risultato e pigiando il pulsante di selezione dei collegati (LKEY). È comodo se si vogliono assegnare materiali e simili al risultato. Nota: Talvolta l'operazione booleana può fallire con un messaggio che dice ("An internal error occurred -- sorry"). Se avviene questo, si provi a spostare o ruotare gli oggetti di pochissimo.

Capitolo 6. Modellazione Elementare della Mesh L'Oggetto principale di una scena 3D è solitamente una Mesh. In questo capitolo elencheremo prima gli oggetti mesh elementari, o primitive, quindi si proseguirà con la descrizione delle azioni più elementari che si possono intraprendere sugli Oggetti Mesh.

Oggetti elementari A partire da Blender v2.31 Per creare un Oggetto elementare si preme SPAZIO e si seleziona "ADD>>Mesh", oppure, si accede al menù 'Add' premendo SHIFT-A o semplicemente premendo LMB sulla finestra 3D, per più di mezzo secondo. Si seleziona quindi dal menù, l'oggetto elementare che si vuol creare. In seguito viene descritto ogni oggetto elementare o primitiva che è possibile creare in Blender. La Figura 6-1 sotto, inoltre, mostra la varietà di oggetti elementari che possono essere creati. Figura 6-1. Gli Oggetti elementari.

Piano [Plane] Un piano standard contiene quattro vertici, quattro lati ed una faccia. Esso è come un pezzo di carta steso su un tavolo; non è un vero oggetto tridimensionale dato che è piatto e non ha spessore. Tra gli oggetti che possono essere creati coi piani ci sono: pavimenti, piani di tavoli o specchi. Cubo [Cube] Un cubo standard contiene otto vertici, 12 lati e sei facce ed è un vero oggetto tridimensionale. Tra gli oggetti che possono essere creati da cubi sono inclusi: dadi, scatole o gabbie.

Cerchio [Circe] Un cerchio standard è composto da n vertici. Il numero di vertici può essere indicato nella finestra che appare alla creazione del cerchio. Più vertici contiene il cerchio, più sarà levigato il suo contorno. Esempi d'oggetti circolari sono dischi, piatti o qualsiasi tipo d'oggetto piatto e rotondo. Sfera UV [UVSphere] Una sfera UV standard è composta da n segmenti e m anelli. Il livello di dettaglio può essere indicato nella finestra che appare alla creazione della sfera UV. L'aumento del numero di segmenti e degli anelli rende la superficie della sfera UV più liscia. I segmenti sono come i meridiani della Terra, che corrono da polo a polo, gli anelli sono simili ai paralleli. Esempi d'oggetti che si possono creare da sfere UV sono: palle, teste o perle per una collana. Nota: Se si specifica una sfera UV di sei segmenti e sei anelli si ottiene qualcosa che, nella vista dall'alto, è un esagono (sei segmenti), con cinque anelli più due punti ai poli. Quindi, un anello in meno a quanto atteso, o due in più, se si conteggiano i poli come anelli di raggio 0.

Icosfera [Icosphere] Un'Icosfera è composta da triangoli. Il numero di suddivisioni può essere indicato nella finestra che appare alla creazione dell'Icosfera; aumentando il numero di suddivisioni si rende la superficie più liscia. A livello 1 la Icosfera è un icosaedro, un solido con 20 facce a forma di triangoli equilateri. Ogni aumento del livello di suddivisione divide ciascuna faccia triangolare in quattro triangoli, apparendo più sferica. L'Icosfera viene di solito usata per avere una disposizione più isotropica (simmetrica) ed economica dei vertici rispetto ad una sfera UV. Cilindro pieno [Cylinder] Un cilindro standard è composto da n vertici. Il numero di vertici nella sezione circolare trasversale può essere indicato nella finestra che appare alla creazione dell'oggetto; più è alto il numero di vertici, più liscia diventa la sezione circolare. Tra gli oggetti che si possono creare coi cilindri sono inclusi manici e aste. Cilindro cavo [Tube] Un cilindro cavo standard è composto da n vertici. Il numero di vertici nella sezione circolare trasversale cava può essere indicato nella finestra che appare alla creazione dell'oggetto; più è alto il numero di vertici, più liscia diventa la sezione circolare cava. Tra gli oggetti che si possono creare coi cilindri cavi sono inclusi tubi o bicchieri. (La differenza fondamentale tra un cilindro pieno ed uno cavo è che il primo ha le estremità chiuse). Cono [Cone] Un cono standard è composto da n vertici. Il numero di vertici nella base circolare può essere indicato nella finestra che appare alla creazione dell'oggetto; più è alto il numero di vertici, più liscia diventa la base circolare. Tra gli oggetti che si possono creare coi coni ci sono: punte e cappelli a punta. Griglia [Grid] Una griglia standard è composta da n per m vertici. La risoluzione degli assi x e y può essere indicata nella finestra che appare alla creazione dell'oggetto; più è alta la risoluzione, più vertici vengono creati. Esempi di oggetti che si possono creare dalle griglie includono i paesaggi (con lo strumento di modifica proporzionale) ed altre superfici organiche. Scimmia [Monkey] Questo è un omaggio della vecchia NaN alla comunità e sembra lo scherzo di un programmatore o la "Sorpresa di un uovo di Pasqua". Crea la testa di una scimmia una volta premuto il pulsante Oooh Oooh Oooh. Il nome della Scimmia è Suzanne ed è la mascotte di Blender.

Modo Edit A partire da Blender v2.31 Con gli oggetti geometrici in Blender si può lavorare in due modi: Modo Oggetto e Modo Edit (Modifica). Fondamentalmente, come si è visto nella sezione precedente, le operazioni in Modo Oggetto riguardano l'intero oggetto, mentre le operazioni in Modo Edit riguardano solo la geometria di un oggetto, ma non le proprietà globali come la posizione o la rotazione.

In Blender ci si può alternare tra questi due modi col tasto TAB. Il Modo Edit funziona su un solo oggetto per volta: l'oggetto attivo. Un oggetto nel modo Oggetto è disegnato in viola nella Finestra 3D (a fil-di-ferro) se selezionato; altrimenti è in nero. L'oggetto attivo viene disegnato nero in modo Edit, ma ciascun vertice è evidenziato in viola (Figura 6-2). I vertici selezionati sono disegnati in giallo (Figura 6-3) e, se sono premuti i pulsanti appropriati nel Contesto di Editing (F9) nel pannello Mesh Tools 1 (Draw Faces e Draw Edges) vengono evidenziate anche i lati e le facce. Figura 6-2. Due piramidi, una in Modo Edit (a sinistra) e l'altra in Modo Oggetto (a destra).

Figura 6-3. Un cubo con i vertici selezionati in giallo.

Strutture: Vertici, Lati e Facce Nelle mesh elementari, ogni cosa è costruita a partire da tre strutture basilari: Vertici, Lati e Facce. (Non parliamo ancora delle Curve, delle NURBS, e così via). Non c'è da deludersi: tale semplicità fornisce delle ricche possibilità che costituiscono le fondamenta di tutti i modelli. Vertici Un vertice è principalmente un punto o una posizione nello spazio 3D. Di solito è invisibile nel rendering e nel Modo Oggetto. (Non si commetta l'errore di confondere il punto centrale di un oggetto con un vertice; esso appare simile, ma è più grande e non si può selezionare). Per creare un nuovo vertice, si cambia in Modo Edit, si tiene premuto CTRL e click con LMB. Ovviamente, giacché lo schermo di un computer è bidimensionale, Blender non può determinare tutte e tre le coordinate da un click del mouse, quindi il nuovo vertice è posto alla profondità del cursore 3D 'dentro' lo schermo. Ogni vertice selezionato precedentemente viene automaticamente connesso al nuovo con un lato. Lati Un lato connette sempre due vertici con una linea retta. I lati sono i 'fili' che si vedono guardando una mesh nella vista a fil-diferro. Di solito sono invisibili sull'immagine del rendering. Sono usati per costruire facce. Un lato si crea selezionando due vertici e premendo FKEY.

Facce Una Faccia è la struttura a più alto livello in una mesh. Le facce vengono usate per costruire la reale superficie dell'oggetto. Sono queste che si vedono nel rendering della mesh. Una Faccia è definita come l'area fra tre o quattro vertici, con un Bordo su ogni lato. I triangoli vanno sempre bene, dato che sono sempre piatti e facili da calcolare. Si presti attenzione quando si usano facce a quattro lati, giacché internamente esse sono semplicemente divise in due triangoli. Le facce a quattro lati funzionano bene solo se la Faccia è particolarmente piatta (tutti i punti giacciono su un piano immaginario), e convessa (nessuno degli angoli ai vertici è maggiore o uguale a 180 gradi). Questo è il caso delle facce di un cubo, per esempio. (Questo è il motivo per cui non si possono vedere tutte le diagonali nel modello a fil-di-ferro, in quanto dovrebbero dividere ciascuna faccia quadrata in due triangoli. Mentre si potrebbe costruire un cubo con facce triangolari, ma apparirebbe solo più confuso in Modo Edit). Un'area fra tre o quattro vertici, evidenziata dai Lati, può non costituire una faccia. Se tale area non contiene una faccia, essa risulterà semplicemente trasparente o non esistente nell'immagine del rendering. Per creare una Faccia, si selezionano tre o quattro vertici adatti e si preme FKEY.

Modifiche elementari La maggior parte delle operazioni semplici dal Modo Oggetto (come selezionare, spostare, ruotare e dimensionare) funzionano in modo identico sui vertici come sugli oggetti. In questo modo, si può imparare molto rapidamente come gestire le operazioni elementari in Modo Edit. La sola differenza degna di nota è una nuova opzione del dimensionamento, ALT-S che posiziona i vertici selezionati lungo la direzione delle normali (ingrassa-dimagrisce). Il tronco di piramide nella Figura 6-4, per esempio, è stato creato con i seguenti passi: 1. Si aggiunge un cubo ad una scena vuota. Si entra in Modo Edit. 2. Ci si assicura che tutti i vertici siano de-selezionati (viola). Si usa la Selezione Delimitata (BKEY) per selezionare i quattro vertici in alto. 3. Si controlla che il centro per il dimensionamento NON sia impostato sul cursore 3D (vedi la Figura 5-1), quindi si cambia in modo dimensionamento (SKEY), si riduce la dimensione e si conferma con LMB. 4. Si esce dal Modo Edit premendo TAB. Figura 6-4. Il tronco di piramide

Una caratteristica Extra per il Modo Edit è lo strumento di Specularizzazione. Se si hanno dei vertici selezionati e si preme MKEY apparirà un Menù con nove voci. Da queste si può scegliere di ribaltare i vertici selezionati rispetto a ciascuno degli assi X, Y o Z del riferimento Globale, Locale o Visivo. Un'ulteriore caratteristica del Modo Edit è la Selezione Circolare. Questa viene richiamato premendo BKEY due volte anziché una sola, come nella Selezione Delimitata [BorderSelect]. Viene disegnato un cerchio grigio attorno al cursore e qualunque click di LMB seleziona tutti i vertici all'interno. NUM+ e NUM- o MW (la rotellina), se c'è, allargano o restringono il cerchio. Tutte le operazioni in Modo Edit vengono eseguite, alla fin fine, su tutti i vertici; i lati connessi e le facce vengono automaticamente adattate, dato che dipendono dalle posizioni dei vertici. Per selezionare un lato, bisogna selezionare i due punti estremi oppure posizionare il mouse sul lato e premere CTRL-ALT-RMB. Per selezionare una faccia, se ne deve selezionare ogni angolo. Le operazioni in Modo Edit sono molte, e la maggior parte sono riassunte nella Pulsantiera del Contesto di Editing, cui si accede tramite il relativo pulsante ( 1:

) nell'header o con F9 (Figura 6-5). Da notare il gruppo dei pulsanti nel Pannello Mesh Tools

Figura 6-5. Il Contesto di Edit.

• NSize:

- Determina la lunghezza, in Unità Blender, delle normali alle facce, se sono disegnate. - Attiva/disattiva il disegno delle Normali. Se questo è ON, le normali delle facce vengono disegnate come

• Draw Normals

segmenti azzurri. - Se questo è ON, le facce vengono disegnate in blu e semi trasparenti, o semi trasparenti viola se sono selezionate. Se questo è OFF, le facce sono invisibili.

• Draw Faces

- I lati vengono sempre disegnati in nero, ma se questo pulsante è ON i lati selezionati vengono disegnati in giallo. Se un Lato unisce un nodo selezionato ed uno no, si ha che il Lato viene disegnato con un colore graduale dal giallo al nero.

• Draw Edges

- In Modo Oggetto vengono mostrati solo i lati strettamente necessari a mostrare la forma di un oggetto. Con questo pulsante si può forzare Blender a disegnare tutti i lati.

• All Edges

Nota: Ovviamente tutti questi colori sono personalizzabili nel Theme editor.

In Modo Edit si può richiamare il menù "Specials" Con WKEY (Figura 6-6). Con questo menù si può accedere rapidamente alle funzioni usate più frequentemente nella modellazione di poligoni. Suggerimento: Le voci del Menù Pop-up possono essere selezionate usando il corrispondente numero chiave. Per esempio, premendo WKEY e poi 1KEY si suddivideranno i lati selezionati senza toccare affatto il mouse.

Figura 6-6. Il Menù Specials

- Ciascun lato selezionato è diviso in due, vengono creati dei nuovi vertici a metà dei punti e, se necessario, anche le facce vengono divise.

• Subdivide

• Subdivide Fractal • Subdivide Smooth

- Come sopra, ma i nuovi vertici sono disposti casualmente all'interno di una gamma decisa dall'utente.

- Come sopra, ma i vertici nuovi sono disposti verso il baricentro (il centro di massa) dei vertici

connessi. • Merge

- Unisce i vertici selezionati in uno solo, nella posizione del baricentro o in quella del cursore.

• Remove Doubles

- Unisce tutti i vertici selezionati la cui distanza relativa sia inferiore ad una soglia (per default è 0.001).

• Hide

- Nasconde i vertici selezionati.

• Reveal

- Mostra i vertici nascosti.

• Select Swap

- Tutti i vertici selezionati si de-selezionano e viceversa.

• Flip Normals

- Cambia le direzioni delle Normali nelle facce selezionate.

• Smooth

- Rende più liscia una mesh spostando ciascun vertice verso il baricentro dei vertici collegati.

• Mirror

- Lo stesso di MKEY descritto sopra.

Molte di queste azioni hanno un proprio pulsante nel Pannello Mesh Tools della Pulsantiera di Edit (Figura 6-5). Qui si può regolare anche la soglia per il Remove doubles.

Ripristino (Undo) della Mesh Con Blender 2.3 abbiamo finalmente un vero Undo. Esso funziona solo per le Mesh e solo in Modo Edit. L'undo della mesh lavora in background salvando copie delle mesh in memoria man mano che si modificano. Premendo UKEY con la mesh in Modo Edit si ripristina la mesh precedentemente salvata, risalendo all'ultima operazione di modifica (Figura 6-7). Le operazioni di undo vengono immagazzinate per una sola mesh per volta. Si può uscire e rientrare dal Modo Edit per la stessa mesh senza perdere alcuna informazione per il ripristino, ma appena si modifica un'altra mesh, le informazioni di ripristino della prima sono perse. Figura 6-7. Undo (Ripristina) e Redo (Ripeti)

Premendo SHIFT-U si ripristina l'ultima operazione di undo (Figura 6-7). La pressione di ALT-U richiama il Menù di Undo (Figura 6-8). Questo elenca tutti i passi di undo per nome in modo che si possa rapidamente trovare il modo di tornare in un punto noto del lavoro. Il menù ALT-U contiene anche la voce All Changes . Tale opzione è più potente della semplice pressione ripetuta di UKEY, e ricaricherà i dati della mesh com'era all'inizio della sessione di modifica, anche se si sono utilizzati tutti i passi di undo. Figura 6-8. Il Menù Undo

Il ripristino [undo] dell'Edit può richiedere molta memoria. Una mesh con 64.000 facce e vertici può usare fino a 3Mb di RAM

per ciascun passo di undo. Se si è su una macchina a corto di RAM, nella Finestra delle Preferenze dell'utente [User Preference Window], sotto Edit Methods, c'è un pulsante numerico per determinare il massimo numero di passi salvati ripristinabili. La gamma consentita va da 1 a 64. Il default è 32.

Levigare le superfici [Smoothing] A partire da Blender v2.31 Come visto nelle sezioni precedenti, i poligoni sono centrali in Blender. La maggior parte degli oggetti in Blender sono rappresentati da poligoni e gli oggetti realmente curvi sono spesso approssimati da mesh di poligoni. Effettuando il rendering delle immagini, si nota che questi oggetti appaiono con una serie di piccole facce piane. (Figura 6-9). Talvolta è un effetto voluto, ma di solito si vogliono oggetti più lisci e gradevoli. Questa sezione mostra come levigare un oggetto e come applicare il filtro AutoSmooth per unire facilmente e rapidamente poligoni lisci e sfaccettati nello stesso oggetto. Figura 6-9. La prova di un semplice oggetto non levigato.

Ci sono due modi per attivare le funzioni di levigatura delle facce in Blender. Il modo più semplice consiste nell'impostare tutto l'oggetto come levigato o sfaccettato selezionando un oggetto mesh, in Modo Oggetto, spostandosi nel Contesto di Editing (F9), e cliccando sul pulsante Set Smooth nel Pannello Link and Materials (Figura 6-10). Il pulsante non resta premuto, ma costringe Blender ad assegnare l'attributo "smoothing" [levigato] a ciascuna faccia nella mesh. Ora, effettuando un rendering con F12 dovrebbe prodursi l'immagine mostrata in Figura 6-11. Si noti che il contorno dell'oggetto resta fortemente sfaccettato. Attivando la funzione di levigazione non si modifica, in realtà, la geometria dell'oggetto; mentre cambia il modo con cui è calcolata l'ombreggiatura tra le superfici, dando l'illusione di una superficie più liscia. Click sul pulsante Set Solid nello stesso Pannello per ripristinare l'ombreggiatura come mostrato in Figura 6-9. Figura 6-10. I pulsanti Set Smooth e Set Solid nella finestra dei Pulsanti di Edit.

Figura 6-11. Lo stesso oggetto precedente, ma completamente levigato da 'Set Smooth'.

Un metodo alternativo per indicare le facce che debbano essere levigate consiste nell'entrare in Modo Edit per l'oggetto con TAB, selezionando le facce e cliccando sul pulsante Set Smooth (Figura 6-12). Quando la mesh è in Modo Edit, solo le facce selezionate ricevono l'attributo "smoothing". Si possono impostare delle facce come non levigate (rimuovendo l'attributo "smoothing") nello stesso modo: selezionando le facce e cliccando sul pulsante Set Solid. Figura 6-12. L'oggetto in Modo Edit con delle facce selezionate.

Può essere difficile creare delle combinazioni di facce levigate e grezze usando solo le tecniche descritte sopra. Benché esistano delle scorciatoie (come raggruppare un insieme di facce selezionandole e premendo YKEY), c'è un modo più facile per combinare facce levigate e grezze, usando AutoSmooth. Si preme il pulsante AutoSmooth nel Pannello Mesh della Pulsantiera di Edit (Figura 6-13) per chiedere a Blender di decidere quali facce debbano essere levigate e quali no, in base all'angolo tra le facce (Figura 6-14). Gli angoli, sul modello, più affilati (acuti) dell'angolo indicato nel Pulsante Numerico Degr non saranno levigati. Valori alti produrranno più facce levigate, mentre le impostazioni più basse appariranno identiche alla mesh originale. Solo le facce impostate come levigate saranno prese in esame dalla funzione AutoSmooth. Una mesh, o qualsiasi faccia impostata come non levigata, non cambierà la propria ombreggiatura all'attivazione dell'AutoSmooth. Questo dà un ulteriore controllo sulle facce da levigare e non dovranno sottostare alla decisione dell'algoritmo di AutoSmooth. Figura 6-13. Il gruppo di pulsanti AutoSmooth nella Pulsantiera di Edit.

Figura 6-14. Lo stesso oggetto di prova con AutoSmooth abilitato.

Estrusione A partire da Blender v2.31 Uno strumento di capitale importanza per lavorare con le Mesh è il comando "Estrudi" (EKEY). Questo comando permette di creare cubi da rettangoli e cilindri da cerchi, così come risulta facilissimo creare cose come i rami di un albero. Benché il processo sia molto intuitivo, i principi che stanno dietro l'Estrusione sono abbastanza elaborati come si evidenzierà in seguito. • Prima di tutto, l'algoritmo determina il perimetro chiuso esterno dell'Estrusione, vale a dire quali, tra i lati selezionati, saranno trasformati in facce. Per default, l'algoritmo considera i lati appartenenti a due o più facce selezionate come interni, e quindi non facenti parte del perimetro chiuso. • I lati appartenenti al perimetro chiuso sono tramutati in facce. • Se i lati nel perimetro chiuso appartengono solo ad una faccia nella mesh completa, allora tutte le facce selezionate vengono duplicate e collegate alle facce appena create. Per esempio, in questa fase i rettangoli diventeranno parallelepipedi. • In altri casi, le facce selezionate sono collegate a quelle appena create ma non sono duplicate. Questo per evitare la creazione di facce indesiderate ritenute 'interne' alla mesh risultante. Questa distinzione è estremamente importante dato che assicura la costruzione di volumi chiusi coerenti tutte le volte che si Estrude. • I lati che non riguardano le facce selezionate, che formano quindi un perimetro chiuso 'aperto', vengono duplicate e viene creata una nuova faccia tra il nuovo lato e l'originale. • I singoli vertici selezionati che non appartengono ai lati selezionati, sono duplicati e, tra i due, viene creato un nuovo lato. Appena completato l'algoritmo d'Estrusione, si entra automaticamente in modo Traslazione [Grab], quindi le facce, lati e vertici appena create possono essere spostate col mouse. L'Estrusione è uno degli strumenti utilizzati più frequentemente in Blender. Esso è semplice, facile da usare, utilissimo. La seguente breve lezione descrive come costruire una spada con l'estrusione.

La Lama 1. Si avvii Blender e si cancelli il piano di default. Nella vista dall'alto, si aggiunga una mesh circle con otto vertici. Si spostino i vertici secondo la disposizione mostrata in Figura 6-15. Figura 6-15. Il cerchio deformato, diventa la sezione trasversale della lama.

2. Si selezionino tutti i vertici e li si ridimensioni con SKEY in modo da ridurre la forma in due unità di griglia. Si cambi in vista frontale con NUM1. 3. La forma creata è la base della lama. Usando l'estrusione creeremo la lama con pochi semplici passi. Con tutti i vertici selezionati si prema EKEY, o il pulsante Extrude nel Pannello Mesh Tools del Contesto di Editing (F9 - Figura 6-16). Apparirà una richiesta: Ok? Extrude (Figura 6-17). Click su questo testo o si prema ENTER per confermare, altrimenti si sposti il cursore esternamente, o si prema ESC, per uscire. Se ora si sposta il mouse si vedrà che Blender ha duplicato i vertici, li ha connessi agli originali con i lati e le facce, ed è entrato in modo traslazione. Figura 6-16. Il pulsante di Estrusione nel contesto dei Pulsanti di Edit.

Figura 6-17. La finestra di conferma dell'Estrusione.

4. Si spostino i nuovi vertici in alto di 30 unità, vincolando il movimento con CTRL, quindi click su LMB per confermare la loro nuova posizione, ed un leggero ridimensionamento con SKEY (Figura 6-18). Figura 6-18. La Lama

5. Si prema ancora EKEY per estrudere la punta della lama quindi si spostino i vertici in alto di cinque unità. Per far sì che la

lama termini in un vertice, si ridimensionino i vertici della punta fino a 0.000 (mantenendo CTRL per questo) e si prema WKEY>Remove Doubles (Figura 6-19) o sul pulsante Rem Doubles nella Pulsantiera di Edit (F9). Blender informerà che ha rimosso sette degli otto vertici e ne resta solo uno. La lama è completa! (Figura 6-20) Figura 6-19. Il Menù Edit della Mesh.

Figura 6-20. La lama completata.

L'impugnatura 6. Si lasci il Modo Edit e si sposti la lama su un lato. Si aggiunga una sfera UV con 16 segmenti ed altrettanti anelli e si deselezionino tutti i vertici con AKEY. 7. Si selezionino i tre anelli superiori con la Selezione Delimitata [Borderselect] BKEY e si cancellino con XKEY>>Vertices (Figura 6-21). Figura 6-21. La sfera UV per l'impugnatura: i vertici da rimuovere.

Figura 6-22. La prima estrusione per l'impugnatura.

8. Si selezionino i vertici dell'anello superiore e si estrudano. Si sposti l'anello in alto di quattro unità e si ingrandisca un po' (Figura 6-22), quindi si estruda e ci si sposti di quattro unità ancora due volte e si riduce un po' l'ultimo anello (Figura 6-23). 9. Si lasci il Modo Edit e si ridimensioni l'intera impugnatura in modo che sia proporzionata alla lama, ponendola poi sotto la lama stessa. Figura 6-23. L'impugnatura completa.

L'Elsa Per adesso si dovrebbe saper usare la sequenza 'estrusione>spostamento>ridimensionamento', quindi si provi a modellare un'elsa fatta bene. Si inizi con un cubo e si estrudano i diversi lati un paio di volte, ridimensionandoli quando è necessario. Si dovrebbe essere in grado di avere qualcosa simile a quello mostrato in Figura 6-24. Figura 6-24. L'elsa completa.

Dopo l'applicazione delle textures la spada appare come nella Figura 6-25.

Figura 6-25. La spada finita, con le textures ed i materiali.

Come si può vedere, l'estrusione è uno strumento molto potente che consente di modellare molto rapidamente oggetti relativamente complessi (l'intera spada è stata creata in meno di mezz'ora!). Acquisendo dimestichezza con estrusione>spostamento>ridimensionamento ci si renderà la vita, come modellatori Blender, molto più semplice.

Spin e SpinDup A partire da Blender v2.31 Spin (estrusione circolare) e Spin dup (roto-duplicazione) sono altri due potentissimi strumenti di modellazione che consentono di creare facilmente corpi di rotazione o strutture assialmente periodiche.

Spin: Estrusione circolare Lo strumento Spin in Blender si usa per creare quel tipo di oggetti che si possono produrre su un tornio. (Per questa ragione, in letteratura, a questo strumento ci si riferisce spesso come strumento-"tornio [lathe]" o "sweep"). Prima si crea una mesh che rappresenti il profilo del proprio oggetto. Se si sta modellando un oggetto cavo, è buona norma ispessire il profilo. La Figura 6-26 mostra il profilo di un bicchiere da vino che modelleremo per una dimostrazione. Figura 6-26. Il profilo del bicchiere.

In Modo Edit e con tutti i vertici selezionati, si acceda al Contesto di Editing (F9). Il pulsante Degr nel Pannello Mesh Tools indica il numero di gradi di rotazione dell'oggetto (in questo caso si vuole una rotazione completa di 360°). Il pulsante Steps indica quanti profili ci debbano essere in tale rotazione (Figura 6-27).

Figura 6-27. I Pulsanti dello Spin.

Come per la Roto-Duplicazione [SpinDup] (discussa nella prossima sezione), gli effetti dello Spin dipendono dalla posizione del cursore e da quale finestra (vista) sia attiva. Ruoteremo l'oggetto attorno al cursore nella vista dall'alto. Ci si sposti nella vista dall'alto con NUM7. 1. Si pone il cursore lungo il centro del profilo selezionando semplicemente uno dei vertici lungo il centro ed accostando il cursore in tale posizione con SHIFT-S>>Curs->Sel. La Figura 6-28 mostra il profilo del bicchiere da vino dalla vista dall'alto, col cursore correttamente posizionato. Figura 6-28. Il profilo del bicchiere, visto dall'alto in Modo Edit, appena prima della rotazione.

Prima di continuare, si annoti il numero di vertici nel profilo. Questa informazione può essere reperita nella barra informativa nella parte superiore dell'interfaccia di Blender (Figura 6-29). Figura 6-29. Dati della mesh: Il numero dei vertici e delle facce.

2. Click sul pulsante "Spin". Se si ha più di una finestra aperta, il cursore si trasformerà in una freccia con un punto interrogativo e si dovrà cliccare nella finestra contenente la vista dall'alto, prima di continuare. Se si ha una sola finestra aperta, la rotazione avverrà immediatamente. La Figura 6-30 mostra il risultato dell'avvenuta rotazione.

Figura 6-30. Il profilo ribaltato.

3. L'operazione di rotazione lascia dei vertici duplicati vicino al profilo. Si possono selezionare tutti i vertici della cucitura con la Selezione Delimitata (BKEY) (Figura 6-31) ed eseguire l'operazione di rimozione dei duplicati (Remove Doubles). Figura 6-31. Selezione dei vertici della cucitura.

Si noti il conteggio dei vertici prima e dopo l'operazione di rimozione dei duplicati (Figura 6-32). Se tutto è andato bene, il totale dei vertici finali (38 in questo esempio) dovrebbe coincidere col numero della Figura 6-29. Altrimenti qualche vertice si sarà perso e lo si dovrà saldare manualmente. Oppure, peggio, sono stati uniti troppi vertici. Figura 6-32. Il numero dei vertici dopo la rimozione dei duplicati.

Fondere due vertici in uno: Per riunire (saldare) assieme due vertici, si selezionano entrambi mantenendo SHIFT premuto e cliccando su con RMB su di essi. Si preme SKEY per avviare il ridimensionamento e, premendo CONTROL mentre si scalano i punti fino a 0 unità negli assi X,Y e Z. LMB per completare l'operazione di dimensionamento e click sul pulsante Remove Doubles nella Pulsantiera di Edit. In alternativa, si può premere WKEY e si seleziona Merge dal Menù che appare (Figura 6-33). Quindi, in un nuovo menù, si scegliere se il nodo unito dovrà stare al centro dei nodi selezionati o nel cursore. Nel nostro caso è meglio la prima opzione.

Figura 6-33. Il menù Merge.

Tutto ciò che resta ora è ricalcolare le normali selezionando tutti i vertici e premendo CTRL-N>>Recalc Normals Outside. A questo punto si può uscire dall'EditMode ed applicare i materiali e la levigazione [smoothing], impostare qualche luce, una telecamera ed effettuare un rendering. La Figura 6-34 mostra il bicchiere da vino finito. Figura 6-34. Il rendering finale dei bicchieri.

SpinDup: Roto-Duplicazione Lo strumento Spin Dup è un modo magnifico per fare rapidamente una serie di copie di un oggetto lungo una circonferenza. Per esempio, se è stato modellato un orologio, e si vogliono aggiungere i segni delle ore. Figura 6-35. La tacca dell'ora indicata dalla freccia.

Si modella solo una tacca, nella posizione delle 12:00 (Figura 6-35). Si seleziona la tacca e si va nel Contesto di Editing con F9. Si impostano il numero di gradi nel Pulsante numerico Degr: nel Pannello Mesh Tools a 360. Volendo 12 copie dell'oggetto si immette 12 in Steps (Figura 6-36).

Figura 6-36. I pulsanti dello Spin Dup.

• Si cambi la vista in quella in cui si vuol ruotare l'oggetto usando la tastiera numerica. Si noti che il risultato del comando Spin Dup dipende dalla vista usata quando si preme il pulsante. • Si posiziona il cursore al centro della rotazione. L'oggetto sarà ruotato attorno a questo punto. • Si seleziona l'oggetto da duplicare e si entra in Modo Edit con TAB. • In EditMode, si selezionano i vertici che si vogliono duplicare (si noti che si possono selezionare tutti i vertici con AKEY o tutti i vertici collegati al punto sotto il cursore con LKEY). Si veda la Figura 6-37. Posizionamento del cursore: Per piazzare il cursore nella locazione esatta di un oggetto esistente o di un vertice, si seleziona l'oggetto o il vertice e si preme SHIFT-S>>CURS>>SEL.

Figura 6-37. La Mesh selezionata e pronta per lo SpinDup.

• Si preme il pulsante "Spin Dup". Se si ha più di una finestra 3D aperta, il cursore si trasformerà in una freccia con un punto interrogativo e si dovrà cliccare nella finestra in cui si vorrà effettuare la rotazione. In questo caso, si vuol usare la finestra della vista frontale (Figura 6-38). Se la vista voluta non è visibile, si può eliminare la freccia/punto interrogativo con ESC finché non si cambi una finestra nella vista appropriata col tastierino numerico.

Figura 6-38. Selezione della vista per lo Spin Dup.

Quando si ruota duplicando [SpinDup] un oggetto per 360 gradi, viene posto un oggetto duplicato nella stessa posizione del primo oggetto, producendo una duplicazione. Si noterà che dopo aver premuto il pulsante Spin Dup, resta selezionata la geometria originale. Per cancellarla, si preme semplicemente XKEY>>Vertices. L'oggetto sorgente viene cancellato, ma resta la versione duplicata sotto di esso (Figura 6-39). Figura 6-39. La rimozione dell'oggetto duplicato.

Evitare duplicati: Se non dispiace un po' di matematica dispiaceranno i duplicati giacché si possono evitare sin dall'inizio. Ci sono da fare solo 11 duplicati, non 12, e non un giro completo di 360°, ma solo 330° (ovvero 360*11/12). In questo modo non ci sarà alcun duplicato sull'oggetto originale. In generale, per fare n duplicati su 360 gradi senza sovrapposizione, si deve duplicare un oggetto in meno su 360*(n-1)/n gradi.

La Figura 6-40 mostra il rendering finale dell'orologio.

Figura 6-40. Il rendering finale dell'orologio.

Avvitamento [Screw] A partire da Blender v2.31 Questo strumento combina uno "Spin" ricorsivo con una traslazione, per generare un oggetto a vite o elicoidale. Questo strumento si usa per creare eliche, molle, o strutture a forma di conchiglia. Figura 6-41. Come fare una molla: prima (a sinistra) e dopo (a destra) dello strumento Screw.

Il metodo per usare la funzione "Screw" è rigido: • Si imposta la Finestra 3D in vista frontale (NUM1). • Si pone il cursore 3D nella posizione attraverso cui deve passare l'asse di rotazione. Tale asse sarà verticale. • Ci si assicura che sia sempre disponibile una poli-linea aperta. Questa può essere un singolo lato, come mostrato nella figura, o un semicerchio, o qualsiasi cosa. Bisogna solo assicurarsi che ci siano due estremità 'libere'; due vertici lungo uno stesso lato collegati quindi ad un altro vertice. La funzione "Screw" localizza questi due punti e li usa per calcolare il vettore di traslazione da aggiungere allo "Spin" per ogni rotazione completa (Figura 6-41). La presenza di due vertici nella stessa posizione, crea uno "Spin" normale; altrimenti appaiono cose interessanti! • Si selezionano tutti i vertici che dovranno partecipare alla Roto-traslazione (Avvitamento o Screw). • Si assegnano ai Pulsanti Numerici Steps: e Turns: nel Pannello Mesh Tools i valori desiderati. Steps: determina quanti profili saranno ripetuti in 360° di rotazione, mentre Turns: imposta il numero di rotazioni complete da 360° da compiere. • Si preme Screw! Se ci sono più Finestre 3D, il cursore del mouse si trasforma in un punto interrogativo. Click sulla Finestra 3D in cui si deve eseguire lo "Screw". Se le due estremità "libere" sono allineate verticalmente il risultato è simile a quello visto sopra. Altrimenti, il vettore di traslazione resta verticale, pari alla componente verticale del vettore che unisce i due vertici 'liberi', mentre la componente orizzontale genera un allargamento (o restringimento) [del passo] dell'avvitamento come mostrato in Figura 6-42.

Figura 6-42. Avvitamento allargato (a destra) ottenuto col profilo di sinistra.

Warp: Strumento per la Curvatura A partire da Blender v2.31 Il Warp (Curvatura) è uno strumento di Blender poco conosciuto, in parte perché non si trova nella finestra del Pulsanti di Edit, ed in parte perché è utile solo in casi particolari. Ad ogni modo, non è qualcosa di cui l'utente medio di Blender necessita quotidianamente. Un testo avvolto a semicerchio è utile nella creazione di loghi volanti, ma sarebbe difficile da modellarlo senza usare lo strumento Warp. Per il nostro esempio, curveremo la frase "Amazingly Warped Text" attorno ad una sfera. 1. Si aggiunge prima la sfera. 2. Quindi si aggiunge il testo nella vista frontale, nel Contesto di Editing e nel pannello Curve and Surface si imposta Ext1 a 0.1 - rendendo il testo 3D, e Ext2 a 0.01, per aggiungere una bella smussatura ai bordi. Si renda il BevResol 1 o 2 per avere una smussatura levigata ed una risoluzione più bassa in modo che il numero dei vertici non sia troppo alto nella successiva suddivisione dell'oggetto (Figura 6-43 - e si veda la sezione Il Testo nel Capitolo 9). Si converte l'oggetto in curva, quindi in una mesh, (due volte ALT-C) giacché lo strumento di curvatura non funziona su testo né su curve. Si suddivide due volte la mesh, in modo che la geometria possa cambiare gradualmente, senza grinze. Figura 6-43. Le impostazioni del Testo.

Si cambia nella vista dall'alto e si sposta la mesh lontano dal cursore 3D. Tale distanza definisce il raggio della curvatura (Si veda la Figura 6-44).

Figura 6-44. Vista dall'alto del testo e della sfera.

Si pone la mesh in Modo Edit (TAB) e si preme AKEY per selezionare tutti i vertici. Si preme SHIFT-W per attivare lo strumento di curvatura. Si sposta il mouse in alto o in basso per definire interattivamente l'ammontare della curvatura (Figura 6-45). Tenendo premuto CTRL si fa in modo da modificare la curvatura a passi di cinque gradi. Figura 6-45. Il testo curvato.

Ora si può cambiare nella vista telecamera, aggiungere i materiali, le luci ed effettuare il rendering (Figura 6-46). Figura 6-46. Il rendering finale.

Capitolo 7. Modellazione Avanzata della Mesh Blender fornisce diverse funzionalità avanzate per la Modellazione della Mesh, per lo più rivolte alla facile gestione di mesh complesse o piuttosto consentire una modellazione economica, e con un basso numero di vertici di complesse superfici curve.

Suddivisione di Superfici col metodo Catmull-Clark (-) A partire da Blender v2.31 MISSING SIMPLE SUBSURF and CREASES (so let's wait 2.234 to update) Con qualsiasi Mesh normale come punto di partenza, Blender può calcolare al volo una suddivisione morbida, mentre si modella o durante il rendering, tramite la Suddivisione delle Superfici di Catmull-Clark o, in breve SubSurf. Il SubSurf è un algoritmo matematico per calcolare una suddivisione "levigata" di una mesh. Questo consente un'alta risoluzione della Mesh nella modellazione, senza dover mantenere e salvare una gran quantità di dati. Permette di avere un aspetto 'organico' liscio per i modelli. In realtà una Mesh con SubSurf e le superfici NURBS hanno molti punti in comune in quanto entrambi dipendono da una mesh primitiva con pochi poligoni per definire una superficie levigata "ad alta risoluzione". Ma ci sono anche notevoli differenze: •

Le NURBS consentono un controllo più preciso della superficie, poiché è possibile impostare i "pesi" su ciascun punto di controllo della mesh. Sulla mesh con il SubSurf non si può agire sui pesi.



Con il SubSurf si ha un miglior approccio per la modellazione. Dato che una SubSurf è un'operazione matematica applicata ad una mesh, si possono usare tutte le tecniche di modellazione descritte in questo capitolo sulla mesh. Ci sono molte tecniche, che sono molto più flessibili, di quelle disponibili per il controllo dei poligoni delle NURBS.

SubSurf è un'opzione della Mesh, attivata nel Contesto di editing del Pannello Mesh (F9 - Figura 7-1). I pulsanti numerici immediatamente successivi, definiscono, sulla sinistra, la risoluzione (o il livello) di suddivisione da usarsi nella visualizzazione 3D; quello sulla destra la risoluzione da usarsi nel rendering. Se si è in Modo Oggetto si può usare anche SHIFT-O. Questo commuta SubSurf tra On e Off. Il livello di SubSurf viene controllato anche da CTRL-1 a CTRL-4, ma questo riguarda solo il livello di suddivisione nella visualizzazione. Dato che il calcolo della SubSurf viene eseguito sia in tempo reale, mentre si modella, che nel momento del rendering, e richiede molta CPU, è buona norma tenere basso il livello di SubSurf (ma non zero) mentre si modella; più alto durante il rendering. Figura 7-1. I pulsanti del SubSurf.

Dalla versione 2.3 Blender ha un nuovo pulsante relativo al SubSurf: Optimal. Questo cambia il modo in cui vengono disegnate le SubSurf della mesh e può essere di grande aiuto nella modellazione. La Figura 7-2 mostra una serie di disegni rappresentanti

96

Capitolo 7. Modellazione Avanzata della Mesh diverse combinazioni sulla Mesh di Suzanne. Figura 7-2. Suzanne con la suddivisione della superficie.

La Figura 7-3 mostra i livelli 0,1,2 e 3 di SubSurf su una sola faccia quadrata e su una singola faccia triangolare. Questa suddivisione è eseguita, su una mesh generica, per ciascuna faccia quadrata o triangolare. È evidente come ciascuna singola faccia quadrangolare produce 4^n facce nella mesh col SubSurf. n è il livello di SubSurf, o risoluzione, mentre ciascuna faccia triangolare produce 3*4^(n-1) nuove facce (Figura 7-3). Da questo enorme aumento di facce (e vertici) ne deriva un rallentamento di tutte le azioni di modifica, e di rendering, ed evidenzia la necessità di abbassare il livello di SubSurf nel processo di modifica e nel rendering.

97

Figura 7-3. Suddivisione di semplici facce quadrate e triangolari.

Il sistema di suddivisione di Blender è basato sull'algoritmo di Catmull-Clark. Questo produce delle belle mesh levigate ma ogni faccia col 'SubSurf', ovvero, ogni piccola faccia creata dall'algoritmo a partire da una sola faccia iniziale della mesh originale, condivide l'orientamento della normale della faccia originale. Questo non è un problema per la forma stessa, come mostra la Figura 7-4, ma è un problema nella fase di rendering, ed in rappresentazione solida, dove i bruschi cambiamenti della normale producono delle brutte linee nere (Figura 7-5). Figura 7-4. Vista laterale di mesh sub-suddivise. Con normali casuali (in alto) e con normali coerenti (in basso).

Per consentire a Blender di ricalcolare le normali si usa il comando CTRL-N, in Modo Edit, con tutti i vertici selezionati.

98

Capitolo 7. Modellazione Avanzata della Mesh Figura 7-5. Vista solida di mesh sub-suddivise con normali coerenti (in alto) e normali incoerenti (in basso).

In queste immagini le normali alla faccia sono disegnate in azzurro. Il disegno delle normali si abilita nel menù dei Pulsanti di Edit (F9). Si noti che Blender non può ricalcolare correttamente le normali se la mesh non è "Manifold". Una mesh "Non Manifold" è una mesh per cui non è possibile calcolarne univocamente il 'fuori'. Fondamentalmente, dal punto di vista di Blender, è una mesh dove ci sono lati comuni a più di due facce. La Figura 7-6 mostra un esempio molto semplice di una mesh "Non Manifold". In generale una mesh "Non Manifold" si ha quando esistono delle facce interne. Figura 7-6. Una mesh "Non Manifold".

Una mesh "Non-Manifold" non costituisce un problema per le mesh convenzionali, ma può provocare qualche brutta grinza nelle mesh con SubSurf. Inoltre, non consente la decimazione, quindi è meglio evitarle il più possibile. Si usano queste due regole per dire se una mesh è "Non Manifold": •

Il Ricalcolo delle normali lascia delle linee nere da qualche parte



Lo strumento "Decimator" nel Pannello Mesh si rifiuta di funzionare dicendo che la mesh è "No Manifold"

Lo strumento SubSurf consente la costruzione di ottimi modelli "organici", ma si ricordi che una Mesh normale con facce quadrate, invece che triangolari, dà il risultato migliore. La Figura 7-7 e la Figura 7-8 mostrano un esempio di cosa possa essere fatto col SubSurf di Blender.

99

Figura 7-7. Un Doccione (Gargoyle) con Mesh base (a sinistra) ed una con Mesh con SubSurf a livello 2 (a destra).

Figura 7-8. Vista Piena (a sinistra) ed il rendering finale (a destra) del Doccione (Gargoyle).

Strumenti per i Lati (Edge Tools) A partire da Blender v2.33 In Blender 2.30 sono stati aggiunti degli strumenti di modellazione nuovi di zecca. Questi si concentrano sulla modellazione dei lati e delle facce, anziché a quella dei vertici. Un argomento chiave nella Modellazione è spesso la necessità di aggiungere vertici in certe zone della mesh, e questo spesso è considerata come una suddivisione, o aggiunta, di lati in una data regione. Blender ora presenta due strumenti per questo, un Taglierino [Knife] in grado di dividere un lato nella posizione desiderata ed uno strumento Anello di Facce [Face Loop], in grado di selezionare percorsi di facce e dividerle di conseguenza. Molti Edge Tools sono raggruppati in un menù che è collegato al tasto KKEY, ma ciascuno strumento ha anche lo specifico tasto

100

Capitolo 7. Modellazione Avanzata della Mesh scorciatoia.

Selezione di Facce/Bordi In Modo Edit, premendo ALT-B si attiva lo strumento di selezione del lato/faccia. Se ALT-B viene premuto una sola volta, allora Blender è in modalità di selezione del lato. Il lato sotto il cursore viene evidenziato in azzurro [ciano]. Per ciascuna estremità del lato vengono eseguite le seguenti operazioni: 1. Si controlla se è connesso con solamente altri 3 lati. 2. Se il lato in questione è già stato aggiunto alla lista, la selezione termina. 3. Dei 3 lati connessi al lato corrente, quello che condivide una faccia col lato corrente viene eliminato ed i lati restanti vengono aggiunti alla lista e diventa il lato corrente. In questo modo si evidenzia un anello [loop] di lati (Figura 7-9). Premendo LMB questo anello evidenziato viene convertito in un insieme di vertici selezionati. Ognuno dei vertici precedentemente selezionati diventa deselezionato. Se si vuole aggiungere l'anello evidenziato alla selezione corrente si usa SHIFT-LMB, mentre se si vuole sottrarre l'anello evidenziato dalla selezione corrente si usa ALT-LMB. Figura 7-9. Un Anello di Lati [Edgeloop] aperto (a sinistra) ed uno chiuso (a destra).

Se ALT-B viene premuto due volte viene evidenziato un Anello di Facce [Face Loop], anziché un Anello di Lati [Edge Loop]. Un anello di facce viene creato da due anelli di lati limitrofi ed estende solo a facce di quadrilateri, terminando quando viene incontrata una faccia triangolare (ed i due anelli di lati delimitanti si uniscono in uno solo). Si eseguono le stesse azioni del mouse degli anelli di lati (Figura 7-10). La selezione dell'anello di facce viene richiamata anche con SHIFT-R in Modo Edit. Figura 7-10. Un Anello di Facce aperto (a sinistra) e due chiusi (al centro ed a destra).

Divisione degli Anelli di Facce Lo strumento Loop (Anello) consente, eventualmente, di dividere, un anello di facce. Tale anello viene definito come descritto

101

nella sezione precedente. In Modo Edit si preme CTRL-R anziché SHIFT-R. Il lato sotto il cursore diventa acquamarina, la linea mediana del corrispondente anello di facce viene evidenziato in giallo (Figura 7-11, a sinistra). Una volta eseguita la selezione tramite LMB viene evidenziata una linea azzurra tra i due anelli di lati che definiscono l'anello di facce. Uno dei due vertici pertinenti il lato sotto il puntatore del mouse che definisce l'anello di lati [edgeloop] viene evidenziato con un grande punto magenta (Figura 7-11, al centro sinistra). Spostando il mouse l'anello di lati lato azzurro [cyan] si avvicina o si allontana dal punto magenta. Nella testata [header] della Finestra 3D Window la distanza dell'anello di lati dal punto di riferimento magenta viene data come percentuale della lunghezza del lato. Si può obbligare il lato a muoversi a passi del 10% tenendo premuto CTRL. Si può ribaltare il vertice di riferimento del lato di riferimento (il punto magenta) con FKEY (Figura 7-11, al centro destra). Cliccando con LMB viene creato l'anello di lati, tutte le facce ed i lati interni dell'anello di facce vengono divise a metà nel punto evidenziato dall'anello di lati azzurro [cyan]. (Figura 7-11, a destra). Figura 7-11. Divisione di un Anello di Facce [Faceloop].

Questo è un modo molto utile per rifinire una mesh in modo simile al SubSurface. Per default il nuovo anello di lati, azzurro [cyan], viene creato in modo che ciascun lato sia diviso in due parti che sono proporzionali all'altro ed il rapporto di proporzionalità è la percentuale data sulla testata [header] (Figura 7-12, a sinistra). Si può obbligare il nuovo anello di lati a restare ad una data distanza, fissa, dall'anello di lati da cui il vertice di riferimento appartiene disattivando il modo proporzionale con PKEY. Questo cambia anche l'anello di lati [edgeloop] evidenziato in blu (Figura 7-12, al centro). PKEY agisce come un interruttore on/off. Figura 7-12. Tagli delle facce Proporzionale e Levigato [Smooth].

Inoltre, per default, i nuovi vertici del nuovo anello di lati vengono posti esattamente sui lati pre-esistenti. Questi mantiene piatte le facce suddivise. Se si desidera un risultato più levigato [smoother] si può usare SKEY, prima di terminare il taglio, per impo-

102

Capitolo 7. Modellazione Avanzata della Mesh stare il modo smooth on/off. Se il modo smooth è attivo allora i nuovi vertici non stanno più sul lato precedente ma spostati lungo la direzione della normale al lato di una data percentuale. Appare un pop up per richiedere la percentuale dopo che si è premuto LMB per completare il taglio (Figura 7-12, a destra). Nota: Entrambi gli strumenti Face Loop vengono presentati anche nel menù KKEY.

Taglierino (Knife) Il Taglierino [Knife Tool] funziona suddividendo i lati se ne sono selezionati entrambi i vertici ed il lato viene intersecato da una linea disegnata dall'utente per 'tagliare'. Per esempio, volendo tagliare un foro solo sul davanti di una sfera, si possono selezionare solo i vertici frontali e quindi disegnare la linea col mouse. Per provare lo strumento si aggiunge una Mesh Griglia. Si entrerà in Modo Edit con tutti i vertici selezionati. Si preme SHIFT-K per attivare il Taglierino. Verrà richiesto il tipo di taglio: Exact dividerà i lati esattamente dove vengono incrociati dalla linea del taglierino, Centers divide un lato intercettato nel suo punto medio. Per questo taglio si sceglie Centers. Ora si può cliccare su LMB ed iniziare a disegnare. Se ci si sposta e si clicca LMB si disegnano dei segmenti rettilinei passanti per i vari punti cliccati; tenendo premuto LMB mentre si disegna si tracciano delle linee a mano libera. Le polilinee possono essere disegnate con un numero arbitrario di segmenti, ma le routines di intersezione rilevano solo un incrocio per ciascun lato. Incrociando ripetutamente un lato non lo taglia ulteriormente. MMB vincola il disegno ad un asse come ci si aspettava. Lo Snap alla griglia attualmente non è implementato, ma lo si potrà vedere in futuri rilasci. Una volta finito il disegno delle linee, si preme ENTER per confermare il taglio. ESC in qualsiasi momento cancella l'operazione. La Figura 7-13 mostra qualche esempio. Figura 7-13. Taglio al centro (Center) con una poli-linea (in alto); Taglio esatto (Exact) con un solo segmento (in mezzo) e taglio esatto a mano libera (in basso).

Nota: Con una mesh grande, è più veloce selezionare un numero più piccolo di vertici, questi definiscono solo i lati che si prevede di dividere in quanto il Taglierino [Knife] risparmierà tempo nel controllare i vertici selezionati che lo incrociano.

Strumenti di Smussatura A partire da Blender 2.33 Blender ha, fin dalla versione 2.32, uno strumento di Smussatura [Bevel]. Un Bevel è qualcosa che leviga un bordo netto o un angolo. Nel mondo reale molto raramente i bordi sono esattamente netti. Se si cerca veramente la precisione, nemmeno la lama di un coltello può essere considerata perfettamente affilata, e la maggior parte dei bordi sono intenzionalmente smussati per ragioni meccaniche o pratiche.

103

Lo strumento di Smussatura [Bevel] di Blender resta in forte sviluppo e l'attuale implementazione è piuttosto primitiva dato che tutti i margini di una data mesh vengono smussati. Non c'è alcun controllo sui lati che si vogliono tenere affilati, o sui bordi di superfici quasi piatte, che non necessitano affatto della smussatura. Lo strumento di Smussatura [Bevel] può essere usato in Modo Edit, e vi si può accedere tramite il menù WKEY, in cui c'è una voce Bevel (Figura 7-14, a sinistra). Una volta selezionata, appare un popup per richiedere il numero di ricorsioni della smussatura (Figura 7-14, al centro sinistra). Se esso è uno, allora ciascuna faccia viene ridotta in dimensione e ciascun bordo diventa una singola nuova faccia. Vengono create delle facce triangolari e quadrangolari secondo le necessità dei vertici. Se il numero delle Ricorsioni è maggiore di uno, allora la suddetta procedura viene ripetuta quel numero di volte, quindi per Recur: 2 ciascun bordo viene trasformato in 4 bordi, ai bordi appaiono tre nuove facce, levigando quella originale. In generale il numero di nuovi bordi è 2 elevato alla potenza di Recur. Numero dei vertici: Si ricordi che per ciascun nuovo bordo vengono creati due nuovi vertici, e qualche altro vertice viene creato nell'intersezione tra i bordi, quindi il numero dei vertici può rapidamente diventare enorme se si smussa con una ricorsione alta!

Figura 7-14. Smussatura di un cubo.

Una volta impostato il numero Recur ciascuna faccia della mesh viene evidenziata in giallo (Figura 7-14, centro destra). Spostando il puntatore del mouse, ciò che è evidenziato in giallo si restringe o si allarga, e l'attuale fattore di riduzione viene riportato nell'intestazione [header] della finestra. Premendo CTRL il restringimento avviene a passi 0.1, premendo SHIFT è possibile una regolazione fine. Premendo SPACE appare un popup, per l'immissione del valore di smussatura. LMB completa l'operazione, RMB o ESC la interrompono. Il risultato finale lo si può vedere in (Figura 7-14, a destra).

Modellazione Simmetrica A partire da Blender v2.34 Spesso si ha bisogno di modellare oggetti con qualche tipo di simmetria. Per la simmetria radiale, rotazionale e la simmetria multipla, l'approccio migliore consiste nel modellare con cura una struttura base e quindi, come ultimo passo, duplicare tale cellula con lo SpinDup o qualsiasi comando più appropriato. Per gli oggetti con simmetria bilaterale, quelli con un piano di simmetria, come la maggior parte degli animali (umani inclusi) e molte macchine, il metodo precedente implica la modellazione di una metà dell'oggetto, e quindi un duplicato speculare della prima metà per avere l'oggetto completo.

104

Capitolo 7. Modellazione Avanzata della Mesh Dato che di solito è difficile raggiungere le proporzioni corrette modellando solo una metà, è possibile duplicare la metà prima che sia completamente modellata, ed agire su una metà ed aggiornare automaticamente l'altra. Figura 7-15. Un piano.

Nella Vista Frontale si aggiunge un piano o qualsiasi cosa (Figura 7-15). Lo si consideri come un punto di partenza per una metà dell'oggetto. Si supponga la metà destra dell'oggetto, che per chi guarda in vista frontale è alla sinistra dello schermo. Il piano di simmetria è il piano yz. Si sposta la mesh, in Modo Edit, in modo che sia completamente alla sinistra del centro. Si cancellano dei nodi, e se ne aggiungono degli altri, in modo da avere la sua forma generale, come in Figura 7-16. Figura 7-16. La metà destra.

Ora si va in Modo Oggetto e, con la metà selezionata, si crea un duplicato collegato con ALT-D. Si preme ESC per uscire dal Modo traslazione [Grab] e si preme NKEY. Nel pannello di Immissione Numerica che appare, si imposta SizeX a -1 (Figura 717). Questo di fatto rende speculare il duplicato collegato rispetto al centro dell'Oggetto, da qui l'importanza di mantenere il centro sul piano di simmetria. Figura 7-17. Il duplicato collegato reso speculare.

105

L'aver duplicato l'Oggetto come duplicato collegato implica che i due oggetti condividano gli stessi dati della mesh, che è implicitamente resa speculare tramite un ridimensionamento unitario negativo lungo l'asse x, che è normale al piano di simmetria. Ora si può modificare una delle due metà. Dato che esse condividono i dati della mesh qualsiasi modifica, sia essa una estrusione, cancellazione, taglio di un anello di facce [face loop] ecc. immediatamente si rifletterà sull'altro lato (Figura 7-18). Figura 7-18. Modifica di una metà.

Modificando con cura una metà, ed usando possibilmente uno schemino come sfondo per avere delle linee guida, si possono ottenere dei risultati molto interessanti (Figura 7-19, a sinistra). Figura 7-19. Una testa. A sinistra: Modo Edit; Al centro: Modo Oggetto; A destra: l'Unione.

Come passo finale, quando la modellazione simmetrica è completa, le due metà devono essere selezionate e riunite in un singolo Oggetto (CTRL-J). Questo fa scomparire la cucitura (molto visibile in Figura 7-19, al centro). Una volta ottenuto un singolo oggetto (Figura 7-19, a destra), si possono cominciare a modellare le piccole asimmetrie che ogni essere ha. Nota: In Blender 2.33 e nelle precedenti versioni l'implementazione OpenGL crea delle normali sbagliate nei duplicati collegati resi speculari, facendo in modo che una delle due metà sia nera. A questo è stato posto rimedio nella versione 2.34 di Blender 2.34, ma le vecchie versioni possono comunque usare tale tecnica impostando la mesh ad un solo lato [single sided] mentre si usa la modellazione simmetrica.

106

Capitolo 7. Modellazione Avanzata della Mesh

Strumento di Modifica Proporzionale (PET) A partire da Blender v2.31 Lavorando con mesh fitte, diventa complicato fare aggiustamenti precisi ai vertici senza provocare dei brutti bozzi o grinze sulla superficie del modello. Quando si presentano situazioni simili, si usa lo strumento di modifica proporzionale. Esso agisce come un magnete per deformare dolcemente la superficie del modello, senza creare bozzi o grinze. Nella vista dall'alto, si aggiunga, alla scena, la mesh di un piano con SPAZIO>>Add>>Mesh>>Plane. La si suddivide un paio di volte con WKEY>>Subdivide (o cliccando sul pulsante Subdivide nel Contesto di Editing nel Pannello Mesh Tools) per avere una mesh relativamente densa (Figura 7-20). Oppure, si aggiunge una griglia direttamente tramite SPAZIO>>Add>>Mesh>>Grid, specificando il numero di vertici in ciascuna direzione. Una volta completato, si de-selezionano tutti i vertici con AKEY. Limite del numero di vertici: In Blender, fino alla 2.31, una singola mesh non poteva avere più di 65.000 vertici. Dalla 2.32 in poi le mesh possono avere 2 miliardi di vertici.

Figura 7-20. Una mesh piana densa.

Si selezioni un solo vertice della mesh cliccandovi con RMB (Figura 7-21). Figura 7-21. Una mesh piana densa con un solo vertice selezionato.

Restando in modo Edit, si attiva lo strumento di modifica proporzionale premendo OKEY o usando la voce del menù Mesh>>Proportional Editing (Figura 7-22 in alto). Figura 7-22. L'icona di Modifica Proporzionale e gli schemi.

Ci si sposti nella vista frontale (NUM 1) e si attivi lo strumento di traslazione con GKEY. Trascinando il punto verso l'alto, si noterà che anche i vertici limitrofi vengono trascinati con esso (Figura 7-23).

107

Le modifiche del profilo della curva utilizzata possono essere effettuate sia col sottomenù Mesh>>Proportional Faloff sia premendo SHIFT-O per cambiare tra le due opzioni Sharp e Smooth. Si noti che ciò non si può fare mentre si è nel mezzo di un'operazione di modifica proporzionale; bisogna prima premere ESC per cancellare l'operazione, poi cambiare la curva. Quando si è soddisfatti della disposizione del vertice, si preme LMB per confermarla. Se non si è soddisfatti, si può annullare e ripristinare la mesh a com'era prima di iniziare il trascinamento, col tasto ESC. Figura 7-23. Diversi 'Magneti' per la Modifica proporzionale.

Mentre si modifica si può aumentare o diminuire il raggio di influenza (mostrato dal cerchio punteggiato nella Figura 7-23) premendo NUM+ e NUM- rispettivamente. Cambiando il raggio, le posizioni dei punti interessati di cambieranno di conseguenza. Si può anche usare MW (la rotellina del mouse) per allargare o restringere il cerchio. Si può usare lo strumento di modifica proporzionale per ottenere dei grandi effetti con gli strumenti di ridimensionamento (SKEY) e di rotazione (RKEY), come mostrato in Figura 7-24. Figura 7-24. Un paesaggio ottenuto con la Modifica Proporzionale

Combinando queste tecniche con la pittura dei vertici si possono creare dei paesaggi fantastici. La Figura 7-25 mostra il risultato della modifica proporzionale dopo l'applicazione delle textures e delle luci.

108

Capitolo 7. Modellazione Avanzata della Mesh Figura 7-25. Il rendering finale del paesaggio.

Noise (Rumore) A partire da Blender v2.31 La funzione Noise (rumore) consente di spostare i vertici in una mesh in base al valore del grigio di una texture applicata ad essa. Questo è il modo in cui si generano dei grandi paesaggi o testo incavato in mesh. Figura 7-26. Lo strumento di suddivisione [Subdivide]

Si aggiunge un piano e lo si suddivide almeno cinque volte col menù speciale WKEY>>Subdivide (Figura 7-26). Quindi si aggiunge un materiale e gli si assegna una texture Clouds. Si regola NoiseSize: a 0.500. Si sceglie bianco come colore per il materiale e nero per quello della texture, per avere un buon contrasto per l'operazione di rumore [noise]. Figura 7-27. Il pulsante Noise nella Pulsantiera di Edit.

Ci si assicuri di essere in Modo Edit e che tutti i vertici siano selezionati, quindi ci si sposti nel Contesto di Editing F9. Si preme il pulsante Noise nel Pannello Mesh Tools (Figura 7-27) diverse volte finché appare un bel paesaggio. La Figura 7-28 mostra il piano originale, con la texture - così come appare man mano che si preme Noise. Si rimuova la texture dal paesaggio in quanto ne disturba l'aspetto. Quindi si aggiunga qualche luce, dell'acqua, si imposti la levigazione ed il SubSurf del terreno, e così via. (Figura 7-29).

109

Figura 7-28. Applicazione del processo di Noise. Dall'alto a sinistra al basso a destra: Il piano con la texture, il piano suddiviso, il pulsante "Noise" premuto 2, 4, 6 e 8 volte.

Figura 7-29. Il paesaggio generato col Noise.

Nota: Lo scostamento del Noise avviene sempre lungo la coordinata z della mesh, ovvero lungo la direzione dell'asse z del riferimento locale dell'Oggetto.

Strumento Decimatore A partire da Blender v2.33 Lo strumento di Decimatore è una funzionalità spesso trascurata che consente di ridurre il numero di vertici/facce contare di una mesh con il minimo cambiamento della forma. Ciò non è valido per le mesh che sono state create per una modellazione accurata ed economicamente, dove tutti i vertici e le facce sono necessari per definire correttamente la forma, ma se la mesh è il risultato di una modellazione complessa, con l'editing proporzionale, affinamenti successivi, forse qualche conversione da mesh SubSurfed o non-SubSurfed, allora si può ben ricadere in mesh con tanti vertici non veramente necessari. Un semplice esempio è un piano, ed un oggetto Griglia 4x4 non deformato. Entrambi i rendering sono identici, ma il piano ha 1 faccia e 4 vertici, mentre la griglia ha 9 facce e 16 vertici, quindi un sacco di vertici e facce inutili.

110

Capitolo 7. Modellazione Avanzata della Mesh Lo Strumento Decimatore (Figura 7-30) consente di eliminare queste facce non necessarie. Il suo Pulsante Numerico riporta il numero di facce della mesh selezionata in Modo Oggetto. Lo strumento di decimazione gestisce solo triangoli, quindi per la decimazione ciascuna faccia quadrangolare viene semplicemente divisa in due triangoli. Figura 7-30. I pulsanti del Decimatore.

Si consideri l'esempio usato nella sezione della Smussatura [Bevel]. Come si può notare c'è una piccola faccia triangolare su ciascun vertice del cubo che potrebbe benissimo risultare inutile (Figura 7-31, in alto a sinistra). L'intestazione [header] dice che il cubo ha 98 facce e 96 vertici. Il pulsante Decimator dice che tale cubo ha 188 facce triangolari, cioè 90 quadrandoli (che sono 180 triangoli) ed 8 triangoli. Figura 7-31. Il Decimatore in funzione.

Cambiando il numero nel Pulsante Numerico del decimatore, sia cliccando che digitando in esso, la mesh cambia immediatamente in soli triangoli. Man mano che il numero di abbassa, le facce scompaiono una dopo l'altra. Blender fa in modo che scompaiano prima le facce complanari ed i vertici allineati sui bordi. Questo per mantenere la forma della mesh. Man mano che si richiede di rimuovere sempre più facce vengono fuse facce sempre meno complanari e vertici sempre meno allineati, quindi può avvenire una sensibile modifica della forma (Figura 7-31, in alto al centro). In questo caso particolare, se se si vuole che scompaia solo la faccia triangolare di ciascun vertice del cubo si prevede che la mesh finale sia di 2x6=12 facce per ciascuna faccia del cubo, 2x3x12=72 facce per ciascun lato smussato, e 9x8=72 facce per

111

ciascun vertice smussato, in totale 156 facce. Raramente si conosce in anticipo quante facce la mesh finale può avere, di solito si deve guardare con cura la mesh nella finestra 3D per controllare che la forma resti buona. I due pulsanti sotto il Decimatore concludono o cancellano la decimazione. Una volta completata I triangoli non appaiono più (Figura 7-31, in alto a destra) ma la mesh è però fatta solo di triangoli (Figura 7-31, in basso a sinistra). Volendo si può tornare ai quadrangoli, selezionando tutti i vertici e pigiando ALT-J (Figura 7-31, in basso al centro). In questo modo si riduce il numero dei vertici a 80 e quello delle facce a 82 senza alcuna evidente perdita della forma. Potrebbe sembrare un piccolo guadagno, ma se tale cubo dovrà essere duplicato ai vertici su un sistema di particelle con 1000 particelle può valerne la pena. Figura 7-32. Paesaggio decimato, in alto: originale; al centro: leggermente decimato; in basso: molto decimato.

La Figura 7-32 mostra un paesaggio generato con un'applicazione accurata della tecnica Noise (Rumore) descritta precedentemente, su una vastissima griglia. Il alto, il risultato per la mesh originale e sotto, due diversi livelli di decimazione. All'occhio la differenza resta quasi impercettibile, ma dato che il numero dei vertici scende c'è un enorme guadagno.

112

Capitolo 8. Meta Oggetti A partire da Blender v2.31 I Meta Oggetti sono composti da elementi sferici, tubolari o cuboidali che possono influenzare ciascun'altra forma. Si possono creare forme arrotondate e fluide 'gocce di mercurio' o 'argillose' che esistono proceduralmente, che sono calcolate dinamicamente. I Meta Oggetti si usano per effetti speciali o come base per la modellazione. I Meta Oggetti sono chiamati anche superfici implicite, indicando nuovamente che non sono definite esplicitamente da vertici (come lo sono le mesh) o da punti di controllo (come lo sono le superfici). I Meta Oggetti sono definiti da una struttura direttiva che può essere vista come la sorgente di un campo statico. Il campo può essere sia positivo che negativo e quindi il campo generato dalle strutture direttive limitrofe possono attrarre o respingere. La superficie implicita viene definita come la superficie dove il campo 3D generato da tutte le strutture direttive assume un dato valore. Per esempio una Meta Ball, la cui struttura direttiva è un punto, genera un campo isotropico attorno ad esso e le superfici ad un valore costante del campo sono sfere centrate sul punto direttivo. Due Meta balls vicine, interagiscono e, se sono abbastanza vicine, le due superfici implicite si fondono in una sola superficie (Figura 8-1). Figura 8-1. Due Metaballs.

Infatti, i Meta Oggetti non sono altro che formule matematiche che eseguono operazioni logiche l'una sull'altra (AND, OR), e che possono essere aggiunte o sottratte da ciascun'altra. Tale metodo è chiamato anche CSG, Constructive Solid Geometry (Geometria Solida Costruttiva). Data la sua natura matematica, la CSG usa poca memoria, ma richiede molta CPU per calcolare. Per ottimizzare ciò le superfici implicite sono poligonizzate. Tutta l'area della CSG è divisa in una griglia 3D, e viene effettuato un calcolo per ciascun lato della griglia, e se (soprattutto dove) la formula ha un certo risultato, viene creato un 'vertice' per la poligonizzazione. Per creare un Meta Oggetto si preme SPAZIO e si seleziona Add>>MBall . Si può selezionare la forma base: Ball (sfera), Tube (cilindro), Plane (piano), Ellipsoid (ellissoide) e Cube (cubo). Le MetaBalls hanno un punto come struttura direttiva, i MetaTubes hanno un segmento come struttura direttiva, i MetaPlanes un piano, ed i MetaCubes un cubo. La struttura in esame diventa più evidente quanto più si abbassa il valore di Wiresize e si alza quello di Threshold nel pannello Meta Ball. Quando si è in Modo Edit, i Meta Oggetti si possono spostare e ridimensionare a piacimento. Questo è il miglior modo per costruire forme statiche - al contrario delle forme animate. I Meta Oggetti si possono anche influenzare reciprocamente ma non in Modo Edit. Fuori dal Modo Edit si ha una maggiore libertà; possono ruotare o spostare ed ereditano ogni trasformazione dell'Oggetto Genitore. Questo metodo richiede più tempo di calcolo e quindi, talvolta, è lento. Le seguenti regole descrivono la relazione tra i Meta Oggetti: • Tutti i Meta Oggetti con lo stesso nome di 'famiglia' (il nome senza il numero) si influenzano tra di loro. Per esempio "MBall", "MBall.001", "MBall.002", "MBall.135". Si noti che non si parla qui del nome del blocco ObData della MetaBall. • L'Oggetto col nome della famiglia senza un numero, determina le basi, la risoluzione e la trasformazione della poligonizzazione. Esso possiede anche il Material e l'area texture cui si farà riferimento così come col Meta Oggetto base. Solo un materiale può essere usato per impostare un Meta Oggetto. Inoltre, i Meta Oggetti salvano una texture area separata;

113

Capitolo 8. Meta Oggetti questo normalizza le coordinate dei vertici. Normalmente la texture area è identica alla boundbox di tutti i vertici. L'utente può forzare una texture area col comando TKEY (fuori dal Modo edit). Il fatto che questi Oggetti base dettino la poligonalizzazione implica che, se ci sino due Meta Oggetti e se ne sposta uno dei due si vedrà la poligonalizzazione dell'Oggetto non-base cambiare durante il moto, a prescindere da quale dei due oggetti sia attualmente in moto. Il Pannello Meta Ball nel contesto di Editing offre un paio di impostazioni. Se si è in Modo Oggetto, è presente solo questo Pannello. Si può definire la dimensione media della poligonalizzazione sia nella Viewport 3D che nel Pulsante Numerico Wiresize, e durante il rendering tramite il Pulsante Numerico Rendersize . Più si abbassano questi, più è levigato il Meta Oggetto, e più si se ne rallenta il calcolo. Il Pulsante Numerico Threshold è una importante impostazione per i Meta Oggetti. Esso controlla il 'livello del campo' al quale la superficie è calcolata. Per avere un controllo più preciso, quando si è in Modo edit, il Pulsante Numerico Stiffness del Pannello Meta Ball Tools consente di ampliare o ridurre il campo di influenza del Meta Oggetto. In quest'ultimo Pannello si può cambiare il tipo di Meta Oggetto ed impostarlo negativo (vale a dire sottrattivo, invece che additivo) con altri Meta Oggetti dello stesso insieme.

Capitolo 9. Curve e Superfici Curve e superfici sono oggetti come le mesh, ma differiscono perché sono espresse in termini di funzioni matematiche, invece che una serie di punti. Blender implementa curve e superfici di Bézier e Non Uniform Rational B-Splines (NURBS). Entrambe, anche se seguono diverse leggi matematiche, sono definite nei termini di un insieme di "vertici di controllo" che definisce un "poligono di controllo". Il modo in cui curve e superfici sono interpolate (Bézier) o attratte (NURBS) da questi possono sembrare simili, a prima vista, alla suddivisione delle superfici di Catmull-Clark. In confronto alle mesh, le curve e le superfici hanno sia vantaggi che svantaggi. In quanto le curve sono definite da meno dati, producono dei buoni risultati usando meno memoria durante la modellazione, mentre la richiesta aumenta quando si effettua il rendering. Delle tecniche di modellazione, come l'estrusione di un profilo lungo un percorso, sono possibili solo con le curve. Ma con le curve non è possibile il controllo preciso di ciascun vertice di una mesh. Ci sono occasioni in cui le curve e le superfici sono più vantaggiose delle mesh, ed occasioni dove le mesh sono più utili. Se è stato letto il Capitolo precedente, e si sta leggendo questo si sarà in grado di scegliere se usare le mesh o le curve.

Curve A partire da Blender v2.31 Questa sezione descrive sia le curve di Bézier che le NURBS, e mostra un esempio funzionante del primo.

Bézier Le curve di Bézier sono il tipo più comunemente usate per disegnare loghi e lettere. Esse sono ampiamente usate nell'animazione, sia come percorsi lungo cui spostare oggetti sia come curve IPO per cambiare le proprietà degli oggetti in funzione del tempo. Un punto di controllo (un vertice) di una curva di Bézier consiste in un punto e due maniglie. Il punto, nel mezzo, è usato per spostare l'intero punto di controllo; selezionandolo si selezionano anche le altre due maniglie, e consente di spostare tutto il vertice. Selezionando una o due delle altre maniglie consente di cambiare la forma della curva trascinando le maniglie. Una curva di Bézier è tangente al segmento che passa per il punto e la maniglia. La 'ripidità' della curva è controllata dalla lunghezza della maniglia. Ci sono quattro tipi di maniglie (Figura 9-1): •

Maniglia Libera (nera). Questa può essere usata in qualsiasi modo si vuole. Hotkey: HKEY (scambia tra Libera ed Allineata);



Maniglia Allineata (viola). Queste maniglie giacciono sempre su una linea retta. Hotkey: HKEY (scambia tra Libera ed Allineata);

114



Maniglia Vettore (verde). Entrambe le parti di una maniglia puntano alla maniglia precedente o alla successiva. Hotkey: VKEY;



Maniglia Automatica (gialla). Questa maniglia ha una lunghezza ed una direzione completamente automatiche, impostate da Blender per avere il più levigato risultato. Hotkey: SHIFT-H.

Figura 9-1. Tipi di Maniglie per le curve di Bézier.

Le maniglie possono essere spostate, ruotate e dimensionate esattamente come si fa con i normali vertici di una mesh. Appena le maniglie vengono spostate, il tipo viene automaticamente modificato: •

La maniglia Automatica diventa Allineata;



La maniglia Vettore diventa Libera.

Anche se la curva di Bézier è un oggetto matematico continuo, esso, tuttavia, deve essere rappresentato in una forma discreta dal punto di vista del rendering. Questo viene fatto impostando la proprietà risoluzione, che definisce il numero di punti, tra ogni coppia di punti di controllo, da calcolarsi. Per ciascuna curva di Bézier si può impostare una diversa risoluzione (Figura 9-2). Figura 9-2. Impostazione della risoluzione nella Bézier.

NURBS Le curve NURBS sono definite come polinomiali razionali, e sono più generali, a rigor di termini, delle convenzionali curve BSplines e Bézier in quanto sono in grado si seguire esattamente ogni contorno. Per esempio una circonferenza di Bézier è una approssimazione polinomiale di una circonferenza, e tale approssimazione è evidente, mentre una circonferenza NURBS è esattamente una circonferenza. Le curve NURBS hanno un ampio insieme di variabili, che consente di creare forme matematicamente perfette (Figura 9-3). Comunque, lavorare con esse richiede u po' più di teoria:

115

Capitolo 8. Meta Oggetti Figura 9-3. Pulsanti di Controllo delle Nurbs.



Knots (Nodi). Le curve Nurbs hanno un vettore nodo, una fila di numeri che precisa la definizione parametrica della curva. Per questo sono importanti due pre-impostazioni. Uniform (Uniforme) produce una divisione uniforme per le curve chiuse, ma quando è usata con quelle aperte si dovranno prendere estremità "libere", difficili da localizzare precisamente. Endpoint (Estremità) imposta i nodi in modo che il primo e l'ultimo dei vertici facciano sempre parte della curva, cosa che le rende molto più facili da posizionare;



Order. L'ordine è la 'profondità' del calcolo della curva. Ordine '1' è un punto, ordine '2' è lineare, ordine '3' è una quadrica, e così via. Si usi sempre l'ordine '5' per le curve delle traiettorie in quanto risulterà fluida in tutte le circostanze, senza produrre irritanti discontinuità nel movimento. Parlando matematicamente, questo è sia l'ordine del Numeratore sia del Denominatore della polinomiale razionale che definisce le NURBS;



Weight. Le curve Nurbs hanno un 'peso' per ciascun vertice - la proporzione con cui un vertice partecipa alla "deformazione" della curva.

Figura 9-4. Impostazione dei pesi e del poligono di Controllo delle Nurbs.

La Figura 9-4 mostra le impostazioni del vettore di Nodi così come l'effetto della variazione del peso di un singolo nodo. Come con le Bézier, la risoluzione può essere impostata per ciascuna curva.

Esempio funzionante Gli strumenti per le curve, di Blender, forniscono un rapido e semplice modo per costruire dei loghi e del testo di grande impatto visivo. Si useranno questi strumenti per trasformare una bozza approssimata di un logo in un oggetto finito 3D. La Figura 9-5 mostra il progetto del logo che si va a costruire.

116

Figura 9-5. Lo schizzo del logo.

Prima si importa lo schizzo originale in modo da usarlo come sagoma. Blender supporta sia immagini in formato TGA sia JPG. Per caricare l'immagine, si seleziona la voce di menù View>>Background Image... della Finestra 3D in uso. Apparirà un pannello trasparente, consentendo di selezionare un disegno da usare come sfondo. Si attiva il pulsante BackGroundPic e si usa il pulsante LOAD per localizzare l'immagine che si vuol usare come sagoma (Figura 9-6). Si può impostare la "gradazione" del disegno dello sfondo con lo slider Blend. Figura 9-6. Le impostazioni della finestra 3D.

Ci si sbarazzi del Pannello con ESC o premendo il pulsante X nella testata del pannello (Figura 9-7). Una volta finito di usarla, si potrà nascondere l'immagine di sfondo tornando nel Pannello e deselezionando il pulsante BackGroundPic . Figura 9-7. La bozza del logo caricata come sfondo.

Si aggiunga una nuova curva premendo SPAZIO>>Curve>>Bezier Curve. Apparirà un segmento curvilineo, e Blender si porrà in modalità Edit. Sposteremo ed aggiungeremo punti per creare una forma chiusa che descriva il logo che si sta provando a tracciare. Si possono aggiungere punti alla curva selezionandone uno dei due estremi, quindi, tenendo premuto CTRL e cliccando LMB. Si noti che il nuovo punto sarà connesso al punto precedentemente selezionato. Una volta aggiunto, il punto può essere spostato selezionandone il vertice di controllo e premendo GKEY. Si può cambiare l'angolo della curva afferrando e spostando le maniglie associate a ciascun vertice (Figura 9-8).

117

Capitolo 8. Meta Oggetti Figura 9-8. Le maniglie della Bézier.

Si può aggiungere un nuovo punto tra due esistenti selezionando i due punti e premendo WKEY>>Subdivide (Figura 9-9). Figura 9-9. L'aggiunta di un Punto di Controllo.

I punti possono essere rimossi selezionandoli e premendo XKEY>>Selected . Per tagliare una curva in due, si selezionano due vertici di controllo adiacenti e si preme XKEY>>Segment. Per creare degli angoli netti, si seleziona un vertice di controllo e si preme VKEY. Si noterà che il colore delle maniglie cambia da viola a verde (Figura 9-10). A questo punto, si possono spostare le maniglie per regolare il modo in cui la curva entra ed esce dal vertice di controllo (Figura 9-11). Figura 9-10. Maniglie Vettore (in verde).

118

Figura 9-11. Maniglie Libere (nere).

Per chiudere una curva e trasformarla in un unico anello continuo, si seleziona almeno uno dei vertici di controllo della curva e si preme CKEY. Questo connetterà l'ultimo punto nella curva col primo (Figura 9-12). Si potrebbe aver bisogno di posizionare ulteriori maniglie per ottenere la forma voluta. Figura 9-12. Il contorno finito.

Lasciando modalità Edit con TAB ed entrando in quella ombreggiata [shaded] con ZKEY si scoprirà che la curva apparirà in realtà come una sagoma piena (Figura 9-13). Si vogliono tagliare dei fori in questa sagoma per rappresentare i dettagli degli occhi e dell'ala del dragone. Superfici e Fori: Quando si lavora con le curve, Blender automaticamente rileva i fori nella superficie e li gestisce secondo le seguenti regole. Una curva chiusa è sempre considerata come il perimetro di una superficie e quindi una superficie piatta nel rendering. Se una curva chiusa è completamente racchiusa dentro un'altra, quella interna viene sottratta dalla esterna, definendo di fatto un foro.

Figura 9-13. Il logo ombreggiato.

119

Capitolo 8. Meta Oggetti Si torni in modalità fil-di-ferro [wireframe] con ZKEY e si entri ancora in modalità edit con TAB. Stando in Modo Edit, si aggiunga una curva circolare con SPAZIO>>Curve>>Bezier Circle (Figura 9-14). Si riduca il cerchio ad una giusta misura con SKEY e lo si sposti con GKEY. Figura 9-14. L'aggiunta di un cerchio.

Si modelli il cerchio con le tecniche apprese (Figura 9-15). Si ricordi di aggiungere altri vertici al cerchio usando WKEY>>Subdivide. Figura 9-15. Definizione dell'occhio.

Si crei il ritaglio di un'ala aggiungendo un cerchio di Bézier, convertendo tutti i punti in angoli netti, e quindi posizionandoli opportunamente. Si può duplicare tale contorno per risparmiare tempo quando si dovrà creare il contorno della seconda ala. Per farlo, ci si assicuri che non sia selezionato alcun punto, quindi si sposti il cursore su uno dei vertici del ritaglio della prima ala e si selezionino tutti i punti collegati con LKEY (Figura 9-16). Si duplichi la selezione con SHIFT-D e si posizionino, spostandoli, i nuovi punti. Figura 9-16. Definizione delle ali.

Per aggiungere altre strutture geometriche non connesse al corpo principale (ponendo ad esempio un cerchio nella coda curva del dragone), si usa il menù SHIFT-A per aggiungere altre curve come mostrato in Figura 9-17.

120

Figura 9-17. Posizionamento del cerchio all'interno della coda.

Ora che abbiamo la curva, dobbiamo impostarne lo spessore e la smussatura dei bordi. Con la curva selezionata, si va nella pulsantiera di Edit (F9) e si localizza il pannello Curves and Surface. Il parametro Ext1 imposta lo spessore dell'estrusione mentre Ext2 imposta la dimensione della smussatura. BevResol indica quanto affilata o arrotondata debba essere la smussatura. La Figura 9-18 mostra le impostazioni usate per estrudere questa curva. Figura 9-18. Impostazioni della smussatura [Bevel].

Dalle Curve alle Mesh: Per fare operazioni di modellazione più complesse, si converte la curva in una mesh con ALTC>>Mesh. Si noti che questa operazione è irreversibile: non si può convertire una mesh di nuovo in una curva.

Una volta completato il logo, si possono aggiungere i materiali e le luci ed effettuarne un bel rendering (Figura 9-19). Figura 9-19. Il rendering finale.

Le Superfici A partire da Blender v2.31 In effetti, le superfici sono un'estensione delle Curve NURBS. In Blender costituiscono un altro tipo di ObData.

121

Capitolo 8. Meta Oggetti Mentre una curva produce solo un'interpolazione mono-dimensionale, le Superfici hanno un'ulteriore dimensione. La prima dimensione è U, come per le curve, e la seconda è V. Una griglia bi-dimensionale di punti di controllo definisce la forma di queste superfici NURBS. Le Superfici si usano per creare e modificare superfici curve fluide. Le superfici possono essere cicliche in entrambe le direzioni, consentendo di creare facilmente la forma di una 'ciambella', ed esse possono essere disegnate anche come 'solidi' in Modalità Edit (con zbuffer e con illuminazione OpenGL). Questo semplifica molto il lavoro con le superfici. Nota: Attualmente Blender ha un insieme di strumenti elementari per le Superfici con una limitata capacità di creare fori e fusioni di superfici. Future versioni conterranno altre funzionalità a riguardo.

Si può prendere una delle varie superfici 'primitive' dal menù ADD come punto di partenza (Figura 9-20). Da notare che si può scegliere 'Curve' e 'Circle' dal menù 'surface'! Questo è possibile perché le curve NURBS sono intrinsecamente Superfici NURBS, semplicemente che hanno una dimensione trascurata. Nota: Una 'vera' curva NURBS ed una curva 'superficie' NURBS non sono intercambiabili, come si vedrà seguendo il processo di estrusione in seguito e nella successiva sezione sul rivestimento.

Figura 9-20. Il menù per aggiungere una superficie.

Quando si aggiunge una 'superficie' curva si può creare una vera superficie semplicemente estrudendo l'intera curva (EKEY). Ciascun lato di una superficie può quindi essere estruso a piacimento per dar forma al modello. Si usa CKEY per rendere cicliche le direzioni U o V. Ci si assicuri di impostare i 'nodi' a Uniform o a Endpoint con una delle pre-impostazione della Pulsantiera di Edit nel pannello Curve Tools. Lavorando con le superfici, è comodo lavorare sempre con intere colonne o righe di vertici. Blender fornisce uno strumento di selezione per questo: SHIFT-R, "Seleziona Riga". Partendo dall'ultimo vertice selezionato, tutta una riga di vertici estende la selezione nella direzione 'U' o 'V'. Si scelga ancora Seleziona Riga con lo stesso vertice per scambiare la selezione tra la 'U' e la 'V'. Figura 9-21. La superficie di una sfera.

122

Le NURBS possono creare forme pure come cerchi, cilindri e sfere (ma si noti che un cerchio Bézier non è un cerchio matematicamente esatto). Per creare cerchi, sfere o cilindri perfetti, si devono impostare i pesi dei vertici. Questo non è intuitivo, e si deve leggere di più sulle NURBS prima di provarlo. Fondamentalmente, per produrre un arco circolare da una curva con 3 punti di controllo, i punti terminali devono avere un peso unitario, mentre il perso del punto di controllo centrale deve essere uguale a un mezzo del coseno della metà dell'angolo tra i segmenti che uniscono i punti. La Figura 9-21 mostra ciò per una sfera. Nella pulsantiera di Edit nel pannello Curve Tools sono inclusi, come pre-impostazioni, tre numeri standard (Figura 9-22). Nota: Per leggere il peso di un vertice selezionato, si preme NKEY.

Figura 9-22. I pesi pre-impostati.

Il Testo A partire da Blender v2.31 Figura 9-23. Esempi di Testo.

Il testo per Blender è un tipo speciale di curva. Blender ha il proprio font incorporato ma può usare anche fonts esterni, inclusi sia fonts PostScript Type 1 sia fonts True Type (Figura 9-23). Si apra Blender o si torni ad una scena nuova premendo CTRL-X. Si aggiunga un Oggetto Testo con la Toolbox (SPAZIO>>Add>>Text ). Si può modificare il testo con la tastiera In Modo Edit; un cursore testo mostra la posizione nel testo. Quando si lascia il Modo Edit con TAB, Blender riempie la curva-testo, producendo un oggetto piatto pieno pronto per il rendering. Ora si va nella Pulsantiera di Edit con F9 (Figura 9-24).

123

Capitolo 8. Meta Oggetti Figura 9-24. I pulsanti di modifica del testo.

Come si può vedere nel pannello Font il Menù Pulsante, Blender per default usa il proprio font durante la creazione di un nuovo Oggetto Testo. Si clicca su Load Font. Si cerca nella Finestra File una directory contenente i font PostScript Tipo 1 o i fonts True Type e si carica un nuovo font (Si possono scaricare diversi font PostScript dal web, e Microsoft Windows include di suo molti font True Type - tuttavia in quest'ultimo caso si faccia attenzione che qualcuno di essi è coperto da copyright!). Si provi qualche font. Una volta caricato un font, si può usare il Pulsante Menù per cambiare il font di un Oggetto Testo. Per ora abbiamo solo un oggetto piatto. Per aggiungere un po' di spessore, possiamo usare i pulsanti Ext1: e Ext2: nel pannello Curve and Surface proprio come si è fatto con le curve. Si usa l'opzione TextOnCurve: per fare in modo che il testo segua una curva 2D. Si usano i pulsanti di allineamento sopra il campo di testo TextOnCurve: nel pannello Font per allineare il testo sulla curva. Una funzione particolarmente potente di Blender è quella che converte, con ALT-C, un Oggetto Testo in una curva di Bézier, che consente di modificare la forma di ogni singolo carattere sulla curva. Questo è utile specie nella creazione di loghi o quando si producono caratteri personalizzati. La trasformazione da testo a curva è irreversibile e, ovviamente, è possibile anche un'ulteriore trasformazione da curva in mesh.

Caratteri Speciali Normalmente, un Oggetto Font comincia con la parola "Text" che può essere cancellata semplicemente con SHIFT-BACKSPACE. In Modo Edit, l'Oggetto Testo reagisce solo all'input di testo. Quasi tutti i tasti attivi [hotkeys] sono disabilitati. Il cursore può essere spostato con i tasti freccia. Si usano SHIFT-FrecciaSinistra e SHIFT-FrecciaDestra per spostare il cursore alla fine delle linee o all'inizio o alla fine del testo. Sono disponibili quasi tutti i caratteri 'speciali'. Segue un riassunto di questi caratteri: •

ALT-c: copyright



ALT-f: Fiorino Olandese



ALT-g: gradi



ALT-l: Sterlina Britannica



ALT-r: Marchio registrato



ALT-s: S tedesca



ALT-x: Simbolo della moltiplicazione



ALT-y: Yen giapponese



ALT-1: un 1 piccolo



ALT-2: un 2 piccolo



ALT-3: un 3 piccolo



ALT-?: Punto interrogativo spagnolo



ALT-!: Punto esclamativo spagnolo



ALT->: un doppio >>



ALT-<: un doppio <<

Tutti i caratteri della tastiera dovrebbero funzionare, incluse le vocali accentate e simili. Se si ha bisogno di caratteri speciali (come lettere accentate, che non stanno su una tastiera americana) se ne possono produrre molti di essi usando una combinazione

124

di altri due caratteri. Per fare questo, si preme ALT-BACKSPACE all'interno della combinazione desiderata, quindi si preme la combinazione desiderata per produrre il carattere speciale. Alcuni esempi sono dati inseguito. •

AKEY, ALT-BACKSPACE, TILDE: ã



AKEY, ALT-BACKSPACE, VIRGOLA: à



AKEY, ALT-BACKSPACE, APICE SINGOLO: á



AKEY, ALT-BACKSPACE, OKEY: å



EKEY, ALT-BACKSPACE, VIRGOLETTE: ë



OKEY, ALT-BACKSPACE, BARRA: ø

Si può aggiungere un file ASCII completo ad un Oggetto Testo. Si salva il file come /tmp/.cutbuffer e si preme ALT-V. Altrimenti si può scrivere il proprio testo in una Finestra di Testo di Blender, caricare un testo in tale finestra, o incollarlo nella finestra dalla clipboard e premere ALT-M. Questo crea un nuovo Oggetto Testo dal contenuto del buffer del testo (Fino a 1000 caratteri).

Estrusione lungo un percorso A partire da Blender v2.31 La tecnica della "Estrusione lungo un percorso" è uno strumento di modellazione molto potente. Essa consiste nella creazione di una superficie facendo scorrere un dato profilo lungo un percorso definito. Sia il profilo che il percorso possono essere curve di Bézier o NURBS. Assumiamo di aver aggiunto, alla nostra scena, una curva di Bézier ed un cerchio di Bézier come oggetti separati (Figura 9-25). Figura 9-25. Profilo (a sinistra) e percorso (a destra).

Si modificano un po' entrambi per ottenere un bel profilo 'a forma di ala' ed un percorso gradevole (Figura 9-26). Per default, le Bézier esistono solo su un piano, e sono oggetti 2D. Per fare in modo che il percorso possa volteggiare nelle tre dimensioni dello spazio, come nell'esempio mostrato sopra, si deve premere il pulsante 3D nella Pulsantiera di Edit della Curva (F9) pannello Curve and Surface (Figura 9-27). Figura 9-26. Profilo modificato (a sinistra) e percorso (a destra).

125

Capitolo 8. Meta Oggetti Figura 9-27. Il pulsante della Curva 3D.

Ora si dà uno sguardo al nome dell'oggetto profilo. Per default è "CurveCircle" e viene mostrato sul pannello NKEY quando è selezionato. Volendo lo si può cambiare con SHIFT-LMB sul nome (Figura 9-28). Figura 9-28. Il nome del Profilo.

Ora si seleziona il percorso. Nelle Pulsantiere si cerchi il Pulsante Testo BevOb: nel pannello Curve and Surface e vi si scriva il nome dell'oggetto profilo. Nel nostro caso "CurveCircle" (Figura 9-29). Figura 9-29. Indicazione del Profilo sul percorso.

Il risultato è una superficie definita dal Profilo, che segue un percorso (Figura 9-30).

126

Figura 9-30. Il risultato dell'estrusione.

Per capire i risultati, e dunque ottenere gli effetti desiderati, è importante capire i seguenti punti: •

Il profilo è orientato in modo che il suo asse z sia tangente (ovvero diretto lungo) il percorso ed il suo asse x giace sul piano del percorso; di conseguenza l'asse y è ortogonale al piano del percorso;



Se il percorso è 3D il "piano del percorso" viene definito localmente anziché globalmente e viene rappresentato visualmente, in modalità Edit, da diversi segmentini perpendicolari al percorso (Figura 9-31);



L'asse y del profilo punta sempre verso l'alto. Questo è spesso una motivo di risultati inaspettati e di problemi, come sarà spiegato in seguito.

Figura 9-31. Il piano locale del percorso.

Inclinazione: Per modificare l'orientamento del piano locale del percorso si seleziona un punto di controllo e si preme TKEY. Quindi si sposta il mouse per cambiare l'orientamento del segmentini uniformemente nelle vicinanze del punto di controllo. LMB conferma la posizione, ed ESC torna allo stato precedente.

Con l'asse y vincolato verso l'alto, si possono avere dei risultati non voluti allorquando il percorso è 3D ed il profilo che si sta estrudendo proviene da un punto dove il percorso è esattamente verticale. Infatti se il percorso diventa verticale e quindi continua a piegarsi c'è un punto dove l'asse y del profilo dovrebbe iniziare a puntare in basso. Se questo avviene, dato che l'asse y è vincolato a puntare verso l'alto c'è una brusca rotazione di 180° del profilo, in modo che l'asse y continui a puntare verso l'alto. La Figura 9-32 mostra il problema. A sinistra c'è un percorso conformato in modo tale che la normale al piano locale del percorso punta sempre verso l'alto. A destra si vede un percorso dove, nel punto cerchiato in giallo, tale normale comincia a puntare verso il basso. Il risultato dell'estrusione presenta in questo punto un brusco giro.

127

Capitolo 8. Meta Oggetti Figura 9-32. I problemi dell'estrusione dovuti al vincolo dell'asse y.

Le uniche soluzioni a tale problema sono: Usare più percorsi coincidenti, o inclinare accuratamente il percorso in modo da assicurare che una normale punta sempre verso l'alto. Cambiare l'orientamento del profilo: Se l'orientamento del profilo lungo la curva non è come ci si aspetta, e lo si vuol ruotare per tutta la lunghezza del percorso, il modo migliore per farlo consiste nell'inclinare tutti i punti di controllo del percorso. In modalità Edit, si può semplicemente ruotare il profilo sul suo piano. In questo modo cambierà il profilo non il suo riferimento locale.

Rivestimento A partire da Blender v2.31 Il Rivestimento [Skinning] è l'arte di definire una superficie usando due o più profili. In Blender si può fare preparando molte curve della forma desiderata e convertendole quindi in una singola superficie NURBS. Come esempio creeremo un veliero. La prima cosa da fare, nella vista laterale (NUM3), consiste nell'aggiungere una Superficie Curva. Ci si assicuri di aggiungere una Superficie curva e non una curva di Bézier o di tipo NURBS, altrimenti il trucco non riesce (Figura 9-33). Figura 9-33. Una Superficie curva per il rivestimento.

Si dia alla curva la forma della sezione trasversale della battello, aggiungendo i vertici necessari col pulsante Split e, possibilmente, impostando entrambe le 'estremità' della NURBS su 'U' e 'V' (Figura 9-34) se necessario.

128

Figura 9-34. Il profilo della nave.

Ora si duplichi (SHIFT-D) la curva tante volte quanto è necessario, a sinistra ed a destra (Figura 9-35). Si modifichino le curve in modo da farle coincidere con le varie sezioni della nave nei diversi punti per tutta la sua lunghezza. Per questo fine, aiuta molto lo schema. Si può caricare uno schema come sfondo (come si è fatto per il disegno del logo in questo capitolo) per preparare tutti i profili delle sezioni (Figura 9-36). Si noti che la superficie che si produrrà avrà transizioni morbide da un profilo al successivo. Per creare dei bruschi cambiamenti è necessario posizionare i profili molto vicini tra loro, come nel caso del profilo selezionato in Figura 9-36. Figura 9-35. Profili multipli lungo l'asse della nave.

Figura 9-36. Profili multipli delle forme corrette.

Ora si selezionano tutte le curve (con AKEY o BKEY), e si uniscono (premendo CTRL-J e rispondendo Yes alla domanda 'Join selected NURBS?'). I profili sono tutti evidenziati in Figura 9-37.

129

Capitolo 8. Meta Oggetti Figura 9-37. Il profilo riunito.

Ora si entra in modalità Edit (TAB) e si selezionano i punti di controllo con AKEY; quindi si preme FKEY. I profili dovrebbero essere 'rivestiti' e convertiti in una superficie (Figura 9-38). Nota: Come dovrebbe essere evidente dal primo e dall'ultimo profilo in quest'esempio, le sezioni trasversali non devono essere definite su una famiglia di piani reciprocamente ortogonali.

Figura 9-38. La superficie rivestita in modalità edit.

Si modifichi la superficie, se necessario, spostando i punti di controllo. La Figura 9-39 mostra una vista ombreggiata. Molto probabilmente sarà necessario aumentare ResolU e RelolV per ottenere una forma migliore. Figura 9-39. Lo scafo finale.

Impostazione del profilo: La sola limitazione a questa potentissima tecnica è che tutti i profili devono essere composti dallo stesso numero di punti di controllo. Ecco perché è una buona idea, modellare prima il profilo della sezione trasversale più complessa e poi duplicarla, spostando, se necessario, i punti di controllo, senza aggiungere o rimuovere punti, come si è mostrato in questo esempio.

130

Capitolo 10. Materiali e Textures Prima che si possa comprendere come progettare di fatto coi materiali, si deve capire come interagisce la luce simulata con le superfici nel motore del rendering di Blender e come le impostazioni del materiale regolano queste interazioni. Una conoscenza approfondita del motore sarà d'aiuto per trarne il massimo. L'immagine creata col rendering di Blender è una proiezione della scena su una superficie immaginaria chiamata il piano visivo. Il piano visivo è analogo alla pellicola nella telecamera tradizionale, o ai coni ed ai bastoncelli nell'occhio umano, solo che riceve una luce simulata, non reale. Per effettuare il rendering di una scena bisogna determinare quale luce della scena arriva su ciascun punto del piano visivo. Il modo migliore per rispondere a questa domanda consiste nel seguire una linea retta (il raggio di luce simulato) a ritroso, dal punto sul piano visivo passando dal punto focale (la posizione della telecamera) fino a raggiungere una superficie visibile della scena, in tale punto si determina quanta luce dovrebbe colpire tale punto. Le proprietà della superficie e l'angolo d'incidenza della luce indicano quanta luce torni indietro riflessa lungo l'angolo di vista incidente (Figura 10-1). Figura 10-1. Il principio base del motore del Rendering.

Per ogni punto di una superficie, quando un raggio di luce lo colpisce, si possono avere due tipi di fenomeni basilari: diffusione e riflessione speculare. La diffusione e la riflessione speculare, si distinguono soprattutto per la relazione tra l'angolo della luce incidente e l'angolo della luce riflessa.

Diffusione A partire da Blender v2.31 La luce che ricade su una superficie viene re-irradiata per il fenomeno della Diffusione, in altre parole, re-irradiata in tutte le direzioni isotropicamente. Questo significa che la telecamera vedrà la stessa quantità di luce proveniente da questo punto della superficie prescindendo dall'angolo di vista incidente. Questa è la qualità che rende la luce diffusa indipendente dal punto di vista. Ovviamente la quantità di luce che colpisce la superficie dipende dall'angolo della luce incidente. Se la maggior parte della luce che ricade su una superficie viene riflessa in modo diffuso, la superficie apparirà opaca (Figura 10-2). Figura 10-2. La luce re-irradiata per il fenomeno della diffusione.

131

Capitolo 10. Materiali e Textures Fin dalla versione 2.28, Blender ha implementato tre diverse formule matematiche per calcolare la diffusione e, cosa ancor più notevole, la diffusione ed il fenomeno speculare, che di solito sono racchiusi in un solo tipo di materiale, sono stati separati in modo che sia possibile selezionare separatamente l'implementazione della diffusione e quello della riflessione speculare. Le tre implementazioni della Diffusione, o shaders (ombreggiatori), usano due o più parametri ciascuno. I primi due parametri sono condivisi da tutti gli Ombreggiatori della Diffusione e sono il colore di Diffusione, o semplicemente, il colore, del materiale, e la quantità d'energia della luce incidente realmente diffusa. Quest'ultima quantità, che spazia nella gamma [0,1], viene in realtà chiamato Refl nell'interfaccia. Gli ombreggiatori implementati sono: •

Lambert - Questo è stato l'ombreggiatore di default di Blender fin dalla versione 2.27, Pertanto tutti i vecchi tutorials fanno riferimento ad esso, e tutte le immagini precedenti la 2.28 sono state create così. Questo ombreggiatore ha solo i parametri di default.



Oren-Nayar - Questo ombreggiatore è stato introdotto la prima volta in Blender 2.28. Ha un approccio più 'fisico' al fenomeno della diffusione giacché, oltre ai due parametri di default, ne ha un terzo, che viene usato per determinare la quantità di ruvidità microscopica della superficie.



Toon (Fumetto) - Questo ombreggiatore è stato introdotto la prima volta in Blender 2.28. È un ombreggiatore molto 'poco fisico' dato che non intende imitare la realtà ma produrre dei rendering da 'fumetto', con delle zone nette luce-ombra e regioni uniformemente illuminate/ombreggiate. Nonostante la sua 'semplicità', richiede altri due parametri, per definire la dimensione dell'area luminosa e la nitidezza delle regioni in ombra.

Una successiva sezione, dedicata all'implementazione reale del materiale, analizzerà le relative impostazioni.

Riflessione Speculare A partire da Blender v2.31 Diversamente dalla Diffusione, la riflessione Speculare è dipendente dal punto di vista. Secondo la legge di Snell, la luce che ricade su una superficie a specchio sarà riflessa di un angolo che riflette l'angolo della luce incidente, il che rende l'angolo di vista molto importante. La riflessione speculare ha una forma forte, molto luminosa, e la superficie appare lucente (Figura 10-3). Figura 10-3. Riflessione Speculare.

In effetti, la Diffusione e la riflessione Speculare sono generate esattamente dallo stesso processo di dispersione della luce. La Diffusione è dominante da una superficie con tante piccole asperità, rispetto alla lunghezza d'onda, tale luce viene riflessa in tante direzioni diverse da ciascun piccolo pezzo della superficie con piccole variazioni dell'angolazione della superficie. La riflessione Speculare, d'altronde, prevale su una superficie liscia, rispetto alla lunghezza d'onda. Questo implica che i raggi dispersi da ciascun punto della superficie siano diretti quasi nella stessa direzione, invece che essere diffusi in modo sparpagliato. È solo una questione di scala del dettaglio. Se le asperità della superficie sono più piccole della lunghezza d'onda della luce incidente essa appare piatta come uno specchio. Nota: È importante insistere sul fatto che il fenomeno della riflessione Speculare discusso qui non è la riflessione che si vedrebbe in uno specchio, ma piuttosto la luce che si vedrebbe su una superficie lucida. Per ottenere vere riflessioni da specchi è necessario un raytracer. Blender non è un raytracer, ma può produrre delle imitazioni di specchi con un'accurata applicazione delle textures, come si vedrà in seguito.

132

Come la Diffusione, la riflessione Speculare ha diverse implementazioni, o shaders speculari. Inoltre, ciascuna di queste implementazioni condivide due parametri comuni: il colore Speculare e l'energia della specularità, nell'intervallo [0-2]. Questo consente in realtà di versare più energia da disperdere della riflessione speculare come se fosse energia incidente. Come conseguenza, si ha che un materiale ha almeno due diversi colori, uno diffuso, ed uno speculare. Il colore speculare è normalmente impostato come bianco puro, ma può avere un valore diverso per ottenere degli effetti particolari. I quattro ombreggiatori speculari sono: •

CookTorr - Questo è stato il solo Ombreggiatore Speculare di Blender fino alla versione 2.27. Infatti, fino a tale versione non era possibile impostare separatamente ombreggiatori diffusi e speculari ed è stata una semplice implementazione del materiale. Accanto ai due parametri standard questo shader ne usa un terzo, hardness (durezza), che regola la larghezza della zona speculare. Più basso è hardness, più larga è la zona.



Phong - Questo è un diverso algoritmo matematico, usato per calcolare la specularità. Esso non molto diverso dal CookTor, ed è manovrato dagli stessi tre parametri.



Blinn - Questo è un ombreggiatore speculare più vicino alle leggi della fisica, pensato per accoppiarlo a quello diffuso di Oren-Nayar. Esso è più fisico in quanto aggiunge un quarto parametro, un index of refraction (IOR) (indice di rifrazione), ai suddetti tre. Questo parametro non viene in realtà usato per calcolare la rifrazione dei raggi (per questo ci vuole un ray-tracer), ma per calcolare correttamente l'intensità e l'estensione della riflessione speculare secondo la Legge di Snell. I parametri Hardness e Specular consentono un ulteriore grado di libertà.



Toon (Fumetto) - Questo ombreggiatore speculare si accoppia con quello della diffusione di Toon. È progettato per produrre zone nette ed uniformi tipiche dei fumetti. Non ha hardness mentre ha una coppia di parametri Size e Smooth per indicare l'estensione e la nitidezza delle zone speculari.

Grazie alla sua flessibile implementazione, che tiene separati i fenomeni della diffusione e della riflessione speculare, Blender consente di controllare facilmente quanta della luce incidente cadente su un punto di una superficie venga sparpagliata in giro, quanta di questa è riflessa come specularità, e quanta non sia assorbita. Questo, a sua volta, determina in quali direzioni (ed in che quantità) la luce sia riflessa da una data sorgente di luce; vale a dire, da quale sorgente (ed in quale quantità) la luce viene riflessa verso un dato punto del piano visivo. È molto importante ricordare che il colore del materiale è solo uno degli elementi nel processo del rendering. Il colore in effetti è il prodotto del colore della luce e di quello del materiale.

Materiali in pratica A partire da Blender v2.31 In questa sezione si vedrà come impostare i parametri del materiale in Blender, e cosa ci si debba aspettare come risultato. Figura 10-4. L'aggiunta di un nuovo materiale.

Una volta selezionato l'Oggetto, premendo il tasto F5 o , ci si sposta nel contesto di Shading ed apparirà la Pulsantiera del Materiale. Tale finestra sembra terribilmente vuota, a meno che l'Oggetto non abbia già un materiale collegato ad esso. Se non ci sono materiali collegati, se ne aggiunge uno nuovo col pulsante menù (Figura 10-4). Una volta aggiunto un materiale appariranno i pulsanti come mostrato nella Figura 10-5. Sono presenti quattro pannelli, da sinistra a destra: un pannello Preview, un pannello Material, un pannello Shader ed un pannello Texture. Ci concentreremo sui primi tre, per ora.

133

Capitolo 10. Materiali e Textures Figura 10-5. I Pulsanti del Materiale.

Il pannello Preview mostra l'anteprima del materiale. Per default mostra un piano visto dall'alto, ma può essere cambiato in una sfera o un cubo tramite i pulsanti sulla destra del pannello (Figura 10-6). Figura 10-6. L'Anteprima del Materiale, un piano (a sinistra) una sfera (al centro) ed un cubo (a destra).

I Colori dei Materiali Il pannello Material (Figura 10-7) consente, tra l'altro, l'impostazione dei colori del materiale. Figura 10-7. I pulsanti dei colori del materiale.

Ciascun materiale può esporre fino a tre colori: •

Il colore base del materiale, o quello Diffuso, o, in breve il Colore (il pulsante Col nell'interfaccia) che è il colore usato dallo shader di diffusione.



Il colore Speculare, indicato dal pulsante Spe nell'interfaccia, è il colore usato dallo shader speculare.



Il colore Specchio, indicato dal pulsante Mir nell'interfaccia, è il colore usato dalle speciali textures per imitare le riflessioni. (Si troveranno ulteriori informazioni su questo nella sezione Mappatura Ambientale).

I suddetti pulsanti selezionano il colore di pertinenza, che appare in anteprima immediatamente alla sinistra di ciascun pulsante. I tre sliders a destra consentono la modifica dei valori del colore attivo sia secondo uno schema RGB che secondo lo schema HSV. Tali schemi si possono selezionare tramite i pulsanti RGB e HSV in basso. Il pulsante DYN è usato per impostare le proprietà Dinamiche dell'Oggetto nel motore RealTime (che va oltre lo scopo di questo libro), mentre i quattro pulsanti sopra sono relativi agli avanzati Vertex Paint (Colorazione del Vertice) e UV Texture.

Gli Ombreggiatori [Shaders] Il pannello Shader (Figura 10-8) mostra due pulsantiere che consentono di selezionare un ombreggiatore di diffusione (Figura 10-9) ed un ombreggiatore speculare (Figura 10-10).

134

Figura 10-8. I pulsanti dell'Ombreggiatore [Shader] del materiale.

Figura 10-9. Gli ombreggiatori Diffuse (di diffusione) del materiale.

Figura 10-10. Gli ombreggiatori Specular (Speculari) del materiale.

I due sliders sul lato, validi per tutti gli shaders, determinano l'intensità dei fenomeni di Diffusione e Specularità. Lo slider Ref ha un intervallo da 0 a 1 mentre Spec va da 0 a 2. Parlando in termini strettamente fisici, se A è l'energia della luce che colpisce l'oggetto, Ref per A è l'energia diffusa e Spec per A è l'energia riflessa specularmente. Per essere fisicamente corretti deve risultare Ref + Spec < 1 altrimenti l'oggetto irradierebbe più energia di quanta ne riceva. Ma questa è la CG (Computer Grafica), quindi non si deve essere troppo rigorosi per le leggi della fisica. A seconda dell'ombreggiatore scelto possono essere presenti altri sliders, che consentono di impostare i vari parametri discussi nell'introduzione. Per completezza, la Figura 10-11 mostra tutte le possibili combinazioni. Ovviamente, dato che ci sono molti parametri, c'è solo un piccolo esempio. Figura 10-11. Riassunto degli shader.

135

Capitolo 10. Materiali e Textures

Modifiche dei Materiali I restanti pulsanti del materiale in entrambi i pannelli Material e Shaders eseguono degli effetti particolari. Figura 10-12. Ulteriori sliders del materiale.

La Figura 10-12 mostra degli sliders interessanti. Alpha regola l'opacità del materiale; 1 è completamente opaco, 0 è totalmente trasparente. SpecTra forza la zona di specularità sui corpi trasparenti ad essere opaca. Shadeless rende il materiale insensibile alla propria ombreggiatura [shading], dandogli un colore uniformemente diffuso. Nel pannello Shaders, lo slider Emit, se diverso da zero, dà una proprietà di emissione al materiale. Tale proprietà rende il materiale visibile anche senza luci e può essere esso stesso una sorgente di luce se viene usato il motore della Radiosità. (Figura 1013). Figura 10-13. Il materiale normale (a sinistra), il materiale con Alpha < 1 (al centro) ed il materiale con Emit > 0 (a destra).

Le restanti file di pulsanti (Figura 10-14) attivano delle funzionalità speciali. Il pulsante in alto Halo rende il materiale 'Halo' (alone/aureola luminescente), che sarà descritto in seguito. Normalmente Traceable, Shadows e Radio sono attivati. Il primo consente al materiale di proiettare ombre, mentre il secondo consente al materiale di ricevere ombre; il terzo consente al materiale di essere preso in esame nel caso si effettui un rendering della Radiosità. Figura 10-14. I pulsanti speciali del materiale.

Wire fa apparire l'Oggetto a fil-di-ferro [wireframe]. ZTransp è necessario per attivare l'effetto di trasparenza Alfa.

Gli altri pulsanti non sono usati tanto spesso e vengono descritti nella sezione di riferimento alla fine del libro.

Ramp Shaders (-) TO BE WRITTEN

136

Riflessioni del Raytracing (-) TO BE WRITTEN

Trasparenze del Raytracing (-) TO BE WRITTEN

Materiali Multipli A partire da Blender v2.31 La maggior parte degli oggetti sono assemblati in modo da poter essere modellati in porzioni, con ciascuna parte composta da un diverso materiale. Ma in qualche occasione può risultare utile avere un oggetto modellato come una singola Mesh, pur esponendo diversi materiali. Si consideri l'immagine del fungo in Figura 10-15. Questo oggetto è una mesh singola cui si sono dovuti assegnare due materiali: uno per lo stelo ed uno per il cappello. Qui viene descritto come farlo. Figura 10-15. La Mesh del fungo.

Figura 10-16. Il fungo con un materiale.

1. Si crea uno materiale cremoso per lo stelo a propria scelta, e lo si assegna a tutto il fungo. (Figura 10-16).

137

Capitolo 10. Materiali e Textures Figura 10-17. Il fungo coi vertici del cappello selezionati.

2. In una finestra 3D si entra in Modo Edit per il fungo e si selezionano tutti i vertici appartenenti al cappello (Figura 10-17). 3. Si va nel Pannello Link and Material della Pulsantiera di Modifica della Mesh (F9) e si preme New (Figura 10-18). Figura 10-18. L'aggiunta di un nuovo materiale alla mesh.

4. La mesh dovrebbe ora avere due materiali. L'etichetta dovrebbe apparire 2 Mat: 2 ovvero che è attivo il materiale numero 2 di 2. Le facce selezionate vengono assegnate a questo nuovo materiale una volta premuto il tasto Assign; Le facce non selezionate mantengono l'assegnazione a qualsiasi materiale precedente. Per vedere quali facce appartengono a quali materiali si usano i pulsanti Select e Deselect . Si scorre tra i materiali col Pulsante Numerico Mat:. Si possono avere fino a 16 materiali per ogni mesh. 5. Ad ogni modo, entrambi i materiali della mesh sono istanze dello stesso materiale! Quindi, tenendo attivo il materiale che si vuol cambiare, ci si sposta nella pulsantiera del Materiale (F5) dove si troverà un pulsante simile a "2 Mat 2". Ora il materiale ha due utenze, come indicato dal colore blu nel nome del materiale, e dal pulsante numerico che mostra "2" (Figura 10-19). Figura 10-19. Materiale ad utenza multipla.

Si clicca sul "2" e si conferma la domanda OK? Single user. Ora i materiali sono duplicati. Il materiale originale resta col nome "Stem" (stelo) ed il duplicato è "Stem.001". Si rinomina il duplicato in "Cap" (cappello). Ora si può modificare il materiale secondo le necessità per ottenere un cappello di bell'aspetto. (Figura 10-20). Figura 10-20. Il fungo con due materiali.

138

Texture: Se il proprio materiale usa delle textures esse restano collegate anche dopo aver reso il materiale ad utenza singola. Per scollegare le textures, in modo da poter modificare separatamente le due textures del materiale, si passa nella pulsantiera della Texture per quel materiale, e si rende anche la texture ad utenza singola.

Materiali Speciali A partire da Blender v2.31 Blender è provvisto di un insieme di materiali che non obbediscono al paradigma dell'ombreggiatore e che vengono applicati secondo ciascun vertice anziché ciascuna faccia.

Materiali Luminescenti [Halo] Si preme F5 per far apparire i pulsanti del Materiale, quindi si preme il pulsante Halo nel Pannello Shaders. I pannelli si trasformano come appare in Figura 10-21. Figura 10-21. I pulsanti Halo

Come si può vedere, le facce della Mesh non appaiono più nel rendering; appare, invece, una 'luminescenza' in ciascun vertice. Questa è molto utile per i sistemi di particelle in quanto questi generano dei vertici liberi, ma può tornare molto comodo nella creazione di certi effetti speciali, quando si rende un oggetto incandescente, o quando si crea una sorgente di luce visibile. Come si può vedere nei tre colori che, laddove nel materiale standard sono colori Diffusi, Speculari o Riflessi ora sono relativi a tre diverse caratteristiche: il colore della luminescenza stessa [halo], il colore di ogni possibile anello [ring] ed il colore di ogni possibile linea [line] che si voglia aggiungere con i relativi interruttori in Figura 10-21. Figura 10-22. I risultati della luminescenza [halo].

La Figura 10-22 mostra il risultato dell'applicazione di un materiale luminescente [halo] ad una mesh fatta di un singolo vertice. La dimensione della luminescenza [size], l'alfa [alpha], e la durezza [hardness] possono essere regolate con i relativi sliders in Figura 10-21. Gli sliders Add determinano quanto dei colori della luminescenza debbano essere 'aggiunti', anziché miscelati, ai colori degli oggetti dietro ed assieme alle altre luminescenze. Per impostare il numero degli anelli, delle linee e dei raggi si selezionano indipendentemente, una volta abilitati col relativo Pul-

139

Capitolo 10. Materiali e Textures sante Interruttore, si usano i Pulsanti Numerici Rings:, Lines: e Star:. Anelli e linee vengono disposti ed orientati casualmente, per modificare la loro disposizione si può cambiare il Pulsante Numerico Seed: [Seme] che imposta il seme generatore dei numeri casuali. Creiamo un materiale luminescente [halo] per creare un display a matrice di punti. 1. Per iniziare, si aggiunge una griglia di dimensioni 32x16. Quindi si aggiunge una telecamera e si regola la scena in modo da avere una buona visione del tabellone. 2. Si usa un programma per immagini 2D per creare del testo rosso su fondo nero, usando un font semplice ed in grassetto. La Figura 10-23 mostra un'immagine larga 512 pixels ed alta 64 pixels, con un po' di spazio bianco su entrambi i lati. Figura 10-23. La texture immagine della matrice di punti.

3. Si aggiunge un materiale per questo tabellone, e lo si imposta di tipo Halo. Si regola HaloSize (la dimensione della luminescenza) a 0.06 e quando si effettua il rendering della scena si vedrà una griglia di puntini bianchi. 4. si aggiunge una Texture, quindi ci si sposta nella Pulsantiera della Texture e la si rende una texture immagine. Quando si carica l'immagine e si effettua il rendering si dovrebbero vedere dei punti rosseggianti nella griglia. 5. Si torna nella Pulsantiera del Materiale e si regola il parametro sizeX a circa 0.5 e si ripete il rendering; ora il testo dovrebbe essere centrato sul tabellone. 6. Per rimuovere i puntini bianchi, si imposta il colore del materiale a rosso scuro e si effettua il rendering. Si dovrebbero avere solo puntini rossi, ma il tabellone resta troppo scuro. Per rimediare si entra in Modo Edit per il tabellone e si duplicano tutti i vertici usando la scorciatoia SHIFT-D. Quindi si regola la luminosità col valore Add nella Pulsantiera del Materiale. Figura 10-24. Il tabellone a Matrice di Punti.

Ora si può animare la texture per spostarla sul tabellone, usando il valore ofsX nel pannello Texture della Pulsantiera del Materiale. (Si potrebbe usare una risoluzione più alta per la griglia, ma facendolo si dovrà regolare la dimensione degli aloni restringendoli, altrimenti si sovrapporranno). (Figura 10-24). Luminescenze [Halo] con Texture: Per default, le textures vengono applicate agli oggetti con le coordinate Oggetto e riflesse sugli aloni influenzandone il loro colore, per intero, sulla base del colore del vertice che genera la luminescenza. Per fare in modo che la texture abbia effetto dentro l'alone, e quindi per averlo con vari colori e trasparenze si preme il pulsante HaloTex; questo mapperà l'intera texture su ogni alone. Tale tecnica si dimostra utilissima quando si vogliono creare degli effetti pioggia realistici usando i sistemi di particelle, o simili.

Riflessi ottici [Lens Flares] I nostri occhi sono allenati a credere che un'immagine è reale se mostra degli artifici che provengono da processi meccanici o fotografici. Sfumature da movimento [Motion blur], Profondità di Campo [Depth of Field], e bagliori o riflessi ottici [lens flares] sono solo tre esempi di questi artifici. I primi due vengono discussi nel Capitolo 17; l'ultimo può essere fatto con degli aloni speciali. La simulazione di un riflesso ottico dice all'osservatore che l'immagine è stata creata con una telecamera, cosa che porta l'osservatore a pensare che sia autentica. In Blender i riflessi ottici si creano a partire da un oggetto mesh usando prima il pulsante Halo

140

e quindi le opzioni Flare nel Pannello Shaders delle impostazioni del materiale. Si provi attivando Rings e Lines, ma tenendo i colori di queste impostazioni abbastanza tenui. Si regoli il numero Flares: e le impostazioni Fl.seed: fino ad arrivare a qualcosa di piacevole alla vista. Potrebbe essere necessario regolare FlareBoost: per un effetto più marcato (Figura 10-25). (Questo strumento non simula la fisica dei fotoni che viaggiano attraverso il vetro delle lenti; esso è solo un estetismo). Figura 10-25. Le impostazioni del Riflesso Ottico.

I riflessi ottici di Blender appaiono belli durante il movimento, e scompaiono quando un altro oggetto eclissa la mesh dei riflessi. (Figura 10-26). Figura 10-26. Il Riflesso Ottico.

Capitolo 11. Le Texture Le Texture sono...

Le Texture A partire da Blender v2.31 MISSING AL NEW STUFF! Le impostazioni del materiale viste finora producono oggetti belli, levigati, uniformi. Ovviamente, tali oggetti non sono veri nella realtà, dove le difformità sono più frequenti. Blender tiene conto di tali difformità, sia nel colore, nel potere riflettente e di specularità, nella rugosità, e così via, tramite le texture.

Le Textures dal Punto di Vista del Materiale In Blender, i Materiali e le Textures formano blocchi separati al fine di semplificare l'interfaccia e consentire un'integrazione uni-

141

Capitolo 10. Materiali e Textures versale tra blocchi Textures, blocchi Lampade, blocchi World (Mondo). La relazione tra un Materiale ed una Texture, detta 'mappatura' [mapping], è a due vie. Primo, deve essere fornita l'informazione sulla Texture. Quindi viene applicato l'effetto della Texture sul Materiale. Il pannello Texture sulla destra (ed esistono pannelli simili per le pulsantiere delle Luci e del Mondo [World]) definisce tutti questi calcoli. Per un materiale senza texture il pannello mostra una colonna di otto canali di texture vuoti (Figura 11-1), selezionandone uno e premendo Add New o selezionando una texture esistente con la Pulsante Menù subito a destra (Figura 11-2) si aggiunge una texture ed il Pannello mostra altre due fincature [tabs]: Map Input e Map To. I pulsanti dei Tabs sono organizzati nella sequenza con cui viene eseguito lo 'incanalamento della texture' [texture pipeline]. Figura 11-1. I Canali della Texture.

Ciascun canale ha la propria mappatura. Normalmente, le textures vengono eseguite una dopo l'altra e quindi sovrapposte. Alla fine, l'aggiunta di un secondo canale di Texture può completamente rimpiazzare il precedente! Accanto a ciascun canale di texture non vuoto un pulsante di controllo [check] consente di selezionare o de-selezionare un dato canale. I canali de-selezionati vengono semplicemente rimossi dall'incanalamento [pipeline]. Figura 11-2. Blocco di selezione della texture.

La stessa Texture è identificata dal proprio nome, che è possibile modificare nel Pulsante Testo sopra il Pulsante Menù di selezione della Texture. Figura 11-3. Immissione della Coordinata del Materiale.

La Figura 11-3 mostra il pannello Map Input. Ciascuna Texture ha una coordinata 3D (la coordinata della texture) come input. I valori, passati alla texture come coordinate per ciascun pixel dell'immagine resa nel rendering riguardanti un dato materiale, vengono calcolate secondo questi pulsanti: Usa un tipo speciale di mappatura detta mappatura 'UV'. Questa è utile specialmente quando si usano delle immagini come textures, così come mostrato nella sezione Editor UV e Selezione di Facce.

• UV

Usa un Oggetto come sorgente delle coordinate; di solito una Empty. Il nome dell'oggetto deve essere indicato nel pulsante testo sulla destra. Questo è il modo preferibile per porre una piccola immagine come logo o altro in un dato punto sull'oggetto.

• Object

• Glob

Usa le coordinate 3D Globali di Blender.

• Orco

Usa le coordinate locali, originali, dell'Oggetto.

• Stick

Usa le coordinate locali, adesive [sticky], dell'Oggetto.

• Win

Usa le coordinate della finestra dell'immagine ottenuta dal rendering.

• Nor

Usa la direzione del vettore normale come coordinate.

• Refl

Usa la direzione del vettore di riflessione come coordinate.

142

Figura 11-4. Mappatura della texture.

Se la texture è un'immagine essa è 2D, e bisogna mapparla nello spazio 3D. Il modo più flessibile per farlo è con la mappatura UV, altrimenti vengono fornite quattro possibili mappature pre-impostate (Figura 11-4). Figura 11-5. Trasformazione delle coordinate.

Le coordinate X, Y e Z passate alla texture possono essere rimescolate per ottenere degli effetti speciali. I pulsanti nella Figura 11-5 consentono di scambiare X con Y o con Z e così via, o di eliminarle. Figura 11-6. Fattori di Scala e Scostamento [Offset] della coordinata della texture.

Le coordinate possono essere dimensionate e traslate assegnandovi uno scostamento [offset] (Figura 11-6). Figura 11-7. Inputs della texture.

Spostandosi nel tab Map To, la Figura 11-7 mostra le impostazioni di input della texture. I tre pulsanti determinano se la texture dovrebbe essere usata come uno Stencil (stampino) (una Maschera per i successivi canali di texture); Una texture Negative (negativa) (assegnando valori negativi, invece che positivi); o una texture in bianco e nero (No RGB), a sola intensità. I tre sliders sotto tali pulsanti definiscono il colore base della texture, che può essere sovrapposta [overridden] dalle indicazioni del colore insite nella definizione della texture. Finalmente l'ultimo slider definisce l'intensità dell'effetto della texture. Figura 11-8. Outputs della texture.

La Figura 11-8 mostra i pulsanti interruttori che determinano quali caratteristiche del materiale influenzeranno la texture. Alcuni di questi pulsanti sono pulsanti a tre stati, vuol dire che la texture può essere applicata come positiva o negativa. Tutti questi pulsanti sono indipendenti. • Col

(on/off) Usa la texture per alterare il colore del Materiale.

(off/positivo/negativo) Usa la texture per alterare la direzione della normale locale. Questo viene usato per simulare delle imperfezioni della superficie o irregolarità tramite mappatura di ruvidità [bump mapping].

• Nor

• Csp

(on/off) Usa la texture per alterare il colore Speculare.

• Cmir

(on/off) Usa la texture per alterare il colore Riflesso.

• Ref, Spec, Hard, Alpha, Emit

(off/positivo/negativo) Usa la texture per alterare il corrispondente valore del

Materiale.

143

Capitolo 10. Materiali e Textures Figura 11-9. Impostazioni dell'output.

Le impostazioni dell'output (Figura 11-9) determinano l'intensità dell'effetto dell'output della Texture. È possibile la miscelazione con un valore standard, l'inclusione, la sottrazione e la moltiplicazione. Le textures forniscono tre tipi di output: •

Texture di RGB: restituiscono tre valori, che riguardano sempre il colore.



Textures di Rugosità [Bump]: restituiscono tre valori, che riguardano sempre il vettore normale. Solo le texture "Stucci" e "Immagine" possono dare normali.



Textures di Intensità: restituiscono un singolo valore. Questa intensità può controllare, per esempio, la "Alfa", o determinare l'intensità di uno specifico colore utilizzando i pulsanti di mappatura.

Si possono regolare separatamente le intensità di queste impostazioni usando i relativi sliders (Figura 11-9).

Le Textures Una volta aggiunta una nuova texture al materiale, essa può essere definita spostandosi nella Pulsantiera della Texture (F6) o nel sub-contesto del contesto Shading per ottenere la Figura 11-10. Figura 11-10. I Pulsanti della Texture.

Una nuova Pulsantiera, vuota presenta due pannelli: uno di Preview (anteprima) della Texture ed un pannello Texture, quest'ultimo con due tabs. Nel pannello Preview degli interruttori definiscono se questa è una texture Materiale, Luce o World, ed un pulsante Default Var consente di ripristinare i parametri della texture ai valori di default. Il tab Texture riproduce i canali di texture ed il Pulsante Menù della Texture del Materiale collegato. Le due colonne di Interruttori selezionano il tipo di Texture. Il pulsante Image fa sì che venga caricata ed utilizzata un'immagine come texture (Il primo pulsante è semplicemente "no texture"). Il terzo pulsante permette di usare un tipo molto speciale di texture, la Mappa Ambientale [Environment Map] (EnvMap). L'ultimo pulsante (Plugin) consente di caricare un pezzo di codice esterno per definire la texture. (Questi tre pulsanti sono piuttosto singolari e saranno trattati separatamente nel seguito). Appena scelto il tipo di texture appare un nuovo Pannello, con un nome adeguato al tipo della texture, dove si possono impostare i parametri della texture. I restanti pulsanti definiscono le texture procedurali 3D, che sono textures definite matematicamente. Sono generalmente più semplici da usare, e daranno dei risultati eccezionali una volta conosciute. Ne sarà descritto solo uno di questi, il pulsante Wood, lasciando al lettore le ulteriori indagini. (Il capitolo sui riferimenti in questo libro contiene tutti i dettagli per ciascuno). Wood è una procedurale, significa che ciascuna coordinata 3D può essere trasformata direttamente in un colore o un valore. Que-

sti tipi di textures sono 'vere' 3D. Questo vuol dire che combaciano perfettamente ai bordi e continuano ad apparire come apparirebbero se fossero state tagliate; come se un blocco di legno sia stato realmente tagliato in due. Le texture non vengono filtrate né anti-scalettate [anti-aliased]. Questo è un piccolo problema: l'utente può facilmente mantenere le frequenze indicate entro certi limiti.

144

Una texture procedurale può produrre sia textures colorate che texture di sola intensità. Se vengono usate quelle a sola intensità il risultato è una texture in bianco e nero, che può essere molto migliorata con l'uso delle bande di colore [colorbands]. La banda di colore è uno strumento spesso trascurato nel tab Colors del Pannello Texture che fornisce un livello impressionante di controllo su come le textures procedurali vengano elaborate dal rendering. Invece di partecipare semplicemente al rendering ciascuna texture ha una progressione lineare da 0.0 a 1.0, si può usare la banda di colore per creare un gradiente che procede attraverso tutte le variazioni di colore e di trasparenza (alfa) desiderate (Figura 11-11). Figura 11-11. La Banda di Colore [Colorband] della texture.

Un uso esperto delle bande di colore porta a delle texture realmente ottime di marmo e nuvole. Per usarle, si seleziona una texture procedurale, come una Wood [legno]. Click sul pulsante Colorband . La Colorband è l'editor del gradiente di Blender. Ciascun punto sulla banda può essere posto in ogni locazione e gli si può assegnare qualsiasi colore e trasparenza. Blender interpolerà i valori tra un punto ed il successivo. Per usarla, si seleziona il punto da modificare col pulsante numerico Cur:, quindi si aggiungono ed eliminano punti coi pulsanti Add e Del. Vengono mostrati i valori RGB ed Alfa del punto corrente, assieme alla posizione del punto sulla banda. Si trascina col mouse sinistro per cambiare la posizione del punto corrente. Si possono usare due texture Wood per creare disposizioni circolari in due scale diverse, ciascuna delle quali avrà effetti diversi sull'aspetto del legno. Le texture Wood sono identiche ad eccezione del modo con cui sono mappate nella pulsantiera del materiale, e nelle diverse bande di colore usate. Si userà anche una texture Clouds [nube] per creare un effetto granuloso. Per vedere il risultato di una sola texture, isolata dalle altre, ci si ricordi dei pulsanti di controllo [Check] nel Pannello Texture della pulsantiera del Materiale. Figura 11-12. Copia ed Incolla delle Textures.

Copiare le impostazioni della texture: Aggiungendo una texture esistente la si collega, ma tutti i parametri della mappatura del Materiale restano come sono. Per copiare tutte le impostazioni della texture, incluse le mappature, bisogna copiare un dato canale di texture ed incollarlo in un altro usando i due pulsanti freccia di Figura 11-12.

La Figura 11-13, la Figura 11-14 e la Figura 11-15 mostrano le tre singole textures che, una volta combinate in un solo materiale e mappate secondo i vari parametri creano una bella texture del legno (Figura 11-16). Figura 11-13. La prima texture di anelli del Legno (Wood).

145

Capitolo 10. Materiali e Textures Figura 11-14. La seconda texture di anelli del Legno (Wood).

Figura 11-15. La texture Clouds [nuvole].

Figura 11-16. Il risultato finale.

La Texture Immagine La texture Immagine è la sola vera texture 2D, ed è quella usata più frequentemente e la più avanzata tra le textures di Blender. Il filtro standard incorporato della mappa di rugosità [bump mapping] e quello della mappa di scostamento [mip-mapping] corretta in prospettiva, e l'anti-scalettatura [anti-aliasing] garantiscono immagini eccezionali (per questo si imposta OSA a ON nella Pulsantiera Display). Dato che i disegni sono bidimensionali, il modo in cui le coordinate della texture 3D vengono trasformate in 2D devono essere indicate nella pulsantiera mapping (mappatura) (Figura 11-4). Le quattro mappature standard sono: Flat, Cube, Tube e Sphere. A seconda della forma dell'oggetto da ricoprire, è utile uno di questi tipi.

146

Figura 11-17. Mappatura piatta [Flat].

La mappatura Flat (piatta) (Figura 11-17) dà i risultati migliori su singole facce piane. Essa produce effetti interessanti sulla sfera, ma in confronto alla sfera con mappatura sferica il risultato appare piatto. Sulle facce esterne al piano di mappatura viene ripetuto l'ultimo pixel della texture, cosa che produce strisce sul cubo e sul cilindro. Figura 11-18. Mappatura Cubica.

La mappatura cubica [cube-mapping] (Figura 11-18) dà spesso i risultati più utili quando gli oggetti non sono troppo curvi o organici (si noti la cucitura sulla sfera). Figura 11-19. Mappatura Tubolare.

La mappatura tubolare [tube-mapping] (Figura 11-19) avvolge la texture attorno ad un oggetto come un'etichetta su una bottiglia. La texture risulta quindi più distesa sul cilindro. Questa mappatura ovviamente è ottima per creare l'etichetta di una bottiglia o

147

Capitolo 10. Materiali e Textures fissare cartellini ad oggetti arrotondati. Tuttavia, questa non è una mappatura cilindrica quindi le estremità del cilindro sono indefinite. Figura 11-20. Mappatura Sferica.

La mappatura sferica [sphere-mapping] (Figura 11-20) è il tipo migliore per mappare una sfera, ed è perfetta per creare un pianeta e cose simili. Spesso è utile per creare oggetti organici. Produce anche effetti interessanti su un cilindro. Spostare una texture: Come descritto nella sezione precedente si può maneggiare la texture nella parte texture della pulsantiera del Materiale. Lì ci sono le più importanti funzionalità per gestire le textures. Quando si seleziona un oggetto e si preme TKEY, si ottiene la possibilità di dimensionare e spostare visivamente lo spazio della texture, ma non di ruotare la texture. La mappatura della coordinata dell'Oggetto resta comunque molto flessibile.

Mappe Ambientali A partire da Blender v2.31 Le superfici lucide generate da Blender mostrano delle evidenze speculari. Il fatto ironico su questi ombreggiatori speculari, tuttavia, è che sono sensibili solo alle luci. Nello specifico, gli ombreggiatori speculari mostrano le superfici con un punto brillante come una riflessione speculare di una lampada. Tutto questo ha senso eccetto che se si gira la telecamera direttamente verso la lampada non la si vede! La telecamere vede questa luce solo se è riflessa da un ombreggiatore speculare, non direttamente. D'altra parte, gli oggetti che appaiono molto brillanti nella scena (che riflette tantissima luce verso la telecamera) ma che non sono lampade non mostrano queste rilevanze. È abbastanza facile fare una lampada che sia direttamente visibile alla telecamera ponendo qualche oggetto visibile che appaia come qualche tipo adatto di lampada fissa, fiamma, sole, e così via. D'altra parte, non ci sono dei rimedi immediati al fatto che gli oggetti circostanti non appaiono nel rilievo speculare. In una parola, scarseggiano le riflessioni. Questo è il tipo di problema su cui si punterà usando la tecnica della mappatura ambientale. Proprio come si effettua il rendering della luce che raggiunge il piano di vista usando la telecamera per definire un punto di vista, si può effettuare il rendering della luce che raggiunge la superficie di un oggetto (e quindi, la luce che può in fondo essere riflessa verso la telecamera). La mappatura ambientale di Blender effettua il rendering di una mappa dell'immagine cubica della scena nelle sei direzioni cardinali da qualsiasi punto. Quando i sei tasselli dell'immagine vengono mappati in un oggetto usando le coordinate di input Refl, creano la complessità visiva che gli occhi si aspettano di vedere dalla riflessione su superfici lucide. Nota: È utile ricordare che il vero obiettivo di questa tecnica è la credibilità, non l'accuratezza. Gli occhi non hanno bisogno di una simulazione fisicamente precisa del viaggio della luce; necessitano solo di essere portati a credere che la scena sia reale mostrando la complessità che si aspettano. La cosa meno credibile delle immagini ottenute dal rendering è la sterilità, non l'imprecisione.

Il primo passo da seguire nella creazione di una mappa ambientale consiste nel definire il punto di vista per la mappa. Per comin-

148

ciare, si aggiunge una empty alla scena e la si pone nella posizione speculare alla telecamera rispetto alla superficie riflettente. (Questo è possibile, a rigor di termini, solo per superfici di riflessioni piane). Idealmente, la posizione dell'empty dovrebbe essere speculare alla posizione della telecamera tra il piano del poligono in cui sarà mappata. Sarebbe ridicolmente difficile creare una mappa ambientale dettagliata diversa per ogni poligono di una mesh, quindi ci si avvantaggerà del fatto che l'occhio umano è molto credulone. In particolare, per oggetti relativamente piccoli e complessi, si può rimediare ponendo l'empty verso il centro. Si nomina l'empty env in modo che ci si potrà riferire tramite il nome nelle impostazioni della mappa ambientale. Si creerà una sfera riflettente su un piano riflettente, usando le impostazioni indicate in Figura 11-21. Figura 11-21. Esempio di utilizzo della Mappa Ambientale.

Si noti che la Empty 'env' è posta esattamente sotto la telecamera, ad una distanza dal piano riflettente pari a 3 unità Blender, che è uguale all'altezza della telecamera sullo stesso piano. Ora, si posizionano delle luci, si lascia la sfera senza un materiale preciso, e si sposta il piano su un diverso livello [layer]. Per esempio, tutto sul livello 1, ad eccezione del piano che viene posto sul livello 2. Si dà al piano un materiale con bassi Ref e Spec e si aggiunge una texture sul canale due con i parametri della Figura 11-22. Figura 11-22. Il materiale del piano riflettente.

Si noti sia la mappatura di Refl che l'effetto Cmir. Si usa il canale 2 e non l'1 perché il canale 1 sarà necessario in seguito nell'esempio.

149

Capitolo 10. Materiali e Textures Figura 11-23. Le impostazioni della Mappa Ambientale del piano riflettente.

Ora si definisce la texture appena assegnata come una EnvMap nella Pulsantiera della Texture (F6) (Figura 11-23). Nel Pannello Envmap, si noti il campo Ob: contenente il nome dell'Empty rispetto a cui verrà calcolata la Mappa Ambientale. Si noti anche la risoluzione del cubo con cui sarà calcolata la Mappa ambientale e, più importante, i pulsanti Don't render layer: (Non effettuare il rendering del livello). Dato che la Mappa ambientale viene calcolata dalla posizione dell'Empty, essa deve avere una vista senza ostacoli della scena. Dato che il piano riflettente potrebbe nascondere totalmente la sfera, questi deve essere posto sul proprio livello che deve essere marcato come 'Da non portare nel rendering' [Not renderable] per il calcolo della Mappa Ambientale. Premendo F12 inizia il processo del rendering. Prima, vengono calcolate le sei diverse immagini quadrate che costituiscono la Mappa ambientale, in seguito viene prodotta l'immagine finale, della sfera riflessa sul piano. Figura 11-24. La sfera su una superficie riflettente.

Per aggiungere ulteriori attrazioni visive alla scena, si aggiunge una grande sfera che racchiude l'intera scena e si mappa un'immagine del cielo su di essa per simulare un mondo reale e nuvoloso. Quindi si aggiunge una nuova Empty al centro della Sfera e si sposta la Sfera sul Livello 3. Quindi, si dà una Mappa Ambientale alla sfera esattamente come si è fatto per il piano (ma questa volta è il livello 3 a non dover essere incluso nel rendering!). Ora si aggiungono dei cilindri, per rendere l'ambiente ulteriormente interessante, e, prima di premere F12 si torna alla texture del piano e si preme il pulsante Free Data. Questo obbligherà Blender a ricalcolare la Mappa Ambientale per il nuovo, diverso, ambiente. Questa volta nel processo del rendering saranno calcolate dodici immagini, sei per ciascuna Mappa Ambientale. Il risultato è in Figura 11-25. La sfera è più lucente del piano a causa delle impostazioni del materiale leggermente diverse.

150

Figura 11-25. sfera riflettente su una superficie riflettente.

Ma un momento, c'è un problema! La sfera riflette il Piano, ma il Piano riflette una Sfera grigio scura! Questo avviene perché la Mappa ambientale del Piano viene calcolata prima della Mappa Ambientale della sfera. In questo modo, quando viene calcolata la sfera resta grigio scura, mentre quando viene calcolata la Mappa ambientale della Sfera il piano ha già la sua Riflessione. Per porvi rimedio si individua il Pulsante Numerico Depth nel pannello Envmap della pulsantiera della Texture e lo si imposta 1 sia per il la mappa ambientale del plano che per quella della sfera. Questo impone il calcolo ricorsivo delle Mappe Ambientali. Viene calcolata ciascuna Mappa Ambientale, quindi esse vengono ricalcolate tante volte quante indicato in 'Depth', sempre una dopo l'altra. Il risultato per questa soluzione è la Figura 11-26. Figura 11-26. Una sfera riflettente su una superficie riflettente con riflessioni multiple.

Ora, se ci si sta ancora chiedendo perché il primo canale della texture del materiale del Piano è stato lasciato vuoto... Si aggiunge una nuova texture al primo canale del materiale del piano. Lo si rende Glob, regolando il Nor ad un'intensità di 0.25 (Figura 1127). Figura 11-27. Impostazione della texture aggiuntiva per la Mappa di Rugosità [Bump Mapping].

Questa nuova texture dovrebbe essere di tipo Stucci; regolata con un Noise Size sotto 0.15 o quasi. Se si effettua ora il rendering l'immagine del piano appare come acqua increspata (Figura 11-28).

151

Capitolo 10. Materiali e Textures Figura 11-28. La sfera riflettente su dell'acqua riflettente con riflessioni multiple.

Si deve avere la BumpMap su un canale precedente quello della Mappa Ambientale in quanto le textures vengono applicate in sequenza. Se si invertono i canali la riflessione apparirebbe interrotta dalle onde. Si può salvare una Mappa Ambientale per usarla in seguito o per caricarla col pulsante adatto nella Pulsantiera della Texture. Si può anche costruire la propria mappa ambientale. Lo standard consiste nel porre sei immagini mappate su un cubo su due righe di tre immagini ciascuna, come in Figura 11-29. Figura 11-29. La Mappa Ambientale così come viene salvata.

Blender consente tre tipi di mappe ambientali, come si può vedere in Figura 11-23: • Static

- La mappa viene calcolata una sola volta durante un'animazione o dopo il caricamento di un file.

- La mappa viene calcolata ogni volta che si effettua un rendering. Questo vuol dire che gli Oggetti in movimento appaiono correttamente su una superfici riflettenti.

• Anim

- Quando sono state salvate come immagini, le mappe ambientali possono essere ricaricate dal disco. Tale opzione consente un rendering con le mappe ambientali più veloce.

• Load

Nota: Si può animare l'acqua dell'esempio precedente impostando una IPO per i valori di ofsX e ofsY della posizionamento della texture nella Pulsantiera del Materiale. Effettuando il rendering l'animazione apparirebbe con le increspature della superficie in movimento, con la riflessione che cambia di conseguenza! Nota: Bisogna calcolare la Mappa Ambientale sul Piano una volta sola all'inizio se non si muove nient'altro! Quindi essa può essere static. La Mappa Ambientale sulla sfera è un'altra questione, dato che non rifletterà i cambiamenti delle riflessioni nell'acqua a meno che non sia calcolata per ciascun frame dell'animazione. Quindi essa dovrebbe essere di tipo Anim.

Se è la telecamera il solo oggetto in movimento e si ha un piano riflettente, anche l'Empty deve spostarsi e si devono usare Mappe Ambientali Anim. Se l'oggetto è piccolo e la Empty è nel suo centro, la Mappa ambientale può essere Static, anche se l'oggetto stesso ruota dato che l'Empty non si sposta. Se, d'altra parte, l'Oggetto trasla la Empty dovrebbe seguirlo e la Mappa Ambientale essere del tipo Anim. Le altre regolazioni sono: • Filter:

- Con questo valore si può regolare la nitidezza o la messa a fuoco della riflessione.

152

• Clipsta, ClipEnd

- Questi valori definiscono la delimitazione nell'effettuare il rendering delle immagini di una mappa

ambientale. Nota: Il calcolo della Mappa Ambientale può essere disabilitato ad un livello globale dal Pulsante Interruttore EnvMap nel Pannello Render della Pulsantiera del Rendering.

Displacement Maps TO BE WRITTEN

Vetro Pieno e Vetro Cavo A partire da Blender v2.31 Il vetro ed i materiali trasparenti sono generalmente trucchi del rendering in quanto essi subiscono la rifrazione; vale a dire, la curvatura dei raggi di luce dovuta alla diversa densità ottica, o indice di rifrazione dei vari materiali. Sfortunatamente, per tenere in conto appieno della rifrazione è obbligatorio un ray tracer (inseguitore di raggio). Tuttavia, si possono produrre dei risultati convincenti in Blender usando le Mappe Ambientali e le tecniche avanzate delle Texture. Si consideri una scena con qualche geometria elementare tra cui un cubo, un cono, una sfera ed un toro. Come primo esempio si farà apparire la sfera come una palla di vetro piena e, come un secondo esempio, tale sfera diventerà una bolla di vetro. Per creare questo effetto, bisogna fare in modo che la luce sembri che si pieghi passando attraverso la sfera, dato che ci si aspetterebbe che gli oggetti dietro la sfera di vetro piena appaiano molto contorti, come se attraversassero una vera lente spessa. D'altra parte, il centro della sfera di vetro cavo dovrebbe essere quasi trasparente mentre i bordi dovrebbero deflettere la luce.

Vetro Pieno 1. Per iniziare, si imposta una mappa ambientale per il materiale della sfera proprio come si è fatto per la palla nella sezione precedente, con un empty che localizza la prospettiva della Mappa Ambientale al centro della sfera. 2. Per simulare la Rifrazione si regola l'output della mappatura con gli slider ofsZ, sizeX, sizeY, sizeZ e Col per curvare la mappa in modo da creare l'effetto della rifrazione. Per fare ciò, si usano le impostazioni in Figura 11-30. Figura 11-30. Impostazioni della Mappa Ambientale per simulare la rifrazione.

3. Si selezionano gli slider RGB Mir del materiale e si abbassano un po' R e G per dare alla texture un colore blu. (L'esperienza con le idiosincrasie di Blender nel gestire i colori degli specchi dettano questo approccio poco intuitivo nel combinare mappe ambientali di riflessione con quelle di rifrazione in un solo materiale). 4. Ad ogni modo si abbassa lo slider Ref. (Figura 11-31). Ora si dovrebbe aver prodotto una rifrazione azzurrina dell'ambiente.

153

Capitolo 10. Materiali e Textures Figura 11-31. Le impostazioni del Materiale

5. Anche il vetro lucido necessita di una mappa di riflessione, quindi si posizionerà la stessa texture in un altro canale di texture. Si premono i pulsanti Add, Col, ed Emit, e si usa il pulsante Refl per le coordinate. Si rende il colore (Color) del materiale nero e si attiva comunque Emit. (Figura 11-32). Figura 11-32. La Mappa di Riflessione.

6. Questo modifica considerevolmente la prima texture. Al fine di restituire alla texture di rifrazione una bella tinta blu, si deve aggiungere una nuova texture, lasciare il tipo di texture impostato a None. Selezionare i pulsanti Mix e Cmir, e regolare lo slider Col a circa metà. Si clicca sul pulsante Neg e si impostano gli sliders RGB di input della texture ad un blu scuro (Figura 11-33). Figura 11-33. Il tocco finale.

Il risultato finale dovrebbe apparire come la Figura 11-34. L'effetto della rifrazione è più evidente quando la scena è animata.

154

Figura 11-34. Il Rendering

Vetro Cavo La procedura descritta sopra funziona bene per un blocco di vetro pieno, ma come fare per produrre l'apparenza di un vetro cavo, come un vaso? Il vetro sottile ha una riflessione marcata solo dove si inclina dall'occhio di un angolo ripido. Si può facilmente simulare questo effetto usando la texture Blend di Blender per controllare la trasparenza dell'oggetto, ed un'altra texture di trasparenza per contenere i picchi luminosi visibili. 1. Si aggiunge una nuova texture al materiale. Si seleziona Blend come tipo e si seleziona l'opzione Sphere. 2. Si torna nella pulsantiera del materiale. Si seleziona Nor come tipo di mappatura, e si disabilitano gli assi X e Y delle coordinate di input. 3. Si miscela (Mix) la texture con Alpha, quindi si sposta lo slider Alpha del materiale a 0.0 e si attiva l'opzione ZTransp (Figura 11-35). Figura 11-35. Le impostazioni della trasparenza.

Questo produce l'effetto di una bella trasparenza con l'andare dell'angolo della superficie verso l'occhio, ma si vuole che la riflessione mappata nell'ambiente della luminosità appaia su quelle aree che normalmente apparirebbero trasparenti. Per esempio, se si guarda una finestra di vetro, si vedrà che sono visibili i bagliori di luce riflessi dalla superficie, prevenendo la visione attraverso il vetro che altrimenti sarebbe trasparente. Si può produrre facilmente tale effetto selezionando la texture di riflessione mappata nell'ambiente nella finestra del materiale ed abilitando l'opzione Alpha (Figura 11-36).

155

Capitolo 10. Materiali e Textures Figura 11-36. Impostazioni delle Riflessioni.

Questo è tutto quello che serve. Il risultato dovrebbe assomigliare alla Figura 11-37. Figura 11-37. Vetro Cavo.

Editor UV e Selezione di Facce A partire da Blender 2.33

Introduzione La Mappatura UV [UV mapping] è un modo per mappare l'immagine di una texture 2D su modelli 3D. Può essere usata per applicare texture a forme arbitrarie e complesse, come teste umane o animali. Spesso queste texture sono immagini disegnate, create in applicazioni come The Gimp, Photoshop, o altri programmi di disegno. Le procedurali come visto nei capitoli precedenti costituiscono un buon modo per applicare texture ad un modello. Quello che c'è di veramente buono è che 'riempiranno' sempre. Le immagini 2D non sempre riempiono forme 3D. La creazione di materiali procedurali è relativamente semplice, e fornisce un modo rapido per avere dei buoni risultati. D'altra parte, ci sono casi in cui questo tipo di texture non è sufficientemente buono. Per esempio, la pelle su una testa umana non apparirà molto adatta se generata proceduralmente. Le rughe su una testa umana, o i graffi su un'auto non capitano in posti casuali, ma dipendono dalla forma del modello e dal suo uso. Le immagini disegnate manualmente danno all'artista il pieno controllo del risultato finale. Mentre giocherellando con degli slider numerici, gli artisti saranno in grado di controllare ogni pixel sulla superficie. Questo vuol dire più lavoro, ma porterà alla fine ad immagini migliori. Una mappa UV viene usata per assegnare una parte di un'immagine ad un poligono nel modello. A ciascun vertice del poligono vengono assegnate delle coordinate 2D che definiscono quale parte dell'immagine debba mappare. Queste coordinate 2D sono dette UV (le si confronti con le coordinate 3D XYZ). L'operazione di generare tali mappe UV è detta anche "unwrap" (disfare, scucire), dato che è come se si stendesse la mesh su un piano 2D.

156

Suggerimento: La mappatura UV è essenziale anche nel game engine di Blender, o qualsiasi altro videogioco. Essa è lo standard di fatto per applicare le texture ai modelli; quasi tutti i modelli che si trovano nei videogiochi sono mappati UV.

L'Editor UV La Mappatura UV viene eseguita in Blender all'interno della finestra dell'Editor UV ed una modalità speciale nella finestra 3D detta Modo Selezione di Facce [Face Select]. L'Editor UV consente di mappare texture direttamente nelle facce delle mesh. Ciascuna faccia può avere delle proprie coordinate di texture ed una propria immagine assegnata, e può essere combinata con la colorazione dei vertici [vertex colors] per rendere la texture più chiara o più scura o per imprimerle un dato colore. Usando l'editor UV ciascuna faccia della Mesh acquisisce altre due caratteristiche: •

Quattro Coordinate UV - Queste coordinate definiscono il modo in cui un'immagine o una texture è mappata (posizionata) nella faccia. Sono coordinate 2D, ed il motivo per cui sono dette UV è per distinguerle dalle coordinate XYZ. Tali coordinate possono essere utilizzate per il rendering o per la visualizzazione in tempo reale con OpenGL.



Un collegamento [link] ad un'Immagine - Ogni faccia in Blender può avere un collegamento ad una diversa immagine. Le Coordinate UV definiscono come tale immagine sia mappata nella faccia. Tale immagine può partecipare al rendering o apparire in tempo reale.

Una finestra 3D deve essere in Modo Face Select (Selezione di Facce) per essere in grado di assegnare immagini o cambiare le Coordinate UV di un Oggetto Mesh attivo. Prima di tutto si aggiunge un Oggetto Mesh alla Scena, si entra in Selezione di Facce scegliendo la voce UV Face Select nel menù Mode (Figura 11-38). Figura 11-38. Il pulsante col triangolo arancione: il Modo Selezione di Facce UV [UV Face Select] nell'intestazione della Finestra 3D.

La Mesh ora verrà disegnata Z-buffered. Se si entra nel modo di disegno con Texture (ALT-Z, detto anche "Modo a Patata") si vedrà la Mesh disegnata in bianco, fatto che indica che attualmente non c'è alcuna immagine assegnata a queste facce. Si può controllare il modo in cui le facce sono disegnate usando i pulsanti Draw Edges e Draw Faces nel Pannello UV Calculation. se è attivato Draw Edges tutte le facce verranno disegnate in evidenza. Con Draw Faces attivato, tutte le facce selezionate appariranno in rosa chiaro. Si preme AKEY e tutte le facce della Mesh verranno selezionate ed evidenziate da linee punteggiate. Le facce si possono selezionare con RMB, o con la Selezione Delimitata [BorderSelect] (BKEY) nella finestra 3D. Se si hanno problemi con la selezione delle facce desiderate, si può anche entrare in Modo Edit e selezionare i vertici voluti. Dopo aver lasciato il Modo Edit dovrebbero risultare selezionate anche le facce definite dai vertici selezionati. Solo una faccia è attiva. O, in altre parole: la Finestra Immagine mostra solo l'immagine della faccia attiva. Come al solito in Blender solo l'ultima faccia selezionata è attiva e la selezione si effettua con RMB. Si cambi una finestra in una Finestra Immagine/Editor UV con SHIFT-F10. Qui si può caricare o cercare un'immagine col pulsante Load. Le immagini devono essere multiple di 64 pixel (64x64, 128x128 ecc.) per essere in grado di apparire in tempo reale (nota: la maggior parte delle schede 3D non supporta immagini più grandi di 256x256 pixel). D'altra parte, Blender può effettuare il rendering di tutte le immagini assegnate prescindendo dalla dimensione quando si creano diapositive o animazioni.

157

Capitolo 10. Materiali e Textures Figura 11-39. La Finestra 3D e la Finestra Immagine/Editor UV.

Caricando un'immagine in Selezione di Facce [FaceSelect] si assegna automaticamente l'immagine alle facce selezionate. Si può osservare immediatamente ciò nella finestra 3D (quando si è in Modo Vista Texture).

Strumenti per Scucire [Unwrapping] Nella finestra 3D, si può premere UKEY in Modo Selezione di Facce [FaceSelect] per avere un menù per calcolare le Coordinate UV per le facce selezionate (Figura 11-40). Questa operazione viene detta "unwrap" (scucire), dato che è come se la mesh venisse spiegata su un piano 2D. Si può eseguire una scucitura anche usando il Pannello UV Calculation nella Pulsantiera di Edit. Tale pannello fornisce anche un controllo migliore del processo di scucitura. Figura 11-40. UV pre-impostate.

Gli algoritmi di mappatura UV disponibili sono: •

Cube - Questo determina una mappatura cubica.



Cylinder, Sphere - Mappatura Cilindrica/sferica, calcolata dal centro delle facce selezionate.



Bounds to 1/8, 1/4, 1/2, 1/1 - Le Coordinate UV vengono calcolate usando la proiezione così come appare nella finestra 3D, quindi ridotte di una data frazione dell'immagine della texture.



Standard 1/8, 1/4, 1/2, 1/1 - Ciascuna faccia assume un insieme di Coordinate quadrate di default che vengono ridotte della frazione richiesta dell'immagine della texture.



From Window - Le Coordinate UV vengono calcolate usando la proiezione mostrata nella finestra 3D.



LSCM - Le Coordinate UV vengono calcolate usando l'algoritmo Least Square Conforming Maps (Mappe Conformi al

158

Quadrato Minimo). Si usa assieme alla marcatura (definizione) delle cuciture. Nel Pannello UV mapping (Figura 11-41), si può regolare il modo in cui si effettua la mappatura e come debba apparire nella finestra 3D quando il modello è in Modo Selezione di Facce [Face Select]. Con 'View Aligns Face' abilitato, la scucitura Cilindrica e Sferica viene effettuata dalla vista. La vista si suppone essere di fronte al Cilindro/Sfera, con i cerchi in alto ed in basso della vista. Il Cilindro/Sfera viene 'tagliato' in un apposito lato della vista. Size e Radius definiscono il ridimensionamento della mappa quando si usa la mappatura Cube o Spherical/Cilindrical rispetti-

vamente. Con 'VA Top' (Allinea la vista in Alto [View Aligns Top]) abilitato, la vista deve guardare attraverso il Cilindro/Sfera. Viene tagliata nella parte alta della vista. Se è abilitato 'Al Obj', il Cilindro/Sfera viene ruotato in base alla rotazione dell'Oggetto. Con 'VA Top' abilitato, 'Polar ZX' e 'Polar ZY' definiscono come la vista debba ruotare rispetto ai poli.

Figura 11-41. Pannello UV mapping.

Draw Edges e Draw Faces nel Pannello attivano la visualizzazione dei bordi e delle facce nella Finestra 3D mentre si è in

Modo Selezione di Facce [Face Select]. Le facce selezionate in questo modo verranno disegnate in viola trasparente (o il colore del tema), simile al Modo Edit. Il disegno delle Cuciture [Seams] in Modo Edit ed in Modo Selezione di Facce può essere scambiato con Draw Seams. I colori delle cuciture possono essere anche cambiati nelle scelte dei Temi.

Modifica delle Coordinate UV Nell'Editor UV si vedrà una rappresentazione delle facce selezionate come vertici gialli o viola connessi con linee punteggiate. Si possono usare le stesse tecniche qui delle Mesh in Modo Edit per selezionare, spostare, ruotare, dimensionare e così via. Col pulsante Lock si potrà vedere in tempo reale il risultato in 3D di ciò che si sta facendo. Dimensionamento e Traslazione dei vertici possono essere fatti secondo gli assi locali X e Y della mappa se necessario. Basta premere XKEY o YKEY dopo aver immesso il comando di dimensionamento (SKEY). È disponibile anche lo Strumento di Modifica Proporzionale e funziona come nel Modo Edit delle mesh. Nell'Editor UV i vertici possono essere nascosti o mostrati usando HKEY e ALT-H rispettivamente, come nel Modo Edit. Nell'Editor UV sono disponibili diversi modi di selezione. Dato che un vertice viene disegnato nell'Editor per ciascuna faccia cui appartiene, talvolta è difficile dire se sono selezionati gli stessi vertici o no. Con Stick UVs to Mesh Vertex (Attacca le UV al vertice della Mesh) abilitato, un click con RMB selezionerà non solo un vertice UV, ma anche tutti i vertici UV che appartengono allo stesso vertice della mesh. Questa modalità si può usare anche se non è attivata nel menù, tenendo premuto CTRL durante la selezione di un vertice. Stick Local UVs to Mesh Vertex (Attacca le UV Locali al vertice della Mesh) funziona allo stesso modo, ma seleziona solo le UV 'connesse', ovvero che rientrino nel raggio di 5 pixel della prima UV selezionata. Tale modalità si può usare anche se non è impostato come default, tenendo premuto SHIFT mentre si seleziona un vertice. Tali scelte vengono alternativamente poste on/off premendo rispettivamente CTRL-C e SHIFT-C. Con 'Active Face Select' (Seleziona ed Attiva Faccia) abilitato, un click di RMB selezionerà una faccia, e la renderà attiva. Questo può essere posto on/off premendo CKEY. Per tutte e tre queste opzioni viene mostrata una speciale icona in basso a destra dell'Editor UV. Si noti che 'Active Face Select' e 'Stick UVs to Mesh Vertex' possono essere contemporanei. 'Unlink Selection' (Scollega Selezione) si baserà sulla selezione corrente, soltanto che lascia tali UV selezionate, e le cui facce

159

Capitolo 10. Materiali e Textures sono totalmente selezionate. Come dice il nome, questo è utile per scollegare le facce e spostarle altrove. Il tasto attivo è ALT-L. 'Select Linked UVs' (Seleziona le UV Collegate) funziona come 'Select Linked' nell'inquadratura [View] 3D. Selezionerà tutte le UV che sono 'connesse' alle UV attualmente selezionate. La differenza con l'inquadratura 3D è che nell'Editor UV, le UV sono connesse 'implicitamente'. Due UV sono considerate selezionate se la distanza tra esse non supera i 5 pixels. Il tasto attivo è LKEY. Il Modo Selezione Facce [Face Selection] nell'Editor UV si può selezionare premendo CKEY o utilizzando l'opzione Active Face Select UV nel menù Editor. Per indicare tale modalità apparirà una piccola icona nel lato in basso a sinistra dell'Editor. Diverse parti della mappa UV possono essere cucite se i vertici UV del bordo corrispondono agli stessi vertici della mesh utilizzando il comando Stitch (VKEY). Il comando di Sutura [Stitch] funziona unendo profili irregolari, basta selezionare i vertici sulla linea perimetrale utilizzando il Modo Stick UVs to Mesh Vertex, o in alternativa tenendo CTRL premuto durante la selezione in modo che vengano selezionati anche i vertici omologhi. Si possono unire UV che non corrispondono allo stesso vertice della mesh usando il comando Weld (Salda) (WKEY). Il comando Weld si può usare per allineare diversi vertici in X o Y. Dopo aver premuto WKEY si preme XKEY o YKEY per scegliere con quale asse si voglia allineare. Figura 11-42. Strumenti per la modifica delle UV.

Nella Toolbar della Finestra Immagine (Figura 11-42) i menù consentono l'accesso a queste e ad altre opzioni. Qualche suggerimento: •

Si preme RKEY nella finestra 3D per richiamare un menù per la rotazione delle Coordinate UV.



Talvolta è necessario spostare i files delle immagini in una nuova locazione dell'hard disk. Si preme NKEY nella Finestra Immagine per richiamare un menù Replace Image name (Sostituisci Nome dell'Immagine). Si può immettere al posto del nome della vecchia directory, quello nuovo. Premendo OK si modificano i percorsi [paths] di tutte le immagini in Blender che prima erano poste nella vecchia directory. (Nota: come nuova directory s usa il codice "//" per indicare la directory dove risiede il file Blender).



Si può anche usare simultaneamente Selezione di Facce [FaceSelect] e Colorazione di Vertici [VertexPaint] (VKEY). La colorazione dei vertici però funziona solo sulle facce selezionate. Questa funzionamento è utile soprattutto per dipingere facce come se non condividessero vertici. Si noti che i colori dei vertici vengono utilizzati per modulare la luminosità o il colore della texture immagine applicata.

Figura 11-43. Texture modulata dai Colori dei Vertici.

Scucitura [Unwrap] LSCM LSCM significa Least Square Conformal Map. Questo è un avanzato metodo matematico per creare automaticamente una mappatura UV mantenendo al minimo stirature e deformazioni della texture. Funziona preservando gli angoli locali. Proprio come qualsiasi altro modo di scucire le UV esistente, esso scucirà le facce selezionate in Modo Selezione Facce UV [UV Face Select].

160

Questo è disponibile sia premendo UKEY, e quindi scegliendo LSCM, che scegliendo LSCM Unwrap dal pannello UV Calculation. Per essere in grado di scucire correttamente una mesh con LSCM, bisogna essere sicuri che la mesh possa essere appiattita senza troppe deformazioni (in termini matematici, dovrebbe essere equivalente ad un disco). Questo viene fatto definendo cuciture, cioè luoghi dove la mesh verrà tagliata. Non c'è bisogno di aggiungere cuciture se la mesh può essere scucita (srotolata) direttamente su un piano. In Modo Edit, i bordi selezionati possono essere marchiati (segnati) o meno come cuciture usando CTRL-E. Spesso una mesh non può essere scucita come un unico gruppo di facce, ma deve essere tagliata in più gruppi. Se le cuciture dividono le facce selezionate in più gruppi di facce, allora l'LSCM le scucirà separatamente, posizionandole nell'Editor UV in modo che i gruppi di facce non si sovrappongano. Per una facile selezione dei gruppi di facce 'Select Linked' in Modo Selezione Facce UV (si preme LKEY) selezionerà tutte le facce collegate, se nessuna cucitura le divide. In questo modo, si può selezionare un gruppo di facce selezionandone una del gruppo, ed eseguendo Select Linked (Seleziona i Collegati). Per ritoccare ulteriormente il risultato, le UV nell'Editor UV possono essere spillate in una data posizione. Se viene eseguito l'LSCM, tali UV resteranno al loro posto, e la mappa UV risultante si adatterà alle UV bloccate. Nell'Editor UV, le UV si possono spillare o sbloccare premendo PKEY o ALT-P. Premendo EKEY nell'Editor UV si avvierà la scucitura LSCM delle facce visibili nell'Editor UV. Le UV spillate sono segnate in rosso.

Il rendering e le Coordinate UV Anche senza un'Immagine assegnata alle facce, si può effettuare il rendering delle texture utilizzando le Coordinate UV. Per questo, si usa il pulsante verde UV nel menù della Pulsantiera del Materiale (F5). Se si vuol effettuare il rendering anche delle texture di Immagini assegnate, bisogna premere il pulsante TexFace nei Pulsanti del Materiale. Combinando questo con l'opzione VertexCol si possono usare anche i colori dei vertici [vertex colors].

Scucire [Unwrapping] Suzanne A partire da Blender 2.34 di Claudio 'Malefico' Andaur Quando si ha a che fare con modelli complessi come i personaggi, il bisogno di ulteriori strumenti diventa evidente. Da Blender 2.34 sono stati incorporati diversi nuovi strumenti nel suo codice sorgente, come le Cuciture [Seams] ed il metodo LSCM per scucire. In questo tutorial, scuciremo completamente Suzanne per mostrare come si usa questo nuovo strumento.

Semplice come "scucire" Una mesh può essere organizzata per l'uso delle cuciture che forniscono un buon metodo per creare "Gruppi di Facce [Face Groups]" prima di scucirle. Questi "gruppi" sono solo un modo per dare un nome ad una selezione di facce, e non un'entità separata come lo sono i Gruppi di Vertici [Vertex Groups]. Le cuciture vengono create selezionando un anello [loop] di vertici in Modo Edit Mode e premendo CTRL-E o, usando i menù, selezionando Edge Menu->Mark Seam. Verrà disegnata una linea spessa continua nella finestra 3D mostrando la Cucitura [Seam] appena creata. È possibile visualizzare tale cucitura sia in Modo Edit che in Selezione di facce [Face Select] attivando l'opzione Draw Seams nei pulsanti di Edit. Una volta cha la cucitura è stata segnata, si può selezionare ciascun lato del modello in Modo Face Select, selezionando prima una faccia, e quindi premendo LKEY. tutte le facce connesse che sono isolate dal resto da questa cucitura verranno selezionate. Creando strategicamente le cuciture nel modello, si sarà in grado, in seguito, di lavorare con solo tale gruppo di facce, quindi semplificando il lavoro. L'ideale sarebbe poter marcare una cucitura ovunque si voglia una mappa UV per avere dei "tagli". Per esempio per isolare le gambe e le braccia di un personaggio dal suo torso. Facciamo un vero lavoro. Si aggiunge una Suzanne alla propria, e si seleziona l'anello centrale verticale di vertici, ci si assicuri di averlo completamente selezionato. Si preme CTRL-E per segnare questo anello come cucitura . Per provarlo, si entra in Modo Selezione di Facce [Face Select], si dovrebbe vedere la cucitura. Si seleziona una faccia, e si preme LKEY, tutte le facce da questo lato dovrebbero essere state selezionate. Avendo aver selezionato tutto il modello, vuol dire che si è omesso qualche vertice

161

Capitolo 10. Materiali e Textures dall'anello centrale, in questo caso si va a selezionare tali vertici. Facile, no? Questa è l'idea. Figura 11-44. Suzanne con la cucitura segnata.

Si crea qualche altra cucitura, provando ad isolare zone complesse da ciascun'altra, come le orecchie dalla testa. Quando si scuciranno, queste cuciture agiranno come coltelli nella superficie ed anche nella mappa UV. Un anello interessante per aggiungere una cucitura è quello della faccia principale di Suzanne, in modo che si separi la parte frontale dal retro.

Scucire la mesh Si apre la finestra dell'Editor UV accanto all'inquadratura [viewport] 3D. Si seleziona quindi il modello e si entra in Modo Face Select. Si selezionano le facce sul lato sinistro e sul lato destro dello scalpo di Suzanne incluse le orecchie. Si scuciranno questi gruppi usando l'opzione Sphere (Sfera) che ci dà un buon punto di partenza per il successivo LSCM. È probabile che si faccia qualcosa di "quasi" perfetto. Ad ogni modo io prenda sempre un paio di facce nel lato sbagliato della mappa. A questo si può rimediare facilmente a mano ma sono un tipo pigro che non vuole fare proprio nulla. Si preme CKEY nell'Editor UV per entrare in Modo Face Selection (questo è uno buono). Si seleziona qualcuna delle facce intorno alle orecchie, proprio quelle che sembrano scucite radialmente. Si lascia questo modo e si selezionano nella zona centrale superiore. Quelli nella parte centrale inferiore sono un po' ingarbugliati. Li faremo tra un po'. Ora, con questi vertici selezionati, si preme PKEY. Questo è il comando Pin (Spillo). Esso fissa la posizione dei vertici selezionati in modo che niente possa danneggiare la loro disposizione. Vedremo dell'altro in seguito. Figura 11-45. Fissaggio delle UV.

Ora che abbiamo fissato i vertici ben scuciti, si deseleziona tutto nella finestra 3D eccetto le due facce nel mento. Nell'editor UV, si fissano i due vertici centrali di queste facce che erano precedentemente inaccessibili. Abbiamo quasi fatto.

162

Figura 11-46. L'accesso alle UV occluse.

Ora è il momento di qualche magico LSCM. Nella finestra 3D si selezionano tutte le facce collegate a quelle nel mento, (si usa LKEY, ricordate?). Stavolta non si dovrebbero selezionare le orecchie. Le facce selezionate dovrebbero apparire come una pamma nell'Editor UV. Ora si selezionano tutti i vertici nell'Editor UV e si preme EKEY. Blender chiederà di applicare l'LSCM. Si accetta la richiesta. Appariranno delle cose magnifiche. Improvvisamente, le facce "non spillate" verranno riposizionate in posizione migliore, si è magicamente posto rimedio alla sovrapposizione delle facce. Cameron Diaz è al telefono. Se si selezionano le facce dell'orecchio nella finestra 3D, si vedrà che sono restate lì, non ci si preoccupi si loro per adesso. Ora si dovrebbe fare un po' di spazio nella mappa per le facce della fronte. Lo facciamo deselezionando i vertici a margine e scalandoli. L'Editor UV consente lo Strumento per la Modifica Proporzionale (OKEY) proprio come le mesh. Qui è molto utile per fare un po' di spazio senza sovrapporre facce. Figura 11-47. L'LSCM in azione.

163

Capitolo 10. Materiali e Textures Una volta fatto un po' di spazio, si selezionano le facce frontali, si imposta l'inquadratura [viewport] in vista frontale, e si mappano le facce con l'opzione "From Window". Si riducono un po' in X e in Y in modo da adattarsi allo spazio che gli è stato riservato nella mappa. Si preme solo SKEY seguito da YKEY o XKEY come si farebbe con le mesh. Ora si hanno le facce frontali ben scucite nell'Editor UV. Figura 11-48. Il gruppo frontale mappato "From Window".

Figura 11-49. Due isole nella mappa.

Se si deselezionano le facce attualmente selezionate nella finestra 3D, non si sarà più in grado di vederle nell'Editor UV, ma si può attivare l'opzione Draw Shadow Mesh nella menù Vista dell'Editor UV per aiutarsi a visualizzare le facce deselezionate.

"Suturare la Mappa" Ora bisogna unire queste due "isole". Se si tiene premuto CTRL mentre si seleziona un vertice, verranno selezionati anche tutti i vertici concorrenti. Questo può essere cambiato con l'opzione Stick UVs to Mesh Vertex nel menù Select dell'Editor UV. Si seleziona un vertice dal margine, si vedrà selezionato anche il suo omologo nell'altra isola. Li si "Suturi" assieme premendo

164

VKEY. Essi si uniranno in un vertice posizionato a metà degli originali. Figura 11-50. Suturazione.

A questo punto, potrebbe essere un po' noioso continuare vertice per vertice. Si selezionano tutti i vertici nel margine della faccia di Suzanne. Ora si sutura. Si spillano [Pin] i vertici selezionati. Si ricordi di spillare solo se non ci sono sovrapposizioni. Se dopo una sutura, si sono facce sovrapposte, si mantenga cucito il resto e non si fissino [pin] i vertici suturati. Figura 11-51. Suturazione.

Ora si hanno le isole suturate. Tuttavia ci sono dove le facce sono sovrapposte. Ci si assicuri di aver fissato i vertici "buoni" ed applicare ancora la LSCM. Si selezionano tutti i vertici e si preme EKEY. Se lo si fa bene, ciascun passo dello LSCM riparerà vertici posizionati su facce sovrapposte, in modo che si dovrebbe spillare per "tenerlo". Si è liberi di dimensionare o spostare i vertici prima di applicare il calcolo di una LSCM ma selezionando sempre coppie in modo da controllare la simmetria.

"La soluzione delle Orecchie" Ora si usa lo stesso metodo spiegato prima, per rimediare a tutte le facce sovrapposte nelle orecchie di Suzanne. È meglio se si lavora con un lato per volta. Prima, si selezionano i vertici nell'area a margine, dove le orecchie dovrebbero unirsi al resto della testa. Proprio come fatto prima, si selezionano in coppie e si suturano. Si fissa [pin] ogni volta che si sutura, ora si fissano questi vertici vicino alle suturazioni che non si sono sovrapposte. Si selezionano SOLO i vertici dell'orecchio su cui si sta lavorando, e si applica un passo dell'LSCM. Ora, si suturano ancora i vertici nell'orlo dell'area delle "isole" appena generate. Ancora una volta, si fissa dopo la sutura e si fissano anche le successive righe di vertici che non si sovrappongono. Si applica qualche ulteriore LSCM. Procedendo in questo modo, avremo fissato quasi tutto l'orecchio, senza sovrapporre niente.

165

Capitolo 10. Materiali e Textures Figura 11-52. Scucitura delle orecchie con l'LSCM.

Ora si può fare manualmente, selezionando i vertici con CTRL premuto e quindi spostandoli via ma è più difficile e noioso. Inoltre, il metodo LSCM ci fornisce una mappa ottimizzata per evitare stirature nelle texture. Non resta molto lavoro da fare. Si possono selezionare i gruppi di facce degli occhi e mapparle 'From Window' o con l'LSCM. Dato che le mesh degli occhi non sono collegate al resto della mesh, il comando Stitch [sutura] non funziona. Se si vogliono unire gli occhi al resto della faccia lo si deve fare invece col comando Weld (Salda) (WKEY). Ad ogni modo preferisco averli da parte, in modo che quando si dipinge la texture si possano dare comodamente ulteriori dettagli agli occhi. Figura 11-53. Suturazione [Stitching].

Se il personaggio ha le palpebre, è consigliabile mapparle uv quasi chiuse per avere una buona superficie su cui successivamente disegnare la texture.

E adesso? Una volta completata la scucitura [unwrapping], la si può esportare con l'opzione Save UV Layout nel menù, che lancerà uno script Python incluso nella Release Ufficiale di Blender. Qui si deve impostare la dimensione dell'immagine (si ricordi che la disposizione UV è un'immagine quadrata), ed assegnargli un nome appropriato. Questo salverà un'immagine TGA della mappa UV che si può caricare in Gimp, Photoshop o qualsiasi altro software, come livello di riferimento per il disegno della texture.

166

Figura 11-54. La disposizione UV finale esportata.

Per essere in grado di usare questa mappa UV come un riferimento, il proprio software 2D deve essere in grado di gestire livelli trasparenti. Nel mio caso ho scelto Gimp dato che lavoro su una macchina Linux ma si può scegliere quello più appropriato. Si crea una nuova immagine, stesse dimensioni della mappa UV, e si carica la mappa in un livello. Si aggiungono un paio di altri livelli sopra e sotto il livello della mappa. Io ho creato tre livelli, chiamati COLOR, BUMP e SPEC-REF. Questi genereranno tre immagini diverse che userò come mappe separate di texture per i canali Col, Nor e Ref/Spec nel mio materiale Blender. Ad ogni modo si potrebbe usare una mappa texture unica per tutto. La cosa buona nell'usare diverse texture è che si può ad esempio modificare la Bumping del materiale senza alterare il lavoro del Colore. Figura 11-55. Gimp è un'applicazione 2D che supporta i livelli trasparenti.

Disattivo tutti i livelli eccetto quello su cui lavoro, ed il livello della mappa UV. Si deve ridurre l'opacità del livello in esame, in modo che si abbia contemporaneamente visibilità della mappa UV.

167

Capitolo 10. Materiali e Textures Figura 11-56. Uso della mappa UV come riferimento per le mappe texture.

La mappa del colore non ha troppi misteri. questi colori verranno mappati sul modello esattamente come appaiono. Le texture SPEC-REF e BUMP sono un po' più sofisticate. Ogni cosa nel bianco apparirà "più riflettente" ovvero più luminoso, nel primo caso, o "dissestato" nel secondo caso. Le aree nere al contrario appariranno più scure o più piatte rispettivamente. Figura 11-57. Le tre mappe texture.

Si possono generare tante mappe texture maps quanti sono i canali disponibili in Blender, tenendo in conto la Specularità del Raytracing, Traslucenza, Emissione, Specularità, ecc. tutte queste mappe texture condivideranno la stessa mappa UV sempre che se ne indichi l'uso nell'opzione UV nel pannello Texture Coordinate Input nella pulsantiera del materiale. Per usare queste mappe texture create, si deve creare prima un materiale, quindi le texture Immagini richieste. Ci si assicuri di attivare l'opzione UV per ciascuna mappa texture, ed applicarle al canale voluto. Se si usa la mappa Colore per il Bump, apparirà po' strana. Si può mischiare il colore di un materiale con la mappa Colore se si vuole. Basta abbassare lo slider Col di questa texture. Si deve solo caricare la mappa texture map nell'Editor UV se si vuol modificare la mappa in base a come appare la texture, o se ci si vogliono fare ulteriori verniciate con gli strumenti per la verniciatura della texture. Altrimenti non è davvero necessario per completare il rendering.

168

Figura 11-58. Regolazione della mappa texture del colore.

Non resta molto da dire sulle texture UV. Nell'esempio del rendering ho usato due materiali con all'incirca le stesse impostazioni per la testa e gli occhi. Ho usato un valore non zero per l'Emit negli occhi, ma qualsiasi altra cosa è lo stesso. Se necessario si può ritoccare la mappa UV, in modo che la mappa texture si adatti meglio. Ci vediamo e tenetevi in piega! Figura 11-59. Il rendering finale. Texture veramente brutte... Le dovrò ridisegnare...

Plugin di Texture A partire da Blender v2.31 Come nota finale sulla texture, diamo uno sguardo al pulsante del quarto tipo di texture, Plugin. Blender consente il collegamento dinamico durante l'esecuzione di oggetti condivisi, sia plugin di texture che di sequenze. In entrambi i casi questi oggetti sono pezzi di codice C scritti secondo un dato standard (il Capitolo 26). Nel caso dei plugin texture, questi pezzi di codice definiscono funzioni accettando coordinate in ingresso e fornendo in uscita un Colore, una Normale ed una

169

Capitolo 10. Materiali e Textures Intensità, esattamente come fanno le Textures procedurali. Per usare un plugin Texture, si seleziona tale opzione, quindi si clicca sul pulsante Load Plugin che appare nella Pulsantiera della Texture. Una finestra vicina si trasforma in una finestra di Selezione File in cui si può selezionare un plugin. Questi plugin sono files .dll in Windows e files .so sui vari sistemi tipo Unix. Una volta caricato un plugin esso cambia la Pulsantiera della Texture Buttons col proprio insieme di pulsanti, come descritto nei riferimenti di ogni singolo plugin.

Capitolo 12. Illuminazione Introduzione A partire da Blender v2.31 L'illuminazione nel rendering è un argomento molto importante, al pari della modellazione, dei materiali e delle textures. La scena più accuratamente modellata con altrettanto accurate texture produrrà un pessimo risultato senza un appropriato schema d'illuminazione, mentre un modello semplice può risultare molto realistico se abilmente illuminato. L'illuminazione, sfortunatamente, viene spesso trascurata dagli artisti inesperti che di solito credono, giacché le scene reali sono illuminate da una solo punto luce (una lampada, il sole, ecc.), che sia sufficiente una sola luce anche nella grafica computerizzata. Questo è falso perché nel mondo reale, anche se è presente una sola sorgente, la luce emessa rimbalza sugli oggetti e viene re-irradiata da questi ultimi verso la scena, creando leggere ombre e regioni ombreggiate non proprio buie, ma parzialmente illuminate. Le leggi fisiche sul rimbalzo della luce vengono simulate dal rendering dei Ray Tracing e con Blender si possono simulare ricorrendo al motore della Radiosità (Capitolo 18). Il ray tracing e la radiosità sono processi lenti. Blender può eseguire molto più velocemente il rendering col suo rendering a scansione di linea (scanline renderer) interno. In effetti, è un ottimo scanline renderer. Questo tipo di motore per il rendering è molto più veloce, dato che non prova a simulare il funzionamento reale della luce, supponendo molte ipotesi esemplificanti. In questo capitolo analizzeremo i diversi tipi di luci in Blender ed il loro funzionamento, ne analizzeremo i punti forti e quelli deboli, finendo con la descrizione di uno schema base d'illuminazione 'realistico', conosciuto come il metodo dei tre punti luce, come pure uno avanzato, tra gli schemi d'illuminazione, realistico ma, ovviamente, con notevole richiesta di CPU.

Tipi di Luci (-) A partire da Blender v2.31 MISSING AREA LIGHT AND RAYSHADOW HINTS Blender fornisce quattro tipi di Luci: • Luce Solare (Sun) • Luce Semisferica (Hemi) • Lampada Sferica (Lamp) • Faretto (Spot) Ciascuna di queste luci può essere aggiunta alla scena premendo SPAZIO e selezionando la voce di menù Lamp. Tale azione aggiunge una luce di tipo Lampada. Per selezionarne un tipo diverso, o regolarne i parametri, bisogna andare nella finestra del Contesto dell'Ombreggiatura [Shading] Figura 12-1 (F5) e nel Sub-contesto Lamp (

).

Una colonna d'interruttori, nel Pannello Preview, consente di scegliere il tipo di luce.

170

Figura 12-1. I Pulsanti della Luce.

I pulsanti della luce si possono dividere in due categorie: Quelli che riguardano direttamente la luce, che sono raggruppati nei Pannelli Lamp e Spot, e quelli che ne definiscono le textures, che stanno sul lato destro del pannello Texture, che hanno due Tabs (Fincature). I tabs sono molto simili a quelli relativi ai materiali. Nella seguente sottosezione ci concentreremo sui primi due Pannelli (Figura 12-2), lasciando una breve discussione sulla texture nella sezione Regolazione delle Luci (sezione Regolazione delle Luci). Figura 12-2. Pulsanti Generali della Luce.

Il Pannello Lamp contiene pulsanti che sono per lo più generali a tutti i tipi di lampade, quindi meritano di essere spiegati per primi. Negative - Fa sì che la lampada emetta della luce 'negativa', vale a dire, la luce emessa dalla lampada viene sottratta, anziché

aggiunta, a quella emessa da qualsiasi altra luce nella scena. Layer - Fa sì che la luce si riversi solo sugli oggetti posti sullo stesso livello (layer) della luce. No Diffuse - Fa in modo che la lampada emetta luce ma senza influire sulla proprietà 'Diffuse' dell'ombreggiatore [shader] del

materiale, dunque, dando solo un'evidenza 'Speculare'. No Specular - Fa in modo che la lampada emetta luce ma senza influire sulla proprietà 'Specular' dell'ombreggiatore [shader]

del materiale, quindi, dando solo un'ombreggiatura 'Diffusa'. Energy - L'energia irradiata dalla lampada.

Sliders R, G, B - Le componenti rossa (red), verde (green) e blu (blue) della luce emessa dalla lampada.

Luce del Sole Il tipo di luce più semplice è la Luce Solare [Sun] (Figura 12-3). Una Sun è una luce di intensità costante proveniente da una data direzione. Nella vista 3D la luce Solare viene rappresentata da un punto cerchiato giallo, che ovviamente diventa viola quando selezionato, più una linea tratteggiata. Tale linea indica la direzione dei raggi Solari. Essa è per default normale alla vista in cui è stata aggiunta alla scena e può essere ruotata selezionandola e premendo RKEY.

171

Capitolo 12. Illuminazione Figura 12-3. Una Luce Solare (Sun).

I pulsanti della lampada usati con la Sun sono chiaramente quelli descritti nella sezione 'generale'. Un esempio di illuminazione da luce del Sole è mostrata nella Figura 12-4. Com'è evidente, la luce proveniente da una direzione costante, ha un'intensità uniforme e non produce ombre. Quest'ultima affermazione è un punto molto importante da capire in Blender: nessuna lampada, ad eccezione del tipo "Spot", produce ombre. La ragione di ciò risiede nell'implementazione della luce nello scanline renderer e verrà brevemente discussa nelle sottosezioni 'Spot' e 'Shadows'. Infine, è importante notare che giacché la lampada Sun è definita dalla sua energia, dal colore e dalla direzione, la posizione della lampada stessa è ininfluente. Figura 12-4. Esempio di Luce Sun.

La Figura 12-5 mostra una seconda impostazione, creata con una serie di piani distanti 1 unità di Blender tra loro, illuminati con luce Sun. L'uniformità dell'illuminazione è ancor più evidente. Questa immagine sarà utilizzata come riferimento per i confronti con gli altri tipi di lampade.

172

Figura 12-5. Esempio di Luce Sun.

Suggerimenti sulla Sun: Una luce Sun può risultare molto comoda per una semplice illuminazione di spazi aperti di giorno. Il fatto che non produca ombre può essere aggirato aggiungendo dei faretti (spot) con 'shadow only' (solo ombre) attivato. Vedi sezione Regolazione delle Luci!

Luce Semisferica (Hemi) La luce Hemi è un tipo molto particolare di luce progettata per simulare la luce proveniente dal cielo molto nuvoloso, o in ogni caso, uniforme. In altre parole è la luce emessa, uniformemente, da una semisfera luminosa sovrastante la scena (Figura 12-6). Essa è probabilmente la meno usata delle luci di Blender, ma merita di essere discussa prima delle due più usate, per la sua semplicità. L'impostazione di questa luce assomiglia fondamentalmente alla Sun. La sua posizione non è importante, mentre lo è l'orientamento. La sua linea tratteggiata rappresenta la direzione in cui è emessa la massima energia, che è normale al piano definito dal taglio della semisfera, e punta verso il lato buio. Figura 12-6. Lo schema concettuale della lampada Semisferica (Hemi).

Il risultato di una Luce Hemi per la disposizione delle 9 sfere appare in Figura 12-7 è evidente la maggiore morbidezza della luce Hemi in confronto alla Sun.

173

Capitolo 12. Illuminazione Figura 12-7. Esempio di luce Semisferica (Hemi).

Suggerimenti per la Luce Hemi: Per essere più realistici, dove c'è l'assenza di ombre, per una luce esterna si può usare la luce Sun, con Energia 1.0 ed una tinta calda gialla/arancione, ed una luce Hemi tenue sul blu per imitare la luce proveniente da ogni punto di un cielo sereno. La Figura 12-8 mostra un esempio coi relativi parametri. La figura usa anche un World (Mondo). Si veda il capitolo a riguardo. Figura 12-8. Esempio di Luce esterna. Luce Sun: Energy=1, RGB=(1.,0.95,0.8). La direzione della Sun in un riferimento polare è (135°,135°). Luce Hemi: Energy=0.5, RGB=(0.64,0.78,1.) puntata verso il basso.

Luce di tipo Lampada (Lamp) La luce di tipo Lampada (Lamp) è un punto di luce omnidirezionale, vale a dire un punto senza dimensioni che irradia la stessa quantità di luce in tutte le direzioni. In Blender è rappresentata da un semplice punto, cerchiato, giallo. La direzione dei raggi di luce sulla superficie di un oggetto, è data dalla linea che unisce la sorgente puntiforme luminosa ed il punto sulla superficie dell'oggetto stesso. Inoltre, l'intensità della luce, si attenua secondo un dato rapporto con la distanza dalla lampada. Oltre i pulsanti su menzionati, per la luce di tipo Lamp, servono altri tre pulsanti e due sliders nel Pannello Lamp (Figura 12-9): Distance - Questo dà, indicativamente, la distanza alla quale l'intensità della luce è la metà di Energy. Gli oggetti più vicini ri-

cevono più luce, gli altri oggetti ne ricevono meno. Quad - Se questo pulsante è disattivato (off), viene applicata un'attenuazione lineare -non secondo le leggi fisiche- rispetto alla

distanza. Se attivo (on), viene usata un'attenuazione più complicata, che può essere regolata dall'utente da una totalmente lineare, che è il default di Blender, ad una completamente quadratica - rispondente alle leggi fisiche - rispetto alla distanza. Quest'ultima è un po' più difficile da gestire, essa è governata dai due Pulsanti Numerici Quad1 e Quad2 e sarà spiegata più in là. Sphere - Se questo pulsante è premuto, la luce irradiata dalla sorgente è limitata alla Sfera di raggio Distance anziché andare al-

l'infinito col rapporto d'attenuazione.

174

Figura 12-9. Pulsante della luce di tipo Lamp.

La seguente Figura 12-10 mostra la stessa disposizione dell'ultimo esempio di luce di tipo Sun, ma con una luce di tipo Lamp con differenti valori di Distance e con un'attenuazione Quadratica attivata e disattivata. Figura 12-10. Esempio di Luce tipo Lamp. Negli esempi Quad: Quad1=0, Quad2=1.

L'effetto del parametro Distance è moto evidente, mentre quello del pulsante Quad è meno percettibile. In ogni caso l'assenza di ombre resta l'argomento principale. Com'è naturale solo il primo piano dovrebbe essere illuminato, perché su tutti gli altri cade l'ombra del primo. Per i patiti della Matematica, e per quelli che desiderano approfondire, le leggi che governano l'attenuazione sono le seguenti. Sia

il valore del Pulsante Numerico Distance,

è calcolata l'intensità

quello dello slider Energy e

la distanza dalla luce Lamp dal punto dove

della luce.

Se i pulsanti Quad e Sphere sono disattivati:

175

Capitolo 12. Illuminazione

Da quanto affermato è evidente che: l'intensità della luce è uguale alla metà dell'energia per

=

.

Se il Pulsante Quad è attivo:

Questo è un po' più complesso e dipende dai valori degli slider Quad1 ( ne è lineare per =

=1,

=0 e pienamente quadratica per

=0,

) e Quad2 (

). Tuttavia, è chiaro come l'attenuazio-

=1, quest'ultimo diventa il default. Abbastanza interessante se

=0 dove l'intensità della luce non si attenua affatto.

Se il pulsante Sphere viene premuto l'intensità della luce che ha una progressione lineare per

da 0 a

viene ulteriormente modificata dalla moltiplicazione per il termine

ed è identicamente 0 altrove.

Se il pulsante Quad è disattivato, e quello Sphere e premuto:

Nel caso in cui entrambi i pulsanti Quad e Sphere sono attivi:

La Figura 12-11 può essere d'aiuto per comprendere tali comportamenti in modo grafico. Figura 12-11. Attenuazione della luce: a) Lineare di default di Blender; b) Quadratica di default di Blender con Quad1=0, Quad2=1; c) Quadratica di Blender con Quad1=Quad2=0.5; d). Quadratica di Blender con Quad1=Quad2=0. Nel grafico sono rappresentate anche le stesse curve, negli stessi colori, ma col pulsante Sphere premuto.

Suggerimento per la Luce di tipo Lamp: Dato che la luce di tipo Lamp non produce ombre essa risplende allegramente attraverso i muri e cose simili. Volendo ottenere un bell'effetto tipo fuoco, o luce di una candela all'interno di una stanza vista dall'esterno da una finestra, è d'obbligo l'attivazione dell'opzione Sphere. Lavorando accuratamente sul valore Distance si può illuminare solo l'interno della stanza, mentre l'illuminazione esterna con una fredda luce lunare, ottenuta con una luce di tipo Sun o Hemi o entrambe.

176

Il Faretto (Spot) La luce di tipo Faretto (Spot) è quella più complessa tra le luci di Blender ed, infatti, tra quelle più usate grazie al fatto che è la sola in grado di proiettare ombre. Una luce Spot è un fascio a forma di cono generato dalla posizione della sorgente di luce, che è la punta del cono, in una data direzione. La Figura 12-12 dovrebbe chiarire ciò. Figura 12-12. Schema della luce di tipo Faretto (Spot).

La luce Spot usa tutti i pulsanti di una Luce Lampada, e con lo stesso significato, ma è più complessa tanto che necessita di un secondo Pannello di pulsanti (Figura 12-13): Spot.

Opzioni del Faretto (Spot) Figura 12-13. I pulsanti delle Opzioni del Faretto (Spot).

Shadows - Attiva o disattiva la proiezione d'ombre per questo faretto (spot). Only Shadow - Fa sì che il faretto proietti solo ombre senza illuminare. Tale opzione sarà analizzata in seguito in sezione Rego-

lazione delle Luci. Square - I Faretti (Spot) per default proiettano un cono di luce di sezione circolare. Ci sono casi in cui è utile una sezione qua-

drata, ottenendo, in effetti, una piramide di luce anziché un cono. Tale pulsante attiva quest'opzione. Halo - Permette al faretto di irradiare raggi di luce simili ad aloni o aureole attraversando un mezzo semiopaco. Questo verrà

spiegato in seguito nella sezione 'Luci Volumetriche' (sezione Luce Volumetrica).

177

Capitolo 12. Illuminazione

Pulsanti del Faretto (Spot) Figura 12-14. I Pulsanti del Faretto (Spot).

La colonna di pulsanti più a destra del Pannello Spot regola la geometria dello Spot e delle ombre (Figura 12-14): SpotSi - L'angolo al vertice del cono, o apertura dello Spot. SpotBl - La zona tra la luce del cono e la circostante area non illuminata. Il più basso rende i bordi netti, il più alto li ammorbi-

disce. Si noti che questo vale solo per i bordi del faretto, non per la morbidezza dei bordi delle ombre proiettate dal faretto, che sono governate da un altro insieme di pulsanti descritti nella sottosezione 'Ombre'. HaloInt - Se il pulsante Halo è attivo, questo slider definisce l'intensità dell'alone del faretto. Anche per questo si fa riferimento

a sezione Luce Volumetrica. Il gruppo in fondo di pulsanti della luce tipo Spot riguarda le ombre e costituisce un ampio argomento che merita una sottosezione a sé. Prima di passare alle Ombre, la Figura 12-15 mostra dei risultati per una luce Spot che illumina il primo test con diverse configurazioni. Figura 12-15. Esempi di Illuminazione con Spot per SpotSi=45°

Nota: In Figura 12-15 le ombre sono disattivate! Le ombre vengono trattate nella sezione successiva.

Ray Shadows TO BE WRITTEN

Buffer delle Ombre A partire da Blender v2.31 Gli schemi di illuminazione analizzati finora producono sugli oggetti solo aree più o meno illuminate, ma nessuna proiezione di ombre o auto ombreggiatura, ed una scena senza un'appropriata ombreggiatura perde profondità e realismo.

178

D'altra parte, il calcolo delle ombre giuste richiede un vero -e lento- ray tracer. Per ogni scan liner, come lo è Blender, le ombre possono essere calcolate usando un buffer delle ombre [shadow buffer] per le ombre proiettate dalle luci. Questo implica che una 'immagine', viene 'vista' nel rendering come se fosse vista dalla luce Spot stessa, e, per ciascun punto, è memorizzata la distanza dal faretto. Ogni punto dell'immagine del rendering più lontano di ciascuno di questi punti è considerato essere in ombra. Lo shadow buffer immagazzina questi dati. Per tenere l'algoritmo compatto, efficiente e veloce tale shadow buffer ha una dimensione fissata inizialmente e che in Blender può andare da 512x512 a 5120x5120, i valori più alti sono i più accurati. L'utente può controllare l'algoritmo tramite i pulsanti in basso nel Pannello Spot (Figura 12-16). Figura 12-16. Pulsanti per ombra della Luce di tipo Spot.

ShadowBuffSize - Pulsante numerico, da 512 a 5120, definisce la dimensione del Buffer dell'ombra. ClipSta, ClipEnd - Per accrescere ulteriormente l'efficienza dei calcoli dell'ombra vengono in realtà eseguite solo in una gamma predefinita di distanze dalla posizione del faretto (spot). Tale gamma va da ClipSta, più vicino alla luce Spot, a ClipEnd, più lontano (Figura 12-12). Tutti gli oggetti più vicini di ClipSta, a partire dallo Spot, non vengono controllati per le ombre, e sono sempre illuminati. Gli oggetti oltre ClipEnd non vengono controllati per le ombre, e sono sempre in ombra. Per avere un'ombra realistica ClipSta dev'essere inferiore alla distanza tra qualsiasi oggetto rilevante della scena dallo spot, e ClipEnd maggiore della distanza più grande. Per l'uso migliore della memoria allocata ed una migliore qualità dell'ombra, ClipSta dev'essere il più grande possibile e ClipEnd il più piccolo possibile. Questo minimizza il volume dove le ombre dovranno essere

calcolate. Samples - Per ottenere delle ombre morbide lo shadow buffer, una volta calcolato, partecipa al rendering con un proprio algorit-

mo di anti-scalettatura (anti-aliasing) che funziona effettuando una media del valore delle ombre su un quadrato con lato di una dato numero di pixels. Samples è il numero di pixels. Il suo default è 3, vale a dire un quadrato 3x3. Valori più alti danno un migliore anti-aliasing, ed un tempo di calcolo più lento. Bias - È la distorsione (bias) usata nel calcolo delle ombre, più alto è il valore, migliore è il risultato ma più lento. Soft - Controlla la morbidezza del bordo dell'ombra. Più è alto il valore, più è morbido e più è esteso il bordo dell'ombra. Usualmente si dovrebbe assegnare un valore nell'intervallo tra lo stesso valore del Pulsante numerico Sample al doppio di tale valore. Halo step - Il passo di campionamento della luminescenza [halo] per le ombre volumetriche quando è attivata la luce volume-

trica. Ciò sarà spiegato in sezione Luce Volumetrica.

179

Capitolo 12. Illuminazione Figura 12-17. Esempi di ombre con illuminazione di tipo Spot.

Nota: Per le ombre da far rientrare nel rendering, esse devono essere abilitate ad un livello globale. Questo vuol dire che il pulsante Shadow del Pannello Render nel Contesto Scene ed i Pulsanti Render devono essere attivi!

Luce Volumetrica A partire da Blender v2.31 La Luce Volumetrica è l'effetto che si vede in un'aria da foschia, quando i raggi di luce diventano visibili perché la luce si disperde nella nebbia, foschia, polvere ecc. Usata con attenzione può aggiungere molto realismo alla scena... o ucciderla. La luce volumetrica in Blender può essere generata solo da Luci tipo Spot, una volta premuto il pulsante Halo nel Pannello Spot (Figura 12-18). Figura 12-18. Il pulsante halo nella Luce tipo Spot.

Se si prova la disposizione mostrata in Figura 12-19, e viene premuto il pulsante Halo, il risultato del rendering sarà simile a quello di Figura 12-20.

180

Figura 12-19. Impostazione della Luce tipo Spot.

Figura 12-20. Il rendering di una Luminescenza (Halo).

L'effetto della luce volumetrica è abbastanza forte. L'intensità della luminescenza (Halo) può essere regolata con lo slider HaloInt (Figura 12-21). A valori bassi corrispondono luminescenze deboli. Figura 12-21. Lo Slider per l'intensità della luminescenza (Halo).

Il risultato è interessante. Abbiamo una luce volumetrica, ma mancano ombre volumetriche! L'alone passa attraverso la sfera, che però proietta un'ombra. Questo è dovuto al fatto che l'alone si trova in tutto il cono del Faretto (Spot) a meno di non dire a Blender di fare altrimenti. Il cono deve essere campionato per avere un'ombra volumetrica, ed il campionamento avviene con un passo definito dal pulsante numerico HaloStep (Figura 12-22). Il valore di default 0 significa nessun campionamento, quindi l'assenza di ombra volumetrica. Un valore di 1 è u po' più raffinato, e quindi risultati migliori, ma con un rallentamento del rendering (Figura 12-23), mentre un valore più alto dà risultati peggiori ma rendering più veloci (Figura 12-24).

181

Capitolo 12. Illuminazione Figura 12-22. Il pulsante numerico Halo Step.

Figura 12-23. L'alone (Halo) con l'ombra volumetrica, Halo Step = 1.

Figura 12-24. L'alone (Halo) con l'ombra volumetrica, Halo Step = 12.

I valori di HaloStep: Un valore di 8 di solito è un buon compromesso tra velocità ed accuratezza.

Regolazione delle Luci A partire da Blender v2.31 Ok, abbiamo visto le basi. Ora possiamo veramente parlare d'illuminazione. Lavoreremo su un singolo esempio, più complicato di un piano: 'un piano su una sfera', per vedere cosa si può ottenere in Blender con un'illuminazione realistica. Riorganizzeremo la composizione della Figura 12-25. La figura scimmiesca è Cornelius, il fratellino piccolo di Suzanne. Ha un materiale piuttosto lucido marrone chiaro (R=0.8, G=0.704 B=0.584, Ref=0.7, Spec=0.444, Hard=10 - Sì, non molto scimmiesco, ma si parla di luci, non di materiali!) ed è posizionato su un piano blu (R=0.275, G=0.5, B=1.0, Ref=0.8, Spec=0.5, Hard=50). Per ora è illuminato da un singolo faretto [spot] (Energy=1.0, R=G=B=1.0, SpotSi=45.0, SpotBl=0.15, ClipSta=0.1, ClipEnd=100, Samples=3, Soft=3, Bias=1.0, BufSize=512).

182

Figura 12-25. La composizione per la regolazione della Luce.

Un rendering di Cornelius con questa impostazione, con OSA=8 e le ombre (Shadows) abilitate, dà il risultato di Figura 12-26. Il risultato è brutto. Ci sono delle irrealistiche ombre molto nere su Cornelius, e quelle proiettate da Cornelius stesso sono inaccettabili. Figura 12-26. Una semplice impostazione della luce Spot.

La prima regolazione è su ClipSta e ClipEnd, se sono regolati in modo da includere il più possibile la scena (ClipSta=5, ClipEnd=21) i risultati sono decisamente migliori, almeno per le ombre proiettate. Quella di Cornelius resta troppo nera (Figura 12-27). Figura 12-27. L'impostazione di una sola luce Spot con una taglio (Clipping) adeguato.

183

Capitolo 12. Illuminazione C'è un trucco utile per impostare i valori del Clipping: Ciascun oggetto in Blender può agire da Telecamera nella vista 3D. Quindi si può selezionare il faretto (Spot) e cambiare la vista attraverso di esso premendo CTRL-NUM0. Quello che si vede, in modo ombreggiato (shaded), è mostrato in Figura 12-28. Tutte le cose più vicine al faretto di ClipSta e quelle più lontane di ClipEnd non appaiono affatto. Quindi si possono regolare con precisione questi valori verificando che tutti gli oggetti che proiettano ombre siano visibili. Figura 12-28. Regolazione dello Spot. A sinistra: ClipSta troppo alto; Al centro: Buono; A Destra: ClipEnd troppo basso.

Continua a mancare il fenomeno fisico della diffusione. Un corpo illuminato emana luce esso stesso, quindi le ombre non sono completamente nere giacché un po' di luce s'irradia dalle regioni limitrofe. Questa diffusione di luce è correttamente tenuta in conto in un Ray Tracer, ed anche in Blender, tramite il Motore della Radiosità. Ci sono però dei metodi con cui si può imitare questo fenomeno in modo accettabile. Li analizzeremo, dal più semplice al più complesso.

I tre punti Luce Il metodo dei tre punti luce è un classico, uno schema molto semplice per ottenere una scena con un'illuminazione più morbida. La luce Spot è la principale, o la Luce Chiave [Key Light], della scena, quella che proietta l'ombra. Aggiungeremo altre due luci per simulare la diffusione. La seconda luce è per la Retro Illuminazione [Back Light]. Viene posta dietro Cornelius (Figura 12-29). Questa illumina il lato nascosto del personaggio, e consente di separare il primo piano dell'immagine dal fondo, aggiungendo complessivamente un senso di profondità. Di solito la Back Light è forte come la Key Light, se non di più. Qui usiamo Energy=1 per la Luce di tipo Lamp (Figura 12-30). Figura 12-29. Impostazione della Retro-Illuminazione [Back Light].

184

Figura 12-30. La sola Key Light (a sinistra). Solo la Back Light (al centro) ed entrambe (a destra).

Il risultato è ancora migliore. Infine, la terza luce è quella di Riempimento [Fill Light]. Lo scopo della luce Fill è quello di illuminare le ombre davanti a Cornelius. Porremo la luce Fill esattamente nella posizione della telecamera, con una Energy più bassa della luce Key e della Back (Figura 12-31). Per questo esempio è stata scelta una Energy=0.75 (Figura 12-32). Figura 12-31. Impostazione della Luce di Riempimento (Fill).

Figura 12-32. Le sole luci Key e Back (a sinistra). Solo la luce Fill (al centro) e tutte e tre (a destra).

185

Capitolo 12. Illuminazione La luce di Riempimento (Fill) rende visibili le parti del modello totalmente immerse nell'ombra dalle sole luci Key e Back. Perdita del colore: Il metodo dei tre punti può essere ulteriormente migliorato aggiungendo una quarta luce, specialmente quando è presente un pavimento di un colore vivace, come in questo caso. Se c'è un pavimento di un colore vivace il nostro occhio si aspetta che il pavimento diffonda in giro, parte della luce, e parte di questa colpisca il modello. Per simulare questo effetto si pone un secondo faretto (spot) esattamente speculare a quello Chiave (Key) rispetto al pavimento. Questo vuol dire che, se il pavimento è orizzontale e z=0, come nel nostro esempio, e con la Key light posta in (x=-5, y=-5, z=10), allora la luce di diffusione del pavimento sarà posta nel punto (x=-5, y=-5, z=-10), puntando in alto (Figura 12-33). Figura 12-33. L'impostazione della Luce di Diffusione del Pavimento.

L'energia per tale luce sarà più bassa della Luce Key (qui è 0.8) ed il suo colore deve coincidere con quello del pavimento (qui R=0.25, G=0.5, B=1.0). Il risultato appare in Figura 12-34. Figura 12-34. Impostazione di una quarta Luce.

Si noti che abbiamo usato una luce Spot non una Lamp, questa dovrebbe essere completamente bloccata dal pavimento (ombreggiato) a meno di impostare il faretto come senza ombre (shadeless) premendo il pulsante appropriato. Infatti avremmo potuto usare una Lamp ma se il pavimento è lucido la luce proiettata è più riflessa che diffusa. La luce riflessa, fisicamente è essa stessa un cono proveniente dalla sorgente speculare. Si può ulteriormente migliorare l'effetto facendo in modo che il Faretto [Spot] proietti ombre ed impostando il suo valore di ClipStart abbastanza alto in modo che il piano non proietti ombre, o rendendolo efficace solo per il suo livello e ponendo il piano su un altro livello.

I tre punti luce - Esterno Usando una luce Spot come luce chiave il precedente metodo è sfortunatamente limitato ad interni o, al massimo, esterni nottur-

186

ni. Questo perché la Key light è ad una distanza finita, da cui si diffondono i raggi, ed il pavimento non è uniformemente illuminato. In esterno, su una chiara giornata assolata, tutti i pavimenti saranno uniformemente illuminati, e le ombre proiettate. Per avere un'illuminazione uniforme su tutto il pavimento è ottima una luce Solare (Sun). E se si aggiunge una luce Hemi per simulare la luce proveniente da tutti i punti del cielo (come in Figura 12-8) si ottiene una bella illuminazione esterna... ma non abbiamo ombre! L'impostazione della luce Chiave (la Sun, R=1.0, G=0.95, B=0.9, Energy=1.0) e le Luci Fill/Back (entrambe rappresentate dalla Hemi, R=0.8, G=0.9,B=1.0, Energy=0.4) appare in Figura 12-35 ed il rendering relativo in Figura 12-36. Figura 12-35. Impostazione della luce Sun e della Hemi per l'illuminazione esterna.

Figura 12-36. Il rendering dell'illuminazione esterna con la Sun e la Hemi.

La mancanza di ombre fa apparire Cornelius come se fluttuasse nello spazio. Per avere l'ombra si pone un faretto (Spot) in coincidenza della Sun con la stessa direzione. Lo si rende uno Spot con solo ombre [Shadow Only] col pulsante appropriato. Se Energy è più bassa di 0.9 e tutte le altre impostazioni sono tenute ai valori usati nell'esempio precedente (BufSize=512, Samples=3, Soft=3, Bias=1, ClipSta=5, ClipEnd=21) il risultato è quello di Figura 12-37 (al centro).

187

Capitolo 12. Illuminazione Figura 12-37. Il rendering in esterno.

L'ombra è un po' a blocchi perché Cornelius ha molti piccoli dettagli e BufSize è troppo piccolo, ed il valore di Samples è troppo basso per tenerlo correttamente in conto. Se si alzano BufSize a 2560, Samples a 6 e Bias a 3.0 il risultato è quello in Figura 12-37 (a destra). Più morbido.

Area Luminosa Il concetto di Luce proveniente da un punto è un'approssimazione. Nessuna sorgente di luce nel mondo reale è senza dimensioni. Tutte le luci si irradiano da superfici, non da punti. Questo implica un paio di cose interessanti, principalmente sulle ombre: • Le ombre nette non esistono: le ombre hanno bordi sfocati. • La messa a fuoco dei bordi dipende dalle posizioni relative e dalle dimensioni della luce, l'ombra si disperde da un oggetto e l'oggetto riceve l'ombra. Il primo punto è approssimato con la regolazione di 'Soft' del faretto (Spot), ma non il secondo. Per chiarire tale punto si immagini un palo alto e sottile in mezzo a un pavimento illuminato dal Sole. Il Sole non è un punto, ha una dimensione e, per noi terrestri, ha un'ampiezza di mezzo grado. Se si guarda l'ombra si noterà che è molto netta verso la base del palo e lsi sfoca andando verso la punta. Se il palo è abbastanza alto e sottile la sua ombra svanisce. Per afferrare questo concetto si dia uno sguardo alla Figura 12-38. Il Sole irradia la luce, l'oggetto in mezzo ostruisce completamente i raggi del Sole solo nella zona blu scuro. Per un punto nella regione blu chiaro il Sole è parzialmente visibile, quindi ciascuna di tali aree è parzialmente illuminata.

188

Figura 12-38. L'area luminosa e la sua ombra.

La regione blu chiaro è una regione parzialmente in ombra dove l'illuminazione si riduce lentamente dalla luce piena al buio totale. È anche evidente, dalla Figura 12-38 che questa regione di transizione è più piccola subito dopo l'ombra proiettata dall'oggetto e si allarga allontanandosi da esso. Inoltre, se l'ombra proiettata dall'oggetto è più piccola della luce proiettata dall'oggetto (e se la luce proiettata dall'oggetto è il Sole si ricade in questo caso) c'è una distanza oltre la quale resta solo l'ombra parziale Figura 12-39. Figura 12-39. L'area luminosa e la sua ombra 2.

In Blender, se si pone un solo Spot ad una distanza fissa dal primo piano e si guarda l'ombra proiettata sul secondo piano dato che questo secondo piano è ulteriormente più lontano si noterà che l'ombra si allarga ma non si sfoca (Figura 12-40).

189

Capitolo 12. Illuminazione Figura 12-40. La luce Spot e la sua ombra.

Per simulare un'area luminosa con Blender si possono usare diverse luci Spot, come se si simulasse l'area della luce proiettata con un numero discreto di punti luce. Questo può ottenersi ponendo diverse luci Spots manualmente, o usando la Duplicazione ai Vertici [DupliVert] di Blender (sezione Duplicazione ai Vertici [DupliVerts] nel Capitolo 22), che è più efficiente. Si aggiunge una Mesh Griglia [Grid] di 4x4. Dove c'è la luce Spot, ci si assicuri che la normale punti in basso, consentendo a Blender di mostrare le Normali ed eventualmente ribaltandole, come spiegato nella sezione Modifiche elementari nel Capitolo 6 (Figura 12-41). Si imparenta lo Spot alla Grid, si seleziona la Grid e nel Contesto Oggetto [Object] il Pannello Anim Settings (F7) si preme DupliVert e Rot. Rot non è strettamente necessario ma aiuterà nel successivo posizionamento dell'Area Luminosa. Si dovrà avere un insieme di Spots come nella Figura 12-42. Figura 12-41. Impostazione della Griglia (Grid).

190

Figura 12-42. La luce Spot ed i suoi duplicati ai vertici [dupliverts].

Si diminuisce l'energia (Energy) dello Spot. Se per un solo Spot si è usata una certa energia, ora la si deve suddividere fra tutti i duplicati. Ci sono 16 Spots, quindi si dividerà per 1/16 di Energia (ovvero Energy=0.0625). Gli stessi due renderings di sopra, con questo nuovo taglio dell'area della luce produrrà il risultato di Figura 12-43. Il risultato è lontano da quello atteso, perché il campione di luce Spot dell'area di luce è troppo grossa. D'altra parte un campionamento più fine richiederebbe un maggior numero di Spots duplicati e dei tempi di rendering inaccettabili. Figura 12-43. Simulazione di un'area di luminosa con più Spots.

Un risultato migliore si può raggiungere ammorbidendo gli Spots, ovvero impostando SpotBl=0.45, Sample=12, Soft=24 e Bias=1.5 (Figura 12-44).

191

Capitolo 12. Illuminazione Figura 12-44. Simulazione di un'area luminosa con più Spot soffusi.

Finalmente, la Figura 12-45 mostra ciò che capita a Cornelius una volta che la Luce Chiave (Key) viene sostituita con i 65 Spots duplicati con Energy=0.0154 in disposizione circolare. Si noti come l'ombra ricada più morbidamente partendo da netta vicino ai piedi e sfocandosi man mano che ci si allontana da lui. Questo è il comportamento fisico corretto. Figura 12-45. Cornelius sotto l'Area Luminosa.

Illuminazione Globale (ed Ombreggiatura Globale) Le tecniche precedenti funzionano quando c'è una sola sorgente, o, almeno un numero finito di luci, che proiettano ombre distinte. Le sole eccezioni stanno nella composizione per esterni, dove la luce tipo Hemi simula quella proveniente dal cielo, e nell'Area Luminosa, dove più faretti simulano una sorgente di luce di dimensioni finite. La prima di queste due è molto vicina ad una buona luce esterna, per il fatto che la luce Hemi non deve produrre ombre e quindi non c'è bisogno di un risultato realistico. Per ottenere una situazione realistica per gli esterni, specie per un tempo nuvoloso, si deve avere una luce proveniente da tutte le direzioni del cielo, e che proietti ombre! Questo si può avere usando una tecnica molto simile a quella usata per l'Area Luminosa, ma usando una semisfera come mesh genitore. Questa viene solitamente chiamata "Illuminazione Globale".

192

Si può usare sia una Sfera UV sia una IcoSfera, quest'ultima ha i vertici distribuiti uniformemente mentre la prima ha una maggior concentrazione di vertici ai poli. Usando una IcoSfera quindi si ottiene un'illuminazione più 'uniforme', tutti i punti del cielo irradiano con la stessa intensità; una Sfera UV ha molta più luce al/i polo/i. Personalmente raccomando la IcoSfera. Prepariamo la composizione, includendo un piano e qualche solido, come in Figura 12-46. Useremo delle forme semplici per apprezzare meglio il risultato. Figura 12-46. La scena dell'Illuminazione Globale.

Ci si sposta nella vista dall'alto per aggiungere una IcoSfera, una suddivisione di livello 2 della IcoSphere di solito è sufficiente, con un livello 3 si hanno risultati più omogenei. Si dimensiona la IcoSfera in modo che contenga completamente ed approssimativamente tutta la scena. Si torna nella vista frontale e, in Modo Edit, si cancella la metà inferiore della IcoSfera (Figura 12-47). Questa sarà la nostra "Volta Celeste" con cui i vertici saranno imparentati e duplicati ai vertici (duplivert). Figura 12-47. La Volta Celeste.

Ancora nella Vista dall'Alto si aggiunge una Luce Spot, la si imparenta alla mezza IcoSfera (CTRL-P) e si premono i pulsanti DupliVert e Rot esattamente come nell'esempio precedente. Il risultato, nella Vista Frontale, è quello in Figura 12-48. Figura 12-48. La volta Celeste con gli Spots duplicati.

Questo non è quello che vogliamo, dato che tutti gli spots puntano verso l'esterno della scena e non la illuminano. Ciò è dovuto al fatto che le normali della IcoSfera puntano verso l'esterno. È possibile invertirne la direzione selezionando tutti i vertici in Modo Edit e premendo il pulsante Flip Normals nel Pannello Mesh Tools del Contesto di Editing (F9) (Figura 12-49).

193

Capitolo 12. Illuminazione Figura 12-49. Ribaltamento delle normali.

Questo produce la nuova composizione di Figura 12-50. Figura 12-50. La volta celeste corretta e le Luci Spot duplicate ai vertici.

Per ottenere un buon risultato si seleziona la Luce Spot originale se ne cambiano i parametri per avere un angolo maggiore con bordi più diffusi (SpotSi=70.0; SpotBl=0.5); con i valori ClipSta e ClipEnd adatti; in questo caso 5 e 30, rispettivamente, in ogni caso i valori appropriati per racchiudere tutta la scena; si aumenta samples a 6 e softness a 12. Si diminuisce Energy a 0.1; ci si ricordi che si stanno usando molti faretti, quindi ciascuno dev'essere indebolito. (Figura 12-51). Figura 12-51. La regolazione della Luce Spot.

Ora si può effettuare il rendering. Se si assegnano dei materiali e viene dato un Mondo (World), il risultato dovrebbe essere quello di Figura 12-52. Si notino le ombre dell'illuminazione 'omnidirezionale'. Un risultato ancora migliore lo si ottiene con una IcoSfera di livello 3.

194

Figura 12-52. Sistemazione con la Luce Spot.

Questa tecnica dell'Illuminazione Globale sostituisce efficacemente, ad un costo computazionale molto alto, la Hemi per la composizione per esterni precedente. È possibile aggiungere una componente direzionale della luce simulando il Sole sia con un unico Spot sia con un'Area Luminosa. Un'alternativa potrebbe consistere nel rendere la IcoSfera 'meno uniforme' suddividendo una delle sue facce un certo numero di volte, come fatto per le facce posteriori in Figura 12-53. Questo viene fatto selezionando una faccia e premendo il pulsante Subdivide, ancora nel Pannello Mesh Tools del Contesto di Editing (F9). Quindi si deseleziona tutto e si ri-seleziona la piccola faccia interna la si suddivide ancora, e così via. Figura 12-53. La creazione di un'area più densa di faretti.

Ne risulta una luce direzionale molto soffusa con l'illuminazione globale della volta celeste o, brevemente, una volta celeste asimmetrica (Figura 12-54). Questa è ottima per delle condizioni nuvolose, ma non molto buone per delle limpide giornate assolate. Per dei giorni davvero sereni, è meglio mantenere la volta celeste separata dalla luce Solare, in modo da poter usare colori differenti per ciascuno. Figura 12-54. Il rendering con una volta celeste asimmetrica.

195

Capitolo 13. Il Mondo e L'Universo Blender fornisce una gran quantità di scelte interessanti per completate i rendering aggiungendo uno sfondo realistico, ed alcuni interessanti effetti "di profondità". È possibile accedervi attraverso il Contesto di Shading (F5) e nel sotto-contesto ( ) della pulsantiera World mostrato in Figura 13-1. Per default è presente un mondo uniforme molto semplice. Lo si può modificare o aggiungere un nuovo Mondo (World). Figura 13-1. I Pulsanti del Mondo [World].

Lo Sfondo del Mondo A partire da Blender v2.31 Il modo più semplice per usare i Pulsanti del Mondo (World) consiste nel fornire alle immagini uno sfondo ben sfumato. I pulsanti nel Pannello World (Figura 13-2) consentono di definire il colore all'orizzonte (pulsanti HoR, HoG, HoB) ed allo zenith (pulsanti ZeR, ZeG, ZeB). Figura 13-2. Colori di Sfondo [Background].

Questi colori vengono interpretati diversamente, in base ai Pulsanti nel Pannello Preview (Figura 13-2): - Il colore di sfondo è sfumato dall'orizzonte allo zenith. Se viene premuto solo questo tasto, la sfumatura va dal basso verso l'alto dell'immagine ottenuta dal rendering, indipendentemente dall'orientamento della telecamera.

• Blend

- Se anche questo tasto viene attivato la miscelazione dipende dall'orientamento della telecamera. Il colore dell'orizzonte è esattamente all'orizzonte (sul piano x-y), ed il colore allo zenith viene usato per i punti verticalmente sopra e sotto la telecamera.

• Real

- Se questo tasto è attivato la sfumatura di colore va allo zenith-orizzonte-zenith. Così, ci sono due transizioni sull'immagine, che rispecchiano la rotazione della telecamera ma mantenendo il colore dell'orizzonte al centro e il colore dello zenith agli estremi.

• Paper

I Pulsanti Mondo [World] forniscono inoltre un Pannello Texture con due Tab (fincature). Essi vengono utilizzati in modo molto simile alle textures dei Materiali, tranne per un paio di differenze (Figura 13-3): •

Ci sono solo 6 canali texture.

• Texture mapping

- Ha solo le opzioni Object e View, con View che è l'orientamento di default.

- La Texture influenza solo il colore, ma in quattro modi differenti: Essa può influenzare il canale Blend, mostrando il colore dell'Orizzonte dove la texture è non-zero; il colore di Hori (orizzonte); ed il colore allo Zenith, superiore o inferiore (Zen Up, Zen Do).

• Affect

196

Capitolo 13. Il Mondo e L'Universo Figura 13-3. I Pulsanti della Texture.

Esposizione (-) TO BE WRITTEN

Foschia A partire da Blender v2.31 La Foschia può aumentare ampiamente l'illusione della profondità nei propri rendering. Per creare una foschia, sostanzialmente Blender mischia il colore dello sfondo col colore dell'oggetto ed aumenta la gradazione del primo, quanto più l'oggetto è lontano dalla telecamera. Le impostazione della Foschia (Mist) stanno nel Pannello Mist Stars Physics e sono mostrate in Figura 13-4. Figura 13-4. I Pulsanti della Foschia

Il pulsante Mist attiva e disattiva la foschia. La riga di tre Interruttori sotto tale pulsante mostra l'indice di rarefazione della foschia come Quadratica, Lineare, e Square Root (Radice Quadrata). Queste impostazioni controllano la legge che governa l'intensità della foschia man mano che ci si allontana dalla telecamera. La foschia comincia da una distanza dalla telecamera definita dal tasto Sta: e viene calcolata per tutta la distanza definita dal pulsante Di:. Gli oggetti più distanti dalla telecamera di Sta+Di vengono completamente nascosti dalla foschia. Per default, la foschia copre tutta l'immagine uniformemente. Per produrre un effetto più realistico si dovrebbe fare in modo che la foschia diminuisca con l'altezza (altitudine, o z) usando il Tasto Numerico Hi:. Se il valore di questo pulsante è diverso da zero esso imposta, in unità Blender, un intervallo, intorno a z=0 in cui la foschia va dall'intensità massima (sotto) a zero (sopra). Infine, il pulsante numerico Misi: definisce l'intensità, o densità, della foschia. La Figura 13-5 mostra una possible impostazione di prova. Figura 13-5. Una composizione di prova per la foschia.

197

La Figura 13-6 mostra i risultati con e senza foschia. Le impostazioni appaiono in Figura 13-7; la texture è una semplice texture procedurale cloud (nube) con impostato il rumore Hard. Figura 13-6. Rendering senza foschia (a sinistra) e con foschia (a destra).

Figura 13-7. Impostazione del Mondo.

Distanze della foschia: Per vedere cosa sarà influenzato dalla foschia, si seleziona la telecamera, si va nel Contesto di Editing (F9) e si preme l'interruttore Show Mist nel Pannello Camera. La telecamera mostrerà i limiti della foschia come un segmento proiettato dalla telecamera a partire da Sta e distante Di.

Le Stelle Le stelle sono oggetti simili alle luminescenze [halo] disposte casualmente sullo sfondo. Le impostazioni della Stella appaiono nella parte destra del Pannello Mist Stars Physics (Figura 13-8). Figura 13-8. I pulsanti della Stella.

Nella creazione delle stelle, bisogna comprendere un paio di concetti: StarDist: è la distanza media tra le stelle. Le stelle hanno l'intrinseca caratteristica 3D di essere poste nello spazio, non sul-

l'immagine! MinDist: È la distanza minima dalla telecamera a cui sono poste le stelle. Questa dovrebbe essere più grande della distanza dal-

198

Capitolo 13. Il Mondo e L'Universo la telecamera dell'oggetto più lontano della scena, a meno che non si voglia rischiare di avere le stelle davanti agli oggetti. Il pulsante numerico Size: definisce la reale dimensione dell'alone della stella. È meglio tenerlo più piccolo di quello proposto per default, in modo da tenere il materiale più piccolo della dimensione del pixel ed avere stelle ben definite. Molto più realistiche. Il pulsante numerico Colnoise: aggiunge una tinta casuale a quelle che, altrimenti, sarebbero semplici stelle bianche. Solitamente è buona norma aggiungere un piccolo ColNoise. La Figura 13-9 mostra la stessa immagine nebbiosa della Figura 13-7 ma con delle stelle in più. Le impostazioni delle Stelle usate per l'immagine appaiono in Figura 13-10. Figura 13-9. Il rendering delle Stelle.

Figura 13-10. Le impostazioni della Stella.

Occlusione Ambiente [Ambient Occlusion] L'Occlusione Ambiente è una sofisticata imitazione dell'ambiente che simula una morbida illuminazione globale considerando la quantità di cielo (che si assume essere la sorgente di luce) visito da un dato punto. Questo in realtà viene fatto disperdendo i raggi da ciascun punto visibile, e contando quanti di esse raggiungono realmente il cielo, e quanti vengono però ostruiti dagli oggetti. La quantità di luce sul punto è quindi proporzionale al numero di raggi 'sfuggiti' che hanno raggiunto il cielo. Questo viene fatto sparando intorno una semisfera di raggi-ombra. Se il raggio colpisce un'altra faccia (viene occluso) allora il raggio viene considerato 'ombra', altrimenti viene considerato 'luce'. Il rapporto tra raggi 'luce' ed 'ombra' definisce quanto sia luminoso un dato pixel. Le impostazioni dell'Occlusione Ambiente (AO) stanno nel Contesto di Shading, Sub-contesto della Pulsantiera World, nel Tab Amb Occ. Per default l'AO è disabilitata, il Tab si riempie di molti pulsanti (Figura 13-11).

199

Figura 13-11. Pannello Ambient Occlusion.

I raggi vengono sparati sulla semisfera secondo una disposizione casuale, questo provoca delle ragionevoli differenze nel motivo [pattern] dell'occlusione dei pixel vicini, a meno che il numero di raggi sparati sia abbastanza grande d produrre dei buoni dati statistici. Ecco perché l'AO produce un pattern granulare, apparendo come sporco, se i raggi sono insufficienti. Il numero di raggi sparati viene controllato col Pulsante Numerico Samples (Campioni). Il valore 5 di default di solito è buono per le anteprime. La reale quantità di raggi sparati è il quadrato di questo numero (cioè Samples=5 significa 25 raggi). La figura Figura 13-12 mostra una semplice scena con l'aumentare del numero di campioni. Ovviamente il tempo di rendering aumenta con l'aumento del numero di campioni! Figura 13-12. L'effetto dei diversi numeri di campioni.

I Pulsanti Dist, Use Distances consentono un controllo preciso dell'ombreggiatura definendo un comportamento dipendente dalla distanza ed un'attenuazione nell'occlusione. La fila di pulsanti radio Add, Sub e Both controllano il funzionamento dell'occlusione:

200

• Add

Capitolo 13. Il Mondo e L'Universo - Il pixel riceve la luce secondo il numero di raggi non ostruiti. La scena è più luminosa.

• Sub

- Il pixel riceve ombra (luce negativa) secondo il numero di raggi ostruiti. La scena è più scura.

• Both

- Hanno luogo entrambi gli effetti, la scena resta più o meno della stessa luminosità.

Nota: Se viene scelto Sub allora ci deve essere qualche sorgente di luce da qualche parte, altrimenti la scena sarebbe nera come la pece. Negli altri due casi la scena è illuminata anche se non è presente alcuna luce esplicita.

La fila di pulsanti radioPlain, Sky Color e Sky Texture controllano il colore della luce: • Plain

- Il pixel riceve luce bianca pura secondo il numero di raggi non ostruiti.

- Il pixel riceve luce colorata, il colore viene calcolato secondo la porzione di cielo colpita dai raggi non ostruiti (Figura 13-13).

• Sky Color

- Dev'essere presente una texture Immagine del cielo, possibilmente una AngMap o una Mappa Sferica . Funziona come Sky Color ma il colore del raggio dipende dal colore del pixel colpito della texture del Cielo.

• Sky Texture

Figura 13-13. Ambient Occlusion col Colore del Cielo. Lo Zenith è blu, l'Orizzonte è arancione, ed il tipo è Blend in modo che il cielo diventa totalmente arancione al Nadir.

Lo slider Energy controlla la reale quantità di luci/ombre create dalla procedura AO. Dato che la AO avviene sulla mesh sfaccettata originale è possibile che la luce della AO renda visibili le facce anche su oggetti con 'smooth' attivato. questo è dovuto al modo con cui vengono sparati i raggi dell'AO, e può essere controllato con lo Slider Bias. L'impostazione del bias consente di controllare la 'levigatura' con cui appariranno le facce nel rendering AO. Il bias denota l'angolo (in radianti) di maggior restrizione della semisfera. Valori tra 0.05 e 0.1 di solito funzionano bene (Figura 13-14).

201

Figura 13-14. Valori di bias dell'Ambient Occlusion.

Da notare che questo è solo un raytracing, quindi tende ad essere lento. Inoltre le prestazioni dipendono gravemente dalla dimensione di Octree, si veda il Capitolo sul Rendering per altre informazioni.

La Luce Ambiente A partire da Blender v2.31 Il Pannello World contiene gli sliders per definire l'illuminazione dell'Ambiente. L'effetto della luce Ambiente consiste nel fornire una semplicissima alternativa all'Illuminazione Globale, in quanto la sua luce proietta ombre. Usando l'illuminazione Ambiente assieme ad altre sorgenti di luce si possono ottenere dei risultati convincenti in una frazione del tempo richiesto dalle vere tecniche di GI [Global Illumination], ma ovviamente la qualità non è comparabile. Gli sliders dell'illuminazione Ambiente appaiono in Figura 13-15. Figura 13-15. Le impostazioni della luce ambiente.

202

III. Animazione Se si è pronti per l'animazione in Computer Graphics allora questo è la Parte. Verranno analizzate le funzionalità di Blender che riguardano il movimento di Oggetti nello spazio 3D e la deformazione di Oggetti nel tempo. Il capitolo più adatto è quello dedicato all'Animazione di Personaggi, dove si scoprono le incredibili capacità di Blender.

Capitolo 14. Animazione di Oggetti Senza Deformazione Gli oggetti possono essere animati in molti modi. Possono essere animati come Oggetti, si può cambiare la posizione, l'orientamento o la dimensione nel tempo; si possono animare deformandoli; se ne possono animare i vertici o i punti di controllo; oppure possono essere animati tramite delle complesse e flessibili interazioni con uno speciale tipo di oggetto: l'Armatura. In questo capitolo parleremo del primo caso, ma gli elementi forniti qui sono veramente vitali per comprendere anche i capitoli successivi. Nel software di animazione per spostare un oggetto 3D vengono, normalmente, usati tre metodi: •

Fotogrammi chiave [Key frames] Per ciascuna unità di tempo (fotogrammi o frames), vengono salvate tutte le posizioni. Un'animazione viene creata estrapolando fluidamente un oggetto attraverso i fotogrammi. Il vantaggio di tale metodo è che consente di lavorare con unità visualizzate chiaramente. L'animatore può lavorare da una posizione alla successiva e può cambiare le posizioni precedenti, o spostarle nel tempo.



Curve di Moto [Motion Curves] Per ciascuna componente XYZ della posizione, rotazione o dimensione si possono creare delle curve. Queste formano i grafici del movimento, col tempo orizzontalmente ed il valore posto verticalmente. Il vantaggio di questo metodo è che fornisce un controllo preciso del movimento risultante.



Percorso [Path] Viene disegnata una curva nello spazio 3D, e l'Oggetto viene costretto a seguirla secondo una data funzione nel tempo della posizione lungo il percorso.

In Blender i primi due metodi sono totalmente integrati in uno solo, il sistema IPO (InterPOlation). Fondamentalmente, il sistema IPO consiste in curve di moto standard. La semplice pressione di un pulsante cambia il sistema da IPO a Fotogrammi Chiave, senza conversione, e senza cambiare i risultati. L'utente può lavorare con Fotogrammi Chiave, cambiare in Curve di Moto, e tornare ancora indietro, con qualsiasi modo produca il risultato migliore e soddisfi le preferenze dell'utente. Anche il sistema IPO ha delle rilevanti implicazioni nelle animazioni dei Percorsi.

Blocco IPO A partire da Blender v2.31 In Blender il blocco IPO è universale. Non fa alcuna differenza se si utilizza per il movimento di un oggetto o per le impostazioni di un materiale. Una volta imparato a lavorare con un oggetto IPO, diventerà ovvio lavorare con gli altri. Ad ogni modo Blender non fa distinzione tra i diversi tipi di IPO e l'interfaccia tiene automaticamente traccia di ciò. Ogni tipo di blocco IPO dispone di un numero fisso di canali. Ciascuno di questi ha un nome (LocX, SizeZ, ecc.) che ne indica il modo con cui è usato. Dopo aver aggiunto una curva IPO ad un canale, immediatamente inizia l'animazione. A propria discrezione (e ci sono dei canali separati per questo), si può collegare una curva direttamente ad un valore (LocX...), oppure può riguardarne una sua variazione (dLocX...). Quest'ultimo consente di spostare un oggetto come si fa di solito, con la Traslazione [Grabber], senza disturbare la IPO. L'attuale posizione è determinata quindi dalle Curve IPO relative a quella posizione. L'interfaccia di Blender offre molte possibilità per copiare le IPO, collegarle a più di un oggetto (una IPO può animare più oggetti), o cancellarne i collegamenti. La sezione Riferimento [Reference] della Finestra IPO fornisce una dettagliata descrizione. Questo capitolo è limitato alle opzioni principali per un'applicazione.

Fotogrammi Chiave [Key Frames] A partire da Blender v2.31 Figura 14-1. Il menù Insert Key per l'inserimento della Chiave.

Il metodo più semplice per creare un oggetto IPO è tramite il comando "Insert key" (IKEY) nella Finestra 3D con un oggetto selezionato. Il menù che appare fornisce un'ampia varietà di scelte (Figura 14-1). Selezioneremo la voce di menù più in alto: Loc. Viene salvata l'attuale posizione X-Y-Z, e tutto si sistema automaticamente: •

Se non c'è alcun blocco IPO, ne viene creato uno e collegato all'oggetto.



Se non ci sono curve IPO nei canali LocX, LocY e LocZ, vengono create.



Vengono aggiunti dei vertici nelle Curve IPO con gli esatti valori della posizione dell'oggetto.

Andiamo 30 frames avanti (3 x FrecciaSu) e si sposta l'oggetto. Si usa ancora il tasto IKEY. Ora si può premere immediatamente ENTER dato che Blender ricorda l'ultima scelta e la evidenzierà. La nuova posizione viene inserita nelle Curve IPO. Si possono vedere retrocedendo lentamente attraverso i frames (FrecciaSinistra). L'oggetto si sposta tra le due posizioni. In questo modo, si può creare l'animazione sfogliando i fotogrammi [frames], posizione per posizione. Si noti che la posizione dell'oggetto è direttamente collegata alle curve. Quando ci si sposta tra i frames, le IPO vengono sempre ri-calcolate e ri-applicate. Si può liberamente spostare l'oggetto all'interno dello stesso fotogramma, ma dal momento che si cambia fotogramma, l'oggetto 'salta' alla posizione determinata dalla IPO. In questo esempio la rotazione e la dimensione sono completamente libere. Esse possono essere cambiate o animate con la procedura di Inserimento chiave [Insert key] selezionando dal menù IKEY le altre voci come Rotation (Rotazione), Size (Dimensione) e qualsiasi combinazione di queste.

Le Curve IPO A partire da Blender v2.31 Figura 14-2. La Finestra IPO.

Ora andiamo a vedere esattamente cosa avviene. La prima Schermata (Screen) preimpostata nel file di start-up di Blender è eccellente per questo. Lo si attiva con CTRL-FrecciaSinistra. Sulla destra si vede la finestra delle IPO (Figura 14-2). Ovviamente

si può trasformare qualunque finestra in una finestra IPO con la voce del menù del Tipo di finestra di pertinenza, ma è più pratico avere sia una finestra 3D che una IPO contemporaneamente. Questa mostra tutte le curve IPO, i canali utilizzati e quelli disponibili. Una finestra IPO si può ingrandire o rimpicciolire o traslare proprio come qualsiasi Finestra Blender. Oltre ai canali standard, che si possono impostare tramite IKEY, si hanno delle opzioni delta, come dLocX. Questi canali consentono di assegnare una modifica relativa e sono utilizzati prevalentemente per controllare più oggetti con la stessa IPO. Inoltre, è possibile lavorare su 'livelli' [layers] di animazione. In questo modo si possono effettuare dei lavori delicati senza dover disegnare delle curve complicate. Ciascuna curva può essere selezionata individualmente con RMB. Inoltre, le modalità Traslazione e Dimensionamento operano proprio come nella finestra 3D. Le IPO si possono selezionare cliccando sul pulsante del colore alla destra della colonna dei nomi dei canali. Cliccando il nome del canale IPO in effetti si nasconde/mostra la curva relativa. Selezionando tutte le curve (AKEY) e spostandole a destra (GKEY), si può spostare l'intera animazione nel tempo. Ogni curva può essere posta in Modo Edit singolarmente, o collettivamente. Si selezionano le curve e si preme TAB. Appaiono i singoli vertici e le maniglie della curva. Le maniglie [handles] di Bézier sono codificate, come nell'Oggetto Curva: •

Maniglia Libera (nera). Questa può essere usata in qualsiasi modo si vuole. Hotkey: HKEY (scambia tra Libera ed Allineata).



Maniglia Allineata (rosa [altrove indicata con viola]). Queste maniglie giacciono sempre su una linea retta. Hotkey: HKEY (scambia tra Libera ed Allineata).



Maniglia Vettore (verde). Entrambe le parti di una maniglia puntano alla maniglia precedente o alla successiva. Hotkey: VKEY.



Maniglia Automatica (gialla). Questa maniglia ha una lunghezza ed una direzione completamente automatiche. Hotkey: SHIFT-HKEY.

Le maniglie possono essere spostate selezionandone prima il vertice centrale con RMB. Con questo si selezionano anche gli altri due vertici. Con RMB premuto e spostando si entra immediatamente in Modo Traslazione [Grab]. Le maniglie possono essere ruotate selezionandone l'estremità di uno dei vertici e quindi trascinandole tenendo premuto RMB e spostandosi. Appena si ruotano le maniglie, automaticamente cambia il tipo: •

La maniglia Automatica diventa Allineata [da Gialla a Rosa].



La maniglia Vettore diventa Libera [da Verde a Nera].

In una curva vengono poste per default le maniglie "Auto". La prima e l'ultima maniglia Auto si spostano sempre orizzontalmente, per creare un'interpolazione fluida. Le curve IPO hanno un'importante caratteristica che le distingue dalle normali curve: è impossibile avere più di un segmento di curva orizzontalmente. Anelli e cerchi in una IPO non hanno senso essendo ambigui. Una IPO può avere 1 solo valore nello stesso momento. Questo viene rilevato automaticamente nella finestra IPO. Spostando orizzontalmente delle porzioni di Curva IPO, si vedranno i vertici selezionati spostarsi 'attraverso' la curva. Questo consente di duplicare tratti di curva (SHIFT-D) e spostarli in un'altra porzione di tempo. È importante indicare come una curva IPO debba essere letta all'esterno [prima e dopo] della curva stessa. Per questo ci sono quattro opzioni nel sub-menù Curve>>Extend Mode nella testata della Finestra IPO (Figura 14-3). Figura 14-3. Opzioni per l'estensione della IPO.

L'effetto per ciascuna di queste può essere apprezzato nella (Figura 14-4).

Figura 14-4. Le IPO prolungate.

Da sinistra a destra: Modo di estensione Costante: Le estremità delle curve IPO vengono estrapolate continuamente (orizzontalmente). Questo è il funzionamento di default. Modo di estensione Estrapolata: Le estremità delle curve IPO continuano nella direzione finale. Modo di estensione Ciclico: Tutta la curva IPO viene ciclicamente ripetuta. Modo di estensione ad Estrapolazione Ciclica: Tutta la curva IPO viene ciclicamente estrapolata. Oltre alle Bézier, ci sono altri due possibili tipi di curve IPO. Per selezionarle si usa il comando TKEY, ed il menù che appare, o la voce del sotto-menù Curve>>Interpolation Mode per selezionarla. L'interpolazione della Curva IPO selezionata può essere impostata a: • Costante • Lineare • Bezier

- dopo ogni vertice della curva, questo valore resta costante. Non viene effettuata alcuna interpolazione.

- avviene un'interpolazione lineare tra i vertici.

- l'interpolazione fluida standard.

Le curve IPO non devono necessariamente essere impostate creando Fotogrammi Chiave. Esse si possono anche disegnare 'a mano'. Si usa il comando CTRL-LMB. Queste sono le regole: Non c'è ancora un blocco IPO (in questa finestra) ed è stato selezionato un canale: viene creato un nuovo blocco IPO con la prima curva IPO con un vertice posizionato dove si è cliccato col mouse. C'è già un blocco IPO, ed è stato selezionato un canale senza una curva IPO: viene aggiunta una curva IPO con un vertice. C'è già un blocco IPO, ed è stato selezionato un canale con una curva IPO esistente: Viene aggiunto un nuovo punto alla curva IPO selezionata.

Questo non è possibile se ci sono più curve IPO selezionate o in modo Edit. Far ruotare un oggetto: Questo è il metodo migliore per indicare rapidamente l'asse di rotazione: Si seleziona l'oggetto; nella Finestra IPO, si preme uno dei canali "Rot" e si usa CTRL-LMB per inserire due punti. Se l'asse di rotazione deve essere continuo, si deve usare la voce del Menù Curve>>Extend Mode>>Extrapolation.

Uno svantaggio nel lavorare con le Curve di Moto è la limitata libertà delle trasformazioni. Con le Curve di Moto si può lavorare molto intuitivamente, ma solo se tale moto può basarsi sugli assi XYZ. Per una posizione, questo è rilevante, ma per dimensionamento e rotazione sono disponibili delle descrizioni matematiche migliori: le matrici (3x3 numeri) per il dimensionamento ed i quaternioni (4 numeri) per la rotazione. Anche queste possono essere elaborate nei canali, ma possono portare a delle situazioni confuse e matematicamente complicate. La limitazione del dimensionamento a tre numeri XYZ è ovvia, ma questo lo limita ad una distorsione rettangolare. Un dimensionamento diagonale come la 'inclinazione' [shearing] è impossibile. Questo si può risolvere semplicemente lavorando nelle gerarchie. Un Genitore dimensionato in modo non-uniforme influenzerà la rotazione di un Figlio 'inclinato' [shear]. La limitazione a tre numeri XYZ delle rotazioni è meno intuitiva. Questa, chiamata rotazione di Eulero, non è uniforme -la stessa rotazione può essere espressa con differenti numeri- ed ha il fastidioso effetto che non è possibile ruotare da una posizione ad un'altra, l'infausto gimbal lock. Lavorando con diverse Chiavi di Rotazione, l'utente può improvvisamente imbattersi in delle interpolazioni inaspettate, o può concludere che è impossibile forzare un particolare asse di rotazione quando si effettuano delle modifiche manuali. Anche qui, una soluzione migliore consiste nel lavorare con le gerarchie. Un Genitore assegnerà sempre l'asse di rotazione specificato al Figlio. (È utile sapere che le rotazioni X, Y e Z vengono calcolate dopo le altre. La curva che riguarda il canale RotX, determina sempre l'asse di rotazione X). Fortunatamente, Blender calcola tutto internamente con le matrici ed i quaternioni. Così le gerarchie funzionano normalmente, ed il Modo Rotazione fa quello che ci si aspetta da esso. Solo le IPO sono una limitazione qui, ma in questo caso la facilità d'uso prevale su una poco intuitiva purezza matematica.

Curve IPO e Chiavi IPO A partire da Blender v2.31 Il modo più semplice di lavorare con le curve di moto consiste nel convertirle in Chiavi IPO. Torniamo nella situazione dell'esempio precedente: abbiamo indicato due posizioni in un oggetto IPO nel frame 1 e nel frame 31 con IKEY. Alla destra dello schermo, si può vedere una finestra IPO. Impostiamo il frame corrente a 21 (Figura 14-5). Figura 14-5. La Finestra IPO.

Mentre il cursore del mouse è sulla finestra 3D si preme KKEY. Ora avverranno due cose: •

La finestra IPO cambia in modo Chiave IPO.



All'oggetto selezionato viene assegnato l'opzione "DrawKey" (Disegna Chiave).

Ciascuna delle due azioni ha un diverso significato. •

Ora la finestra IPO disegna linee verticali attraverso tutti i vertici di tutte le curve IPO visibili (ora le IPO sono nere). I vertici con lo stesso valore di 'frame' sono collegati a linee verticali. Le linee verticali (le "Chiavi IPO") possono essere selezionate, spostate e duplicate, proprio come i vertici in Modo Edit. Le Chiavi IPO si possono spostare solo orizzontalmente.



L'oggetto non solo appare nella sua attuale posizione ma appaiono anche degli oggetti 'fantasma' in tutte le posizioni delle Chiavi. Inoltre per essere in grado di visualizzare le posizioni Chiave dell'oggetto, queste si possono modificare anche nella finestra 3D. In questo esempio, si usa il modo Traslazione [Grab] sull'oggetto per cambiare le Chiavi IPO selezionate.

Di seguito ci sono delle istruzioni per utilizzare la potenza del sistema: •

Si può usare solo RMB per selezionate le Chiavi IPO nella finestra IPO. La Selezione Delimitata [Border], e l'estensione della selezione, qui non sono abilitate. Si selezionano tutte le Chiavi IPO per trasformare tutto il sistema di animazione nella finestra 3D.



Il comando "Insert Key" riguarda sempre tutti gli oggetti selezionati. Le Chiavi IPO per più oggetti possono essere trasformate simultaneamente nella finestra 3D. Si usa il comando SHIFT-K: Show and select all keys per trasformare una completa animazione di un gruppo di oggetti tutto in una volta.



Si usano i comandi PAGINASU e PAGINAGIÙ per selezionare le chiavi precedenti e le successive nella finestra 3D.



Si possono creare le Chiavi IPO con qualsiasi combinazione di canali. Escludendo consapevolmente certi canali, si può forzare una situazione in cui le modifiche alle posizioni chiave nella finestra 3D possono essere compiute solo ai valori specificati dai canali visibili. Per esempio, con il solo canale LocX selezionato, le chiavi si possono spostare solo nella direzione X.



Ciascuna Chiave IPO è composta da vertici che hanno esattamente lo stesso valore di fotogramma. Se i vertici vengono spostati manualmente, si possono avere un gran numero di chiavi, ciascuna con una sola curva. In questo caso, si usa il comando JKEY ("Join") per unire le Chiavi IPO selezionate. È possibile anche assegnare i vertici delle Chiavi IPO selezionate per tutte le curve visibili: si usa IKEY nella finestra IPO e si sceglie "Selected keys".



L'opzione DrawKey ed il modo Chiave IPO possono essere attivati e disattivati in modo indipendente. Si usa il pulsante EditButtons->DrawKey per disattivare questa opzione o l'oggetto. Si può attivare o disattivare il modo Chiave IPO da sé con KKEY nella finestra IPO. Solo KKEY nella finestra 3D attiva e disattiva sia il modo DrawKey che IPOKey.

Altre applicazioni delle Curve IPO A partire da Blender v2.31 Ci sono diverse altre applicazioni delle IPO oltre l'animazione del movimento di un Oggetto. I Pulsanti del Menù IPO Type nella testata [header] (Figura 14-6) permettono la selezione del tipo di Blocco IPO, quello attivo è l'Oggetto IPO appena descritto finora, ma ci sono IPO del Materiale, IPO del Mondo [World], IPO dei Vertici Chiave, IPO dei Vincoli e IPO di Sequenza. Non tutte le voci sono sempre presenti, dipende dal contesto. Il blocco di Curva IPO appare se l'oggetto selezionato è una curva ma non una Mesh, appare solo la IPO Lampada, se l'oggetto selezionato è una lampada. Figura 14-6. La finestra IPO.

La IPO del Materiale è un modo per animare un Materiale. Proprio come per gli oggetti, le Curve IPO possono essere usate per indicare le 'posizioni chiave' per i Materiali. Col mouse nella Pulsantiera, il comando IKEY richiama un menù con le voci per le diverse variabili del Materiale. Se si è in un Blocco IPO di Materiale, Lampada o World allora appare un piccolo Pulsante Numerico subito dopo il Menù del tipo di IPO nella barra degli strumenti della Finestra IPO. Questo indica quale sia il canale della texture attivo. Con le Curve IPO si può controllare la mappatura per tutti gli 8 canali! A rigor di termini, con le textures sono possibili altre due animazioni. Dato che gli Oggetti possono dare le coordinate su altri oggetti (In Blender ogni oggetto può essere usato come una sorgente di coordinate di texture. Per fare ciò, si deve selezionare l'opzione "Object" nei pulsanti verdi "Coordinates input" e vi si deve digitare il nome dell'oggetto. Viene quindi eseguita una trasformazione inversa sulla coordinata globale del rendering per ottenere la coordinata locale dell'oggetto) è possibile animare la texture semplicemente animando la posizione, dimensione e rotazione dell'oggetto. Inoltre, in ciascun fotogramma, si può fare in modo che Blender carichi un'altra Immagine (numerata) come mappa di texture invece di averne una fissa. È anche possibile usare, per questo, file di filmati SGI o AVI.

La IPO del Tempo A partire da Blender v2.31 Con la curva IPO del Tempo si può manipolare il tempo dell'animazione degli oggetti senza cambiare l'animazione o le altre IPO. Infatti, viene cambiata la mappatura del tempo di animazione nel tempo di animazione globale (Figura 14-7). Figura 14-7. La IPO del tempo lineare.

Per afferrare questo concetto, si fa una semplice animazione, con Fotogrammi Chiave di un oggetto in movimento, da una posizione ad un'altra in, diciamo, 50 frames. Quindi si seleziona il canale Time e si crea una IPO del Tempo nella Finestra IPO che va dal punto (1,1) al punto (50,50). Usando NKEY ed immettendo i valori numericamente è semplice impostare il punto iniziale e finale di una IPO. Nei frames dove la pendenza della IPO del Tempo è positiva, l'oggetto avanza nella sua animazione. La velocità dipende dal valore della pendenza. Una pendenza maggiore di 1 accelererà l'animazione base. Una pendenza più piccola di 1 la rallenterà. Una pendenza di 1 significa nessuna variazione all'animazione, valori negativi della pendenza consentiranno di invertire l'animazione. La IPO del Tempo è interessante specialmente per i sistemi di particelle, consentendo di "congelare" le particelle di animarle o di animarle in modo che siano assorbite da un oggetto anziché emesse. Altre possibilità consistono nell'inserire pause o rallentare il moto dell'animazione. IPO del Tempo multiple: Per effettuare un totale rallentamento si deve copiare la IPO del Tempo per ciascun sistema di animazione. Ma fermando solo delle animazioni, e continuando ad animare il resto, per esempio, la telecamera può dare degli effetti molto belli (come quelli sbalorditivi usati nel film "The Matrix")

Animazione su Percorsi A partire da Blender v2.31 Un modo diverso per spostare Oggetti nello spazio consiste nel costringerli a seguire un dato percorso. Quando si deve far seguire un percorso ad un oggetto, o è troppo difficile animare un tipo speciale di movimento col metodo del fotogramma chiave (Si pensi ad un pianeta che segue la propria traiettoria intorno al Sole. Questa animazione con fatta con i Fotogrammi Chiave è virtualmente impossibile) si possono usare gli oggetti curva per mostrare il percorso di un'animazione. Se l'oggetto Curva contiene più di una sola curva continua, viene utilizzata solo la prima curva dell'oggetto. Figura 14-8. La Finestra Action con i Pulsanti del Percorso [Path].

Come per l'inseguimento [tracking], ci sono due metodi di animazione del Percorso, il vecchio metodo, pre 2.30 descritto qui ed il nuovo metodo, che sarà descritto nella sezione Vincoli nel Capitolo 16. Quando si imparenta un Oggetto ad una Curva verrà chiesto di scegliere tra le opzioni Normal Parent o Follow Path. Il primo è quando si ha bisogno di un'animazione di Percorso convenzionale, ma si dovranno fare altre azioni in seguito. La seconda scelta crea un Vincolo di "Segui Percorso" [Follow Path], e questo è tutto quello che bisogna fare. Qualsiasi tipo di curva può diventare un percorso impostando il Pulsante Interruttore CurvePath a ON, nella finestra dei Pulsanti di Animazione (F7) (Figura 14-8). Quando una Curva ha figli essa può essere trasformata in Percorso selezionandola, andando nel Contesto di Editing (F9) ed attivando il pulsante Interruttore CurvePath nel Pannello Curve and Surface. Gli oggetti Figli della Curva si muoveranno lungo il percorso specificato. È bene impostare la Curva come 3D tramite il Pulsante Interruttore 3D dei Pulsanti di Edit della Curva in modo che i percorsi possano essere modellati liberamente. Altrimenti, nel menù ADD sotto Curve->Path, c'è già una primitiva con le impostazioni corrette. Questa è una spline Nurbs del 5° ordine, che può essere utilizzata per creare dei movimenti molto fluidi e continui. Normalmente un Percorso [Path] è lungo 100 frames ed è attraversato dal figlio in 100 frames. Lo si può rendere più lungo o più corto cambiando il Pulsante Numerico PathLength:. La velocità lungo il percorso è determinata con una curva appropriata nella Finestra IPO. Per vederla, nel pulsante della testata [header] della Finestra IPO si deve selezionare il tipo Curve per il blocco IPO. Qui c'è un solo canale, Speed. Nella Finestra IPO il percorso completo va tra il valore verticale 0.0 e 1.0. Disegnando una curva tra questi due valori si collega il tempo alla posizione sul percorso. Con ciò si rendono possibili movimenti all'indietro ed altalenanti. Per la maggior parte dei percorsi, in una Curva IPO il valore di Y deve andare esattamente da 0.0 a 1.0. Per ottenere ciò, si usa il menù Numerico (NKEY) nella Finestra IPO. Se la Curva IPO viene cancellata, il valore di PathLen determina la durata del percorso. In questo caso viene definito un movimento lineare. La IPO della Velocità [Speed] è un modo più raffinato per controllare la lunghezza del Percorso. Il percorso è lungo 1 per la IPO del tempo, e se la IPO del tempo va da 0 a 1 in 200 frames allora il percorso è lungo 200 frames. Usando l'opzione CurveFollow, nel Pannello Curve and Surface, agli oggetti Figli del percorso viene data anche una rotazione, in modo che essi puntino permanentemente nella direzione del percorso. I pulsanti "tracking" nel Pannello Anim settings del contesto dell'Oggetto (F7) per indicare l'effetto della rotazione (Figura 14-9) come si sarebbe fatto per l'Inseguimento [Tracking]:

Figura 14-9. I Pulsanti di Inseguimento [Tracking].

TrackX, Y, Z, -X, -Y, -Z Questi indicano la direzione dell'asse, cioè l'asse da porre sul percorso. UpX, UpY, UpZ Indicano l'asse che deve puntare 'in su', nella direzione del locale asse Z positivo. Se Track coincide con l'asse Up, viene disattivato. Nota: Le curve di percorso hanno lo stesso problema delle curve Smussate [Bevelled] per ciò che riguarda la definizione della direzione "Sopra".

Per visualizzare precisamente tali rotazioni, si deve fare in modo che sia possibile per un figlio avere le proprie rotazioni. Si cancella la rotazione del Figlio con ALT-R. Si cancella anche la "Parent Inverse": ALT-P. Il metodo migliore consiste nell' 'imparentare' un Figlio non ruotato al percorso col comando SHIFT-CTRL-PKEY: "Make parent without inverse". Ora il Figlio salta direttamente verso il percorso e guarda nella giusta direzione. I percorsi 3D prendono anche un altro valore per ciascun vertice: il 'tilt'. Questo può essere usato per indicare un asse di rotazione. Si usa TKEY in Modo Edit per cambiare il tilt dei vertici selezionati, p. es. per avere un Figlio che si sposta come se andasse sulle montagne russe. La Figura 14-10 mostra un'applicazione complessa. Si vuol fare una picchiata di un caccia aereo in un canyon, volando fin sopra l'acqua e poi ancora in salita, tutto questo seguendolo con la telecamera e, possibilmente, con una riflessione nell'acqua! Per fare questo ci vogliono tre percorsi. Il Percorso 1 ha un aereo imparentato con esso, il caccia volerà seguendolo. Figura 14-10. Animazione di un percorso complesso.

Il caccia ha una Empty chiamata 'Track' Imparentata con esso in una posizione strategica. Una telecamera è imparentata con un'altra curva, il Percorso 2, e lo segue, puntando verso la Empty 'Track'. Il Caccia ha una IPO costante Speed, la telecamera no. Essa va prima più veloce, poi più piano, sempre seguendo la Empty, e quindi l'aereo, in modo da avere dei movimenti molto fluidi della telecamera partendo da un lato del Caccia, verso il suo muso, passando all'altro lato, indietro, ecc. (Figura 14-11). Figura 14-11. Alcuni fotogrammi, la telecamera insegue fluidamente il caccia.

Dato che si vuole che il caccia voli su un fiume, bisogna impostare una Mappa Ambientale per la superficie dell'acqua per ottenere le riflessioni. Ma la Empty utilizzata per i calcoli dev'essere sempre in posizione speculare rispetto alla telecamera... e la telecamera si muove lungo un percorso! Il Percorso 3 viene creato quindi speculare al percorso 2 rispetto al piano dell'acqua, duplicandolo, ed usando MKEY in Modo Edit rispetto al cursore, quando il cursore sta sul piano. La Empty per il calcolo della Mappa Ambientale viene, quindi, imparentata a questo nuovo percorso, e la IPO del Tempo del Percorso 2 viene copiata nel Percorso 3. La Figura 14-12 mostra un fotogramma del rendering finale. Per le scie sono stati usati dei sistemi di particelle. La scena presenta molti trucchi raffinati, come le particelle per le fiamme del jet, la nebbia, una sfera celeste che circonda la scena e così via. Figura 14-12. Un fotogramma dell'animazione finale.

Capitolo 15. Animazione di Deformazioni Animare un Oggetto o un Materiale, non è la sola cosa che si può fare in Blender. Si può cambiare, ristrutturare, deformare i propri oggetti nel tempo! Ci sono addirittura diverso modi per farlo, ed una tecnica è talmente potente e generale che c'è un intero capitolo dedicato: Animazione di Personaggi. Le altre tecniche saranno trattate qui di seguito.

Vertici Chiave Assoluti A partire da Blender v2.31 In Blender si possono anche creare Vertici Chiave [VertexKeys] (in contrapposizione agli Oggetti Chiave, che indicano la posizione degli oggetti); i VertexKeys sono le indicazioni delle posizioni dei vertici all'interno di un Oggetto. Dato che questo può coinvolgere migliaia di vertici, non vengono create delle Curve di Moto per ciascun vertice, ma viene, invece, utilizzato il tradizionale sistema di Posizioni Chiave. Viene usata una sola Curva IPO per determinare come eseguire l'interpolazione ed i momenti in cui si può vedere un VertexKey. I VertexKeys fanno parte dei Dati dell'Oggetto [Object Data], non dell'Oggetto. Quando si duplica l'Object Data, viene copiato anche il blocco di VertexKey. In Blender non è possibile consentire a più Oggetti di condividere gli stessi VertexKeys, dato che non sarebbe molto pratico. Il blocco Vertex Key è universale e comprende la distinzione tra una Mesh, una Curva, una Superficie ed un Lattice. Anche l'interfaccia e l'uso è uniformato. In questa sezione è spiegata in dettaglio la lavorazione dei VertexKeys della Mesh, e contiene diverse brevi osservazioni sugli altri Object Data. La posizione della prima VertexKey che si crea è sempre la Chiave [Key] di riferimento. Tale Chiave definisce le coordinate della texture. Solo se si attiva tale Chiave si possono cambiare le facce, le curve o il numero dei vertici. È consentito assegnare ad altre Chiavi un numero diverso di vertici. Il sistema della Chiave li interpola automaticamente. Di seguito viene fatto un esempio pratico. Quando si lavora con le VertexKeys, risulta molto pratico avere una finestra IPO aperta. Per esempio, si può usare il primo Schermo [Screen] dal file standard di Blender. Nella finestra IPO, si deve indicare che si vogliono vedere le VertexKeys. Questo si fa col Pulsante Menù tipo IPO e selezionando Vertex. Si va nella finestra 3D col cursore del mouse e si preme IKEY. Con un oggetto Mesh selezionato ed attivo. Il menù "Insert Key" ha diverse voci, riguardanti la Mesh. Appena selezionata, appare una seconda dialog (Figura 15-1) chiedendo di scegliere tra Vertici Chiave Relativi o Assoluti. Figura 15-1. Il Menù Insert Vertex Keys.

Si sceglierà Absolute Keys; viene disegnata una linea gialla orizzontale nella Finestra IPO. Questa è la prima chiave e quindi la Chiave di riferimento. Viene anche creata una Curva IPO per "Speed" (Figura 15-2).

213

Capitolo 15. Animazione di Deformazioni

Figura 15-2. La Chiave [Key] di riferimento e la IPO della Velocità [Speed].

Creazione di una Vertex Key: La creazione di una VertexKeys in Blender è molto semplice, ma il fatto che il sistema è molto sensibile riguardo la sua configurazione può far diventare visibili diverse cose 'invisibili'. Per questo si deve prendere in considerazione la seguente regola. Appena inserita la posizione di una VertexKey essa è immediatamente attiva. Tutte le successive modifiche della Mesh sono collegate a questa posizione Chiave. È quindi importante che la posizione Chiave sia aggiunta prima di iniziare la modifica.

Si va ancora un paio di fotogrammi in avanti e si seleziona: IKEY, Mesh (nella finestra 3D). La seconda Chiave viene disegnata come una linea blu chiaro. Questa è una Chiave normale; tale chiave e tutte le successive riguarderanno solo l'informazione del vertice. Si preme TAB per il Modo Edit e si sposta uno dei vertici nella Mesh. Quindi si torna indietro di un paio di fotogrammi: non appare niente! Fin quando si resta in Modo Edit, non vengono applicate le altre VertexKeys. Quello che si vede in Modo Edit è sempre la VertexKey attiva. Si esce dal Modo Edit e ci si sposta ancora di un paio di fotogrammi. Ora si vede l'effetto del sistema di VertexKey. Le VertexKeys si possono selezionare solo nella finestra IPO. Questo lo si fa sempre fuori dal Modo Edit: i 'contenuti' della VertexKey ora appaiono temporaneamente nella Mesh. Si può modificare la Chiave specificata entrando in Modo Edit. Ci sono tre metodi per lavorare con i Vertici Chiave [Vertex Keys]: •





Il metodo 'performance animation'. Questo metodo funziona interamente in Modo Edit, cronologicamente da posizione a posizione: •

Insert Key. Viene indicato il riferimento.



Qualche fotogramma avanti: Insert Key. Si modifica la Mesh per la seconda posizione.



Qualche frames avanti: Insert Key. Si modifica la Mesh per la terza posizione.



Si continua il processo precedente...

Il metodo 'editing'. •

Prima si inseriscono tutte le Chiavi richieste, a meno che non si siano già create le Chiavi col metodo descritto prima.



Blender non è in Modo Edit.



Si seleziona una Chiave. Ora si entra in Modo Edit, si modifica la Mesh e si esce dal Modo Edit.



Si seleziona una Chiave. Si entra in Modo Edit, si modifica la Mesh e si esce dal Modo Edit.



Si continua il processo precedente....

Il metodo 'insert' •

In questo metodo non importa se ci siano o meno già delle Chiavi e che si sia o meno in Modo Edit.

214



Si va nel frame in cui si deve inserire la nuova Chiave.



Insert Key.



Si va in un nuovo frame, Insert Key.



Si continua il processo precedente...

Stando in Modo Edit, non si può cambiare la Chiave. Se l'utente prova a farlo, appare un avviso. Ciascuna Chiave è rappresentata da una linea disegnata ad una data altezza. L'altezza viene scelta in modo che la chiave intersechi la IPO "Speed" nel fotogramma in cui si è definita la Chiave. Sia la Curva IPO che la VertexKey si possono selezionare separatamente con RMB. Dato che potrebbe essere troppo difficoltoso lavorare con esse, la selezione delle linee Chiavi viene disattivata quando la curva è in modo Edit. Si può usare il pulsante channel per nascondere temporaneamente la curva (SHIFT-LMB su "Speed") in modo da facilitare la selezione delle Chiavi. Le linee delle Chiavi nella Finestra IPO, una volta create, possono essere poste in qualsiasi posizione verticale. Per farlo si seleziona la linea e si usa il Modo Traslazione [Grab]. Anche la Curva IPO può essere processata nello stesso modo descritto nel capitolo precedente. Tuttavia, invece di un 'valore', la curva determina l'interpolazione tra le Chiavi, p.es. si può usare una curva seno per creare un'animazione ciclica. Durante l'animazione il contatore del fotogramma [frame] dà un certo valore della IPO Speed, che viene utilizzato per scegliere la/e Chiave/i da usare, possibilmente con l'interpolazione, per produrre la mesh deformata. La IPO Speed ha il funzionamento standard di una IPO, anche per l'interpolazione. La linea della Chiave ha tre tipi di interpolazione. Si preme TKEY con la linea di una Chiave selezionata per aprire un menù con le seguenti voci: • Linear:

l'interpolazione tra le Chiavi è lineare. La linea della Chiave appare come una linea punteggiata.

• Cardinal:

l'interpolazione tra le Chiavi è fluida, l'impostazione standard.

• BSpline:

l'interpolazione tra le Chiavi è molto fluida ed include quattro Chiavi nel calcolo dell'interpolazione. Le posizioni, però, non vengono più mostrate con precisione. La linea della Chiave è disegnata tratteggiata.

La Figura 15-3 mostra una semplice animazione di Vertex Key di un cilindro. Il cilindro si deforma in una grande stella, quindi si deforma in una piccola stella, poi, dato che la IPO Speed torna a 0 la deformazione viene ripetuta in ordine inverso. Figura 15-3. Chiavi Assolute.

Qualche utile suggerimento: •

Le posizioni Chiave vengono sempre aggiunte con IKEY, anche se sono poste nella stessa posizione. Questo si usa per copiare le posizioni durante l'inserimento. Si possono anche usare due linee di chiavi nella stessa posizione per cambiare l'effetto dell'interpolazione.



Se non è selezionata nessuna Chiave, si può entrare in Modo Edit come al solito. Quando però si esce dall'Edit tutte le modifiche saranno perse. In questo caso si inserisce una Chiave stando in Modo Edit.



Per quanto riguarda le Chiavi, non c'è alcuna differenza tra selezionata ed attiva. Non è però possibile selezionare più Chiavi.



Quando si lavora con le Chiavi con un diverso numero di vertici, le facce si possono disordinare. Non c'è alcuno strumento per indicare l'esatta sequenza dei vertici. Questa possibilità è veramente adatta solo per le Mesh che hanno solo vertici come gli Aloni [Halos].

Curve e Superfici Chiave Come menzionato precedentemente, le Curve e le Superfici Chiave funzionano esattamente allo stesso modo delle Mesh Chiave. Per le Curve, non c'è un particolare interesse nel porre Curve Chiave nell'oggetto profilo. Benché quest'animazione non sia mostrata in tempo reale nella Finestra 3D, parteciperà al rendering.

Lattici Chiave Appena in un Lattice è presente una Chiave, i pulsanti usati per determinare la risoluzione vengono bloccati.

Chiavi di Vertici Relative [Relative VertexKeys] A partire da Blender v2.31 Le Relative Vertex Keys (RVK) funzionano in modo diverso in quanto vengono memorizzate solo le differenze tra la mesh di riferimento e quella deformata. Questo permette di mischiare assieme diverse Chiavi per ottenere delle animazioni complesse. Tratteremo le RVK con un esempio. Creeremo un'animazione facciale con la RVK. Mentre le Vertex Keys Assolute vengono controllate soltanto con una sola Curva IPO, le Vertex Keys Relative vengono controllate da una curva di interpolazione per ogni posizione chiave, che indica 'quanta' di questa deformazione relativa sia usata per produrre la mesh deformata. Ecco perché si possono miscelare (aggiungere, sottrarre, ecc) le chiavi relative. Per l'animazione facciale, la posizione base deve essere una posizione rilassata con le labbra leggermente aperte e le palpebre aperte a metà. Si devono quindi definire le chiavi per l'occhiolino sinistro/destro, contento, triste, sorridente, accigliato, ecc. Il trucco con le vertex keys relative consiste nel fatto che solo i vertici che sono cambiati tra la base e la chiave, modificano il risultato finale durante la miscelazione. Questo significa che è possibile avere diverse chiavi che influiscono sull'oggetto in posti diversi tutte allo stesso tempo. Per esempio, una faccia con tre chiavi: il sorriso, e l'occhiolino sinistro/destro può essere animata per sorridere, quindi per battere a palpebra sinistra, poi battere la palpebra destra, infine aprire entrambi gli occhi e finalmente smettere di sorridere - tutto miscelando 3 chiavi. Senza le vertex keys relative si sarebbero dovute generare 6 vertex keys, una per ciascuna posizione voluta. Si consideri la testa femminile nella Figura 15-4: Figura 15-4. La testa femminile da animare.

Per aggiungere una RVK basta premere IKEY e selezionare Mesh come per le AVK, ma, dal menù che appare si seleziona Relative Vertex Keys. Con questo si memorizza la Chiave di riferimento che apparirà come una linea gialla orizzontale nella finestra IPO. Le chiavi relative vengono definite inserendo altre vertex keys. Ogni volta che si preme IKEY e si seleziona Mesh appare una nuova linea orizzontale nella finestra IPO. Se il numero del fotogramma viene aumentato ogni volta, le linee orizzontali vengono poste una sull'altra. Per facilitare la modellazione si nascondono tutti i vertici ad esclusione di quelli della faccia Figura 15-5.

Figura 15-5. Tutti i vertici nascosti ad esclusione di quelli della faccia.

Ci si sposta, ora, su un altro fotogramma, diciamo il numero 5, e si aggiunge una nuova Chiave. Apparirà una linea azzurra sopra la gialla, che ora diventa arancione. Si entra in Modo Edit e si chiude la palpebra sinistra. Una volta fatto si esce dal Modo Edit. Se si seleziona la chiave di riferimento si vedrà la mesh originale. Se si seleziona la prima RVK si vedrà quella deformata (Figura 15-6). Figura 15-6. L'occhio sinistro chiuso.

Si ripete il passaggio per l'occhio destro. Si faccia attenzione che le chiavi appena inserite sono basate sulla mesh della chiave attualmente attiva, quindi è in genere buona norma selezionare la chiave di riferimento prima di premere IKEY. Quindi si aggiunge un sorriso (Figura 15-7). Figura 15-7. Il sorriso.

La finestra IPO sarà simile alla Figura 15-8. Figura 15-8. Le Chiavi nella Finestra IPO.

L'ordine verticale delle Vertex Keys (le linee blu) dal basso verso l'alto determina la sua corrispondente curva IPO, cioè la linea della chiave blu più in basso sarà controllata dalla curva Key1, la seconda dal basso sarà controllata dalla curva Key2, e così via. Non è presente alcuna IPO per la mesh di riferimento in quanto è tale mesh che viene utilizzata se tutte le altre Chiavi hanno un valore della IPO di 0 in un dato fotogramma. Si selezioni Key1 e si aggiunga una IPO col metodo preferito. Si dia uno sguardo alla Figura 15-9. Figura 15-9. La curva IPO Key 1.

Questo renderà la mesh indeformata fino al fotogramma 10, quindi dal fotogramma 10 al fotogramma 20 la Key 1 comincerà ad influire sulla deformazione. Dal fotogramma 20 al fotogramma 40 la Key 1 supererà completamente la mesh di riferimento (valore della IPO è 1), e l'occhio sarà completamente chiuso. L'effetto svanirà dal fotogramma 40 al fotogramma 50. Si può controllare con ALT-A, o impostando manualmente i numeri del frame. La seconda scelta è migliore, a meno che il computer non sia particolarmente potente!

Tale IPO si copia usando il pulsante con la freccia in basso nella toolbar della Finestra IPO (Figura 15-10). Si seleziona Key 2 e si incolla la curva con la freccia in alto. Ora entrambe le chiavi hanno la stessa influenza sulla faccia e gli occhi si chiuderanno nello stesso momento. Figura 15-10. I pulsanti per il copia/incolla [Clipboard].

Spostamento [Panning] della Toolbar: Può capitare che la toolbar sia più lunga della finestra e qualche pulsante non appaia. Tutte le toolbar si possono spostare orizzontalmente cliccandovi sopra con MMB e trascinando il mouse.

Si aggiunge anche una IPO per la Key 3. Facciamolo in modo diverso (Figura 15-11). Figura 15-11. Tutte le IPO.

In questo modo chiude gli occhi e comincia a sorridere, il sorriso è al massimo quando gli occhi sono chiusi, quindi sorride 'meno' mentre gli occhi si riaprono e si mantiene sorridente (Figura 15-12). Figura 15-12. La Sequenza.

La Curva IPO per ogni chiave controlla la miscelazione tra le chiavi relative. Tali curve dovrebbero essere create nel modo tipico. La posizione finale viene determinata aggiungendo tutti gli effetti di ciascuna singola Curva IPO. Le RVK nella Finestra Azione: Si può operare cone le RVK anche nella Finestra Azione [Action] (SHIFT-F12), non nella IPO, (Figura 15-13). L'influenza di ogni chiave viene data tramite uno slider. Sono presenti dei segni nei punti Chiave (cioè dove la IPO avrebbe un punto di controllo).

Figura 15-13. Le RVK nella Finestra Azione [Action].

I valori esterni all'intervallo [0,1]: Una parte importante delle Chiavi Relative riguarda l'uso di posizioni aggiuntive o estrapolate. Per esempio, se la posizione base per una faccia è con le labbra dritte, ed è definita una chiave per un sorriso, allora è possibile che l'applicazione negativa di tale chiave produca una smorfia di disapprovazione. Allo stesso modo, estendendo la Curva Ipo oltre 1.0, questa chiave sarà "estrapolato" producendo un sorriso eccessivo.

Animazione del Lattice A partire da Blender v2.31 Imparentare (affiliare) una mesh ad un lattice è un buon modo per applicare le deformazioni alla prima durante la modellazione, ma è anche un modo per deformarla nel tempo! Nell'animazione si possono usare i Lattici in due modi: •

Animando i vertici coi vertex keys (o i vertex keys relativi);



Spostando il lattice o l'oggetto figlio del lattice.

La prima tecnica fondamentalmente non è nient'altro che quella contenuta nelle precedenti due sezioni ma applicata ad un lattice che ha un oggetto imparentato ad esso. Con la seconda si possono creare animazioni che schiacciano cose tra rulli, o dare l'effetto di una conosciutissima astronave che accelera alla velocità Curvatura [Warp]. Si crei un'astronave e si aggiunga del lattice intorno alla nave. Si renda il lattice coi parametri in Figura 15-14. Figura 15-14. Impostazione del Lattice.

Si seleziona la nave, si estende la selezione al lattice (SHIFT premuto mentre si seleziona), e si preme CTRL-P per rendere il lattice genitore della nave. Non si vedrà alcuna deformazione della nave in quanto il lattice è ancora normale. I successivi pochi passi è importante farli in Modo Edit. Ora si seleziona il lattice, si va in Modo Edit, si selezionano tutti i vertici (AKEY), e si ridimensiona lungo l'asse x (si preme MMB mentre si inizia a dimensionare) per avere l'allungamento desiderato. La mesh della nave mostra subito la deformazione provocata dal lattice (Figura 15-15). Figura 15-15. Lo stiramento

Si modifica il lattice in Edit in modo che i vertici a destra abbiano una distanza crescente dagli altri. Questo aumenterà la distorsione appena la nave entra nel lattice. I vertici all'estrema destra sono stati ridotti in modo da ridurli quasi a un punto; questo provocherà, alla fine, la scomparsa della nave (Figura 15-16). Si seleziona ancora la nave e la si sposta attraverso il lattice per avere un'anteprima dell'animazione. Ora si può effettuare una normale animazione con un fotogramma chiave [keyframe] per far volare la nave attraverso il lattice. Figura 15-16. La deformazione finale del lattice.

Inseguimento con la Telecamera: Con questa animazione del lattice, si possono usare punti perno dell'oggetto per il puntamento o l'imparentamento (affiliazione). Esso si sposterà all'esterno dell'oggetto. Per questo si avrà bisogno di un vertice della Mesh che sia genitore di una Empty. Per fare questo, si seleziona la Empty, quindi la mesh, si entra in Modo Edit e si seleziona un vertice, poi si preme CTRL-P.

Figura 15-17. Qualche fotogramma dell'animazione risultante.

Capitolo 16. Animazione di Personaggi Introduzione: Luci, Telecamera e... AZIONE! Come si è visto nella sezione Allestimento [Rigging] nel Capitolo 4 Blender usa le Armature per l'animazione dei personaggi. Una armatura è semplicemente uno scheletro che una volta imparentato con la mesh del proprio personaggio, consentirà di definire un certo numero di pose per il personaggio lungo la linea del tempo dell'animazione. Una armatura è composta da un numero arbitrario di ossa [bones]. La dimensione, posizione e l'orientamento di ciascun osso nell'armatura viene impostata dall'utente, e l'utente troverà in questo capitolo che diverse situazioni richiederanno una particolare sistemazione delle ossa per il personaggio affinché funzioni appropriatamente. Nell'animare la propria armatura si troverà che è meglio organizzare le pose in qualcosa chiamato azione [action], che è più o meno la stessa del mondo reale. Quando camminiamo, possiamo immaginare noi stessi attraversare diverse pose istantanee come se stessimo nei fotogrammi di un film, l'intero processo del camminare è alla fine una azione. Ma ci sono azioni ed azioni. Come animatore bisognerà acquisire la capacità di conoscere come suddividere ogni movimento naturale o azione in diverse azioni più semplici con cui sarà più semplice avere a che fare. Lavorare con azioni più semplici di solito fa risparmiare tempo e lavoro (e perché no: denaro!) dato che tali azioni di solito sono riutilizzabili. Una volta impostate le prime azioni si sarà in grado di associarle usando il potente editor dell'Animazione Non Lineare (o NLA [Non Linear Animation]) di Blender, dando al proprio personaggio un'espressione viva e dei movimenti naturali. In questo capitolo si percorrerà ogni singolo dettaglio delle funzionalità di Blender relative alle Armature, alle Azioni ed all'Editor NLA. Inoltre si vedranno diverse impostazioni di armature che daranno un punto di inizio per le proprie creazioni ed idee. Rilassatevi e divertitevi.

Strumenti generali A partire da Blender v2.31 Ci sono alcune funzionalità di Blender che possono rendere la vita più facile nell'animazione di un personaggio. Andiamo a vederli, prima di approfondire i dettagli. La funzione di auto-key (chiave automatica) si può trovare nella Finestra delle Informazioni [InfoWindow]. Quando è abilitata, Blender imposterà automaticamente i Fotogrammi Chiave [KeyFrames] nello spostare gli oggetti. Questo è d'aiuto alle persone che non hanno inserito esplicitamente i Fotogrammi Chiave con IKEY. Ci sono due diversi interruttori per automatizzare le chiavi: uno per il Modo Oggetto e l'altro per il Modo Posa. Queste due scelte possono essere fatte indipendentemente l'una dall'altra dal gruppo di pulsanti Edit Method nella Finestra delle Preferenze Utente. (Figura 16-1). Figura 16-1. Le opzioni di Auto key.

Auto Keyframe su Object imposterà i Fotogrammi Chiave [KeyFrames] per gli Oggetti che si spostano in Modalità Oggetto. Gli utenti che hanno familiarità con l'interfaccia di Blender probabilmente lasceranno tale opzione disabilitata. Auto Keyframe su Action imposta i KeyFrames per le trasformazioni fatte in Modo Posa. Questo assicura che non si perdano pose dimenticando di inserire i KeyFrames. Anche gli utenti che hanno familiarità con l'interfaccia di Blender potranno trovare utile questa possibilità. È possibile far apparire diverse IPO in diverse finestre. Questo è prezioso specie quando si modificano le Azioni, che hanno una IPO diversa per ciascun osso. Figura 16-2. La Finestra IPO con l'Azione fissata.

Si può "spillare o fissare" una IPO o un'azione (la si blocca nella finestra corrente) premendo l'icona del punteruolo nell'header della finestra (Figura 16-2). I contenuti della finestra resteranno là, anche quando l'oggetto è de-selezionato, o è selezionato un altro oggetto. Si noti che il colore del menù del blocco IPO cambierà, assieme al colore di fondo della Finestra IPO. Questo serve a ricordare che la finestra non sta necessariamente mostrando la IPO dell'oggetto attualmente selezionato. Mentre una finestra è bloccata il menù di navigazione resterà sempre disponibile. In questo caso però, cambiando i dati correnti non si influenzerà l'attuale oggetto; cambieranno solo i dati mostrati.

L'Oggetto Armatura A partire da Blender v2.31 L'Oggetto armatura è l'oggetto chiave dell'animazione di personaggi. Esso è un oggetto comprendente diverse "ossa" [bones] interconnesse o non interconnesse in una "Catena di Cinematica Inversa" [Inverse Kinematics (IK) Chain] o semplicemente una "Catena" di ossa. Una Catena IK è qualcosa di più complesso di una relazione di parentela standard in quanto non solo i movimenti dell'osso "Genitore" vengono trasmessi al figlio, ma anche i movimenti dell'ultimo figlio della catena possono risalire nella catena verso l'osso genitore se c'è una richiesta per una soluzione di Cinematica Inversa. Gli ossi possono essere spostati come se facessero parte di un insieme rigido, un Oggetto indeformabile con articolazioni perfette. Si consideri l'armatura come uno scheletro per una creatura vivente. Le braccia, le gambe, la spina dorsale e la testa sono tutte parti dello stesso oggetto scheletro.

Figura 16-3. L'inserimento di un'Armatura.

Per creare una nuova armatura, si seleziona SPAZIO>>Add>>Armature dalla Toolbox (Figura 16-3). Apparirà un nuovo osso con la sua radice nella posizione del cursore 3D. Spostando il mouse, l'osso si ridimensionerà di conseguenza. Con LMB si completa l'osso e si inizia con uno nuovo che è figlio del precedente. In questo modo se ne può fare un'intera catena. Premendo ESC si cancella l'inserimento di ossa. È possibile aggiungere un altro osso ad un'armatura stando in Edit e selezionando ancora SPAZIO>>Add>>Armature dalla toolbox. Questo riavvierà il processo di inserimento di ossa, e le nuove ossa create faranno parte dell'attuale armatura ma formeranno una catena separata. È possibile anche estrudere nuove ossa da ossa precedenti, selezionando una giunzione e premendo EKEY. L'osso appena creato sarà figlio dell'osso da cui è stato estruso, ma non della sua catena IK. Mentre si è in Modo Edit, si possono eseguire le seguenti operazioni sulle ossa di un'armatura. •

Regolazione [Adjusting] - Si selezionano una o più giunture di ossa e si effettua ogni operazione di trasformazione standard per aggiustare la posizione o l'orientamento di qualsiasi osso dell'armatura. Si noti che le catene IK non possono avere alcun intervallo tra le ossa e quindi spostando l'estremità finale di un osso si sposterà l'estremità iniziale, o radice del figlio. Si può selezionare un'intera catena IK spostando il cursore del mouse su una giuntura della catena e premendo LKEY. Si può anche usare lo strumento di selezione delimitata (BKEY).



Cancellazione - Si possono cancellare uno o più ossa selezionandone l'estremità iniziale e finale. Quando si fa questo l'osso stesso verrà disegnato in un colore più evidente. Premendo XKEY si rimuoveranno le ossa evidenziate. Si noti la selezione di una sola estremità non è sufficiente per la cancellazione dell'osso.



Accostamento [Snapping] di Punti - È possibile accostare le giunture delle ossa alla griglia o al cursore usando il menù Snap accessibile con SHIFT-S.



Modo Numerico - Per modifiche più precise, premendo NKEY apparirà la finestra di immissione numerica. Qui è possibile regolare la posizione delle estremità così come la rotazione (rollìo) dell'osso attorno al proprio asse. Un modo semplice per orientare automaticamente l'asse z delle maniglie [handles] di tutte le ossa (operazione necessaria per usare in modo appropriato la funzione del ribaltamento della posa) consiste nel premere CTRL-N. Si ricordi di fare questo prima di iniziare la creazione di qualsiasi animazione dell'armatura.



Ripristino [Undo] - Mentre si è in Modo Edit, si possono cancellare le modifiche effettuate nell'attuale sessione di modifica [editing] premendo UKEY. L'armatura tornerà nello stato in cui era prima di entrare in modifica.

È anche possibile unire assieme due Armature per formare un unico Oggetto. Per fare questo, ci si assicura di essere in Modo Oggetto, si selezionano entrambe le armature e si preme CTRL-J.

Dare nomi alle Ossa Per diverse ragioni è importante dare dei nomi significativi alle ossa delle proprie armature. Primo semplificherà la vita quando si effettuerà la modifica delle Azioni nella Finestra Azione. Secondo, i nomi delle ossa vengono utilizzati per associarvi i canali dell'Azione quando si tenterà di ri-utilizzare le Azioni, e terzo, i nomi vengono usati quando si vuole utilizzare la funzione di ribaltamento automatico della posa. Si noti che i nomi delle ossa devono essere unici solo all'interno della stessa armatura. Si possono avere diverse ossa chiamate "Head" sempre che appartengano ad armature diverse.

Per cambiare i nomi di uno o più ossa, queste si selezionano in Modo Edit e si va nei Pulsanti del Contesto di Editing con F9. Dovrebbe apparire una lista con tutte le ossa selezionate nel Pannello Armature Bones (Figura 16-4). Il nome di un osso si cambia con SHIFT-LMB nel riquadro del nome dell'osso e digitando un nuovo nome. Figura 16-4. I Pulsanti di Edit per un'Armatura.

È più semplice dare i nomi alle ossa o modificando un osso per volta, o assicurandosi che l'opzione DrawNames sia abilitata nella Pulsantiera di Edit F9 (Figura 16-5. Convenzioni per il Ribaltamento [Flipping] delle Pose: Le armature dei personaggi di solito sono assialmente simmetriche. Questo vuol dire che molti elementi sono presenti in coppia, uno a sinistra e l'altro a destra. Se li si nomina correttamente, Blender può ribaltare una data posa intorno agli assi di simmetria, facilitando l'animazione di un ciclo di camminata. Per ogni coppia di ossa, il suffisso dei nomi per la sinistra e la destra sono ".L" e ".R" o ".Left" (sinistra) e ".Right" (destra) (rispettivamente). Le ossa che giacciono lungo l'asse di simmetria o che non hanno un gemello non hanno necessità di suffisso. Si noti che la parte del nome precedente il suffisso dovrebbe essere identica per entrambi i lati. In questo modo se ci sono due mani, esse saranno chiamate "Hand.R" e "Hand.L".

Le parentele e la catena IK Per cambiare le relazioni di parentela all'interno di un'armatura, si seleziona l'osso che dovrebbe essere il figlio e si va nel Pannello Armature Bones della Pulsantiera di Edit. Posto subito dopo l'osso, dovrebbe esserci un pulsante menù etichettato Child Of. Per far si che l'osso diventi figlio di un altro osso, si sceglie, da tale lista, il genitore appropriato. Si noti che questo è reso più semplice se le ossa sono state chiamate correttamente. Per sciogliere una relazione di parentela, si sceglie la voce vuota della lista. Da notare che il menù di parentela contiene solo i nomi di genitori validi. Le ossa che non possono essere imparentate (come un figlio dell'osso corrente) non appariranno. L'interruttore IK posto dopo ciascun osso con un genitore viene usato per determinare se il risolutore della IK debba propagare i suoi effetti attraverso tale giuntura. Se il pulsante IK è attivo, l'estremità finale del genitore sarà spostata per coincidere con l'estremità iniziale del figlio. Questo per soddisfare la richiesta che non ci siano buchi in una catena IK. Disattivando il pulsante IK non si ripristinerà l'estremità iniziale del figlio nella sua precedente posizione, ma spostando tale punto non si influenzerà più la posizione dell'estremità finale del genitore. Nota: Ci può essere una sola relazione IK tra un Osso ed il figlio in modo che solo uno dei Pulsanti Interruttori IK dei figli di un dato osso possa essere impostato in un dato momento. Impostazione degli Assi Locali: Per avere i migliori risultati nell'animazione, è necessario assicurarsi che gli assi locali di ciascun osso siano coerenti per tutta l'armatura. Questo dovrebbe essere fatto prima di effettuare qualsiasi animazione. È necessario anche che quando l'oggetto armatura sia nel suo orientamento non trasformato in Modo Oggetto, il davanti dell'armatura sia visibile nella vista frontale, il lato sinistro sia visibile nella vista sinistra e così via. Ci si può assicurare di

ciò orientando l'armatura in modo che le viste appropriate siano allineate e premendo CTRL-A per confermare dimensione e rotazione. Di nuovo, questo dovrebbe essere fatto prima di effettuare qualsiasi animazione.

L'orientamento del rollìo delle ossa è importante per avere dei buoni risultati dal sistema di animazione. Si può regolare l'angolo di rollìo di un osso selezionandolo e premendo NKEY. Il numero esatto che deve essere immesso dipende dall'orientamento dell'osso. L'asse z di ogni osso dovrebbe puntare in una direzione coerente per le coppie di ossa. Una buona soluzione consiste nel porre gli assi z verso l'alto (o in avanti, quando l'osso è orientato verticalmente). Questo lavoro è molto facilitato se viene abilitata l'opzione "Draw Axes" nel Pannello Armature nella Pulsantiera di Edit.

Il Pannello Armature Figura 16-5. Opzioni di disegno per le Armature.

Questo pannello contiene solo pochi pulsanti. Quando è attivato l'interruttore Rest Pos (Figura 16-5), l'armatura verrà mostrata nella sua posizione iniziale (in resta). Questo è utile se diventa necessario modificare la mesh associata all'armatura dopo aver effettuato delle messe in posa o l'animazione. Si noti che mentre questo pulsante resta premuto le Azioni e le pose restano là, ma sono temporaneamente disabilitate. I pulsanti interruttore Draw Axes e Draw Names fanno apparire gli assi locali di ciascun osso ed il suo nome nell'Inquadratura [Viewport] 3D. L'interruttore X-Ray evita che le ossa dell'armatura vengano nascoste dal modello in modo solido/ombreggiato.

Rivestimento [Skinning] A partire da Blender v2.31 Una volta che l'Armatura - lo 'scheletro del personaggio' - è pronta, è necessario imparentare ad essa la 'pelle' del personaggio. Il Rivestimento [Skinning] è una tecnica per la creazione di deformazioni regolari con un'armatura. Essenzialmente il rivestimento è la relazione tra i vertici di una mesh e le ossa di un'armatura, e come le trasformazioni di ciascun osso influiranno sulla posizione dei vertici della mesh. Nel creare un figlio di un'armatura, vengono presentate diverse scelte: Imparentare ad un Osso In questo caso, appare un menù consentendo di scegliere quale osso dovrebbe essere il genitore dello/gli oggetto/i figlio/i. Questo è magnifico per i robots, le cui parti del corpo sono mesh separate e che non ci si aspetta che si pieghino o si deformino col movimento. Imparentare ad un'Armatura Scegliendo questa opzione si deformeranno le/la mesh figlia/e secondo i propri raggruppamenti di vertici. Se le mesh figlie non hanno alcun raggruppamento di vertici, saranno soggette al rivestimento automatico. Altrimenti appare un secondo menù, proponendo: • Don't create groups • Name Groups

alcun vertice;

- non fare niente altro, viene usato il rivestimento automatico;

- crea dei gruppi di vertici vuoti i cui nomi corrispondono ai nomi degli ossi, ma non vi viene assegnato

• Create from closest bone

- si vogliono creare e popolare automaticamente i raggruppamenti di vertici.

Imparentare ad un Oggetto Armatura Scegliendo questa voce si farà in modo che i/l figli/o consideri l'armatura come una Empty per tutti gli scopi ed usi. Se si sta facendo l'animazione di un personaggio la maggior parte delle volte si imparenterà il personaggio all'Armatura con l'Opzione "Armature". Si consiglia fortemente di usare l'opzione Name Groups. Questo fornirà dei gruppi già creati, risparmiando delle noiose operazioni di creazione e assegnazione di nomi, con la possibilità di errori. La funzionalità di Create from closest bone (creare dall'osso più vicino) è attualmente in forte sviluppo. Essa userà i "tipi di Ossa" che possono essere definiti col menù a destra dei pulsanti interruttori IK (Figura 16-4) per un risultato ottimale. Attualmente sono funzionanti solo le opzioni Skinnable e Unskinnable . La prima opzione crea i Gruppi di Vertici (e li popola, se sarà richiesto) per un dato osso, la seconda opzione fa sì che l'osso venga ignorato nel processo di rivestimento. Nota: L'attuale algoritmo dell'assegnazione dei vertici crea dei raggruppamenti di vertici non ottimali, quindi si raccomanda caldamente di controllare ciascun gruppo, uno per uno.

Se una mesh non ha alcun raggruppamento di vertici, e viene resa figlia di un'armatura, Blender proverà a calcolare al volo l'informazione della deformazione. Ciò è molto lento e non è raccomandato. È invece consigliabile creare ed usare i gruppi di vertici. Peso e Distanza: Le impostazioni di Weight (Peso) e Dist (Distanza) dopo IK vengono usate solo per il rivestimento automatico che è una funzione da evitare in quanto richiede molta CPU, produce rallentamenti e risultati peggiori altri metodi.

Raggruppamenti di Vertici Figura 16-6. Gruppi di Vertici.

I raggruppamenti di vertici sono necessari per definire quali ossa deformano quali vertici. Un vertice può far parte di diversi gruppi, nel qual caso la sua deformazione sarà una media pesata delle deformazioni delle ossa cui è assegnato. In questo modo è possibile creare delle articolazioni omogenee. Per aggiungere un nuovo gruppo di vertici alla mesh, bisogna entrare in Modo Edit. Si crea un nuovo raggruppamento di vertici cliccando sul pulsante New nella Pulsantiera di Edit della mesh Pannello Mesh Tools 1 (Figura 16-6). Un gruppo di vertici può successivamente essere cancellato cliccando sul pulsante Delete. Il gruppo attivo si cambia scegliendone uno dal menù a discesa dei gruppi. I gruppi di vertici devono avere gli stessi nomi delle ossa da cui saranno manipolati. Sia come testo che come maiuscole. Ecco perché è importante la creazione automatica dei nomi! I gruppi di vertici si rinominano con SHIFT-LMB sul pulsante del nome e digitandone un nuovo nome. Si noti che i nomi dei gruppi di vertici devono essere unici all'interno di una data mesh. I vertici possono essere assegnati al gruppo attivo selezionandoli e cliccando sul pulsante Assign. A seconda delle impostazioni del pulsante Weight (peso), i vertici saranno più o meno influenzati dall'osso. Questa pesatura è importante solo per i vertici che appartengono a più di un osso. L'impostazione del peso non è un valore assoluto; ma relativo. Per ciascun vertice, il sistema calcola la somma dei pesi di tutte le ossa che influiscono sul vertice. Le trasformazioni di ciascun osso vengono quindi divise per questo valore in modo che ciascun vertice riceva sempre il 100% esatto della deformazione. Assegnando ad un vertice un peso 0 lo si rimuoverà, in effetti, dal gruppo attivo. Per rimuovere dei vertici dal gruppo corrente si selezionano e si clicca sul pulsante Remove. Premendo il pulsante Select si aggiungeranno tutti i vertici assegnati al gruppo corrente all'insieme della selezione. Premendo il

pulsante Deselect si rimuoveranno tutti i vertici assegnati al gruppo corrente dall'insieme della selezione. Questo è comodo per controllare quali vertici stanno in un dato gruppo.

Colorazione del Peso La Colorazione del Peso [Weight painting] è una tecnica alternativa per assegnare i pesi ai vertici nei raggruppamenti di vertici. L'utente può "dipingere" i pesi nel modello a vederne i risultati in tempo reale. Questo facilita l'ottenimento di giunture regolari. Per attivare la modalità di Colorazione del Peso, si seleziona una mesh con i gruppi di vertici e si clicca sull'icona del Weight Paint (Figura 16-7). Figura 16-7. Il Pulsante della Colorazione del Peso.

La mesh attiva apparirà in modalità Peso-Colore [Weight-Color]. In questo modo il blu scuro rappresenta le aree senza peso del gruppo corrente e rosso rappresenta le aree col peso pieno. Si può visualizzare un solo gruppo per volta. Cambiando il gruppo di vertici attivo nella Pulsantiera di Edit si cambierà l'apparenza della colorazione del peso. I Pesi vengono colorati nella mesh usando delle tecniche simili a quelle usate per la colorazione dei vertici, con qualche eccezione. Il "colore" è il valore del peso indicato nella Pulsantiera di Edit della mesh. Lo slider opacity nei pulsanti del colore dei vertici [vertex paint] viene usato per modulare il peso. Per cancellare il peso dai vertici, si imposta il peso [weight] a "0" e si comincia a colorare. Nota: È molto facile cambiare il peso dato che TAB porterà fuori dal Modo Peso Colore [Weight Paint] al Modo Edit ed i Pannelli rispecchieranno immediatamente il Contesto.

Modo Posa A partire da Blender v2.31 Per manipolare le ossa di un'armatura, bisogna entrare in Modo Posa. In tale modalità si possono solo selezionare e manipolare le ossa dell'armatura attiva. Diversamente dal Modo Edit, in Modo Posa non si possono aggiungere o cancellare ossa. In Modo Posa si entra selezionando un'armatura e premendo CTRL-TAB. Alternativamente il Modo Posa si può attivare selezionando un'armatura e cliccando sulla voce Pose Mode del menù Mode della testata [header] della Finestra 3D (Figura 16-8). Dal Modo Posa si può uscire usando lo stesso metodo, o entrando in Modo Edit. Figura 16-8. La voce Pose Mode del Menù.

In Modo Posa, si possono manipolare le ossa dell'armatura selezionandole con RMB ed utilizzando i tasti standard di trasformazione: RKEY, SKEY e GKEY. Non si può effettuare la traslazione [grab] di ossa che siano figlie IK di un altro osso, dato che la catena IK deve restare continua. Si preme IKEY per inserire i Fotogrammi Chiave [KeyFrames] per le ossa selezionate. Se si vuol cancellare il posizionamento di uno o più ossa, si selezionano le ossa e si preme ALT-R per cancellare le rotazioni, ALT-S per cancellare il dimensionamento e ALT-G per cancellare le traslazioni. Con questi tre comandi e tutte le ossa selezionate, l'armatura tornerà nella posizione di riposo (resta).

È spesso conveniente copiare le pose da un'armatura ad un'altra, o da un'Azione ad un diverso punto della stessa Azione. Qui entrano in gioco gli strumenti di copia delle pose nel Menù Armature. Per avere risultati migliori, ci si assicuri, prima di iniziare qualsiasi animazione, di selezionare tutte le ossa in Modo Edit poi di premere CTRL-N per auto-orientare le maniglie [handles] delle ossa. Figura 16-9. Il Pulsante del Modo Posa.

Per copiare una posa, si seleziona uno o più ossa in Modo Posa, e si seleziona la voce del Menù Armature>>Copy Current Pose nella testata della Finestra 3D (Figura 16-9). Le trasformazioni delle ossa selezionate vengono registrate nella memoria [buffer] di copia finché è necessario o finché non viene effettuata un'altra operazione di copia. Per incollare una Posa, si sceglie semplicemente la voce del Menù Armature>>Paste Pose (Figura 16-9). Se è attivo il tasto Action dei fotogrammi automatici, questi KeyFrames saranno inseriti automaticamente. Per incollare una versione speculare della Posa (se il personaggio è stato inclinato a sinistra nella Posa copiata, la Posa speculare dovrà avere l'inclinazione a destro del personaggio), si usa la voce di Menù Armature>>Paste Flipped Pose (Figura 16-9). Si noti che se l'armatura non è stata impostata correttamente, la tecnica di Incollare Ribaltato [paste flipped] potrebbe non funzionare come previsto.

Finestra Azione A partire da Blender v2.31 Viene creata un'Azione di uno o più canali Azione. Ciascun canale corrisponde ad una delle ossa dell'armatura, e ciascun canale ha una IPO Azione associata ad esso. La Finestra Azione fornisce un modo per visualizzare e modificare tutte le IPO associate con l'azione. Suggerimento: La finestra Azione si può attivare con SHIFT-F12 (Figura 16-10).

Figura 16-10. La Finestra Azione.

Per ogni insieme di chiavi di una data IPO Azione, apparirà un appropriato segno nel fotogramma [frame] nella Finestra Azione. Questo è simile al Modo "Chiave" [Key] nella Finestra IPO. Per i canali Azione con vincoli di IPO, ci saranno uno o più canali di vincoli aggiuntivi sotto ciascun canale di Azione. Questi canali possono essere selezionati indipendentemente dai canali cui appartengono (Figura 16-11). Figura 16-11. La Finestra Azione con un Vincolo [Constraint].

Un blocco di chiavi Azione [Action keys] può essere selezionato sia con RMB su di esse sia usando lo strumento di selezione delimitata (BKEY). Le chiavi selezionate sono evidenziate in giallo. Una volta selezionate, le chiavi possono essere spostate premendo GKEY e spostando il mouse. Premendo CTRL si bloccherà il movimento agli intervalli di tutti i fotogrammi. LMB confermerà la nuova collocazione delle chiavi, mentre ESC cancella l'Azione e torna nello stato precedente.

Un blocco di chiavi Azione può essere anche dimensionato orizzontalmente (di fatto si accelera o si rallenta l'Azione) selezionando delle chiavi e premendo SKEY. Spostando il mouse orizzontalmente il blocco si ridimensionerà. LMB concluderà l'operazione. Per cancellare una o più chiavi Azione selezionate si preme XKEY quando il cursore del mouse è sull'area del Fotogramma Chiave [KeyFrame] della Finestra Azione. Un blocco di chiavi Azione può essere duplicato e spostato all'interno della stessa Azione selezionando le chiavi desiderate e premendo SHIFT-D. Verrà immediatamente avviato il modo traslazione al fine di poter spostare il nuovo blocco di chiavi. In seguito LMB concluderà il posizionamento delle nuove chiavi. Con ESC si uscirà dalla traslazione, ma non si rimuoveranno i duplicati. Si possono anche cancellare una o più azioni intere o canali di vincoli (e tutte le chiavi associate) selezionando i canali nella parte più a sinistra della Finestra Azione (i canali selezionati saranno evidenziati in blu). Col mouse fermo sulla parte sinistra della finestra, si preme XKEY e si conferma la cancellazione. Si noti che non si possono eseguire "Undo" quindi si esegua con cura questa operazione. Si noti anche che cancellando un Canale Azione contenente canali di vincoli si cancelleranno anche questi canali di vincoli. Preparazione delle Azioni: Se si ha un'animazione che richiede dei vincoli e la si vuol usare nel Game Engine (che non considera i vincoli, e non è discusso in questo Libro), si può preparare l'Azione premendo il pulsante BAKE nella Barra degli strumenti della Finestra Azione. Questo creerà una nuova Azione in cui ogni fotogramma e un Fotogramma Chiave [keyframe]. Questa Azione può essere eseguita nel game engine e dovrebbe apparire correttamente con tutti i vincoli rimossi. Per un miglior risultato, ci si assicuri che tutti i bersagli dei vincoli siano posti nella stessa armatura.

Se ci si sposta in una Finestra IPO, vi si può addirittura vedere la IPO Azione associata ad un osso anziché nella Finestra Azione (Figura 16-12). La IPO Azione è una speciale tipo di IPO applicabile solo alle ossa. Invece di usare gli angoli di Eulero per codificare la rotazione, le IPO Azione usano i quaternioni, che forniscono una interpolazione migliore tra le Pose. Figura 16-12. Una IPO Azione.

I quaternioni usano un vettore a quattro componenti. Generalmente è difficile e poco intuitivo descrivere le relazioni di questi canali di quaternioni con l'orientamento risultante, ma spesso ciò non è necessario. È meglio generare Fotogrammi Chiave [keyframes] di quaternioni maneggiando direttamente le ossa, modificando solo le curve specifiche per regolare le transizioni di ingresso e di uscita.

Animazione Non Lineare A partire da Blender v2.31 L'Animazione Non Lineare è una tecnica piuttosto simile alla RVK usata per unire diverse, semplici, Azioni in Azioni fluide e complesse. La Finestra NLA dà una panoramica di tutte le animazioni della scena. Da qui si può modificare la tempistica di tutte le IPO, come se stessero Finestra Azione. Molte delle funzionalità di modifica sono le stesse della Finestra Azione. La Finestra NLA appare con CTRL-SHIFT-F12 (Figura 16-13). Figura 16-13. La Finestra NLA.

Tale finestra si può usare anche per eseguire la miscelazione di Azioni con altri lavori di animazione Non-Lineare. Le Strisce di Azione si possono aggiungere e spostare come nell'Editor delle Sequenze, generando le transizioni di miscelazione per esse. Nella Finestra NLA le Azioni appaiono come singole strisce sotto la striscia dell'oggetto; tutti i Fotogrammi Chiave [KeyFrames] dell'Azione (inclusi i Fotogrammi Chiave dei canali dei vincoli) appaiono su una sola linea (Figura 16-14). Per avere una vista espansa dell'Azione, si usa la Finestra Azione. Figura 16-14. L'Azione espansa nella Finestra NLA. Gli oggetti con canali di vincoli mostreranno una o più strisce di vincoli aggiuntive sotto la striscia dell'oggetto. La striscia del vincolo può essere selezionata indipendentemente dall'oggetto cui appartiene (Figura 16-15). Figura 16-15. Il Vincolo espanso nella Finestra NLA.

Cliccando con RMB sui nomi degli oggetti nella Finestra NLA si selezioneranno gli oggetti appropriati nella Finestra 3D. Le strisce dell'oggetto selezionate appaiono in blu, mentre quelle non selezionate in rosso. I canali dei vincoli si possono rimuovere dall'oggetto cliccando con RMB sul nome di un canale di vincoli e premendo XKEY. Nota: Si noti che nella Finestra NLA appariranno solo le armature e gli oggetti con le IPO.

Lavorare con le Strisce di Azione Le strisce di Azione possono essere aggiunte solo agli oggetti Armatura. L'oggetto non deve necessariamente avere un'Azione già precedentemente associata. Per aggiungere una striscia Azione ad un oggetto si sposta il cursore del mouse sul nome dell'oggetto nella Finestra NLA, si preme SHIFT-A e si sceglie l'Azione appropriata dal menù che appare. Si noti che si può avere una sola striscia Azione per ciascuna linea. Le strisce Azione si possono selezionare, spostare e cancellare assieme ad altri Fotogrammi Chiave [keyframes] nella Finestra NLA. Le strisce vengono valutate dall'alto in basso. I canali indicati nelle strisce successive nella lista occultano i canali indicati nelle strisce precedenti. Si può comunque creare l'animazione sull'armatura stessa. I canali nell'Azione locale sull'armatura oscurano i canali nelle strisce. Si noti che una volta creato un canale nell'Azione locale, esso si sovrapporrà a tutte le Azioni. Se si vuol creare una sovrapposizione per le sole parti della linea temporale [timeline], si può convertire l'Azione locale in una striscia Azione premendo CKEY col mouse sul nome dell'armatura nella Finestra NLA. Questo rimuove l'Azione dall'armatura e la mette alla fine della lista della striscia Azione. Ciascuna striscia ha diverse opzioni accessibili selezionando la striscia e premendo NKEY (Figura 16-16). Le opzioni disponibili sono le seguenti:

Figura 16-16. Le Opzioni della Striscia Azione NLA.

• StripStart/StripEnd

- Il primo e l'ultimo fotogramma della striscia Azione nella linea del tempo [timeline].

• ActionStart/ActionEnd

- L'intervallo di chiavi da leggere dall'Azione. La fine può essere minore dell'inizio il che farà

andare l'Azione al contrario. • Blendin/Blendout

- Il numero di fotogrammi di transizione da generare tra questa Azione e quella precedente nell'elenco

della striscia Azione. • Repeat

- Il numero di volte che deve essere ripetuto l'intervallo Azione. Non compatibile con Use Path.

- (Falcata) La distanza (in unità Blender) di cui si sposta il personaggio in un solo ciclo dell'Azione (di solito l'Azione di una camminata). Questo campo è necessario solo se è stato specificato Use Path.

• Stride

- Se un'armatura è figlia di un percorso o di una curva ed ha un valore Stride (falcata), questo pulsante sceglierà il frame dell'animazione da mostrare in base alla posizione dell'oggetto lungo il percorso. Ottimo per le camminate.

• Use Path

- Se abilitato, apparirà per sempre l'ultimo fotogramma dell'Azione, a meno di non essere sovrapposto da un'altra Azione. Altrimenti l'armatura tornerà nella sua posizione di riposo.

• Hold

- Indica che le trasformazioni in questa striscia dovrebbero aggiungersi [add] a qualunque altro dato di animazione esistente, invece di sovrascriverlo.

• Add

Vincoli A partire da Blender v2.31 I Vincoli [Constraints] sono filtri che vengono applicati alle trasformazioni di ossa e di oggetti. Questa sezione è veramente molto generale e non si riferisce solo all'animazione di personaggi dato che molte altre animazioni possono beneficiare dei vincoli. I Vincoli di Blender possono fornire diversi servizi incluso il puntamento [tracking] e la soluzione IK. Per aggiungere un vincolo ad un oggetto, ci si assicuri di essere in Modo e Contesto Oggetto (F7) e che sia selezionato un Oggetto. Se si è aggiunto un Vincolo ad un Osso ci si assicuri di essere in Modo Posa anziché in Modo Oggetto e si seleziona un Osso. La Pulsantiera del Contesto Oggetto [Object] presenterà il Pannello Constraints (Figura 16-17). Si clicca sul pulsante Add. Apparirà un menù con tutti i vincoli possibili. Figura 16-17. Il Pannello Constraints (Vincoli).

Una volta selezionato il vincolo desiderato ne appariranno i pulsanti. Un vincolo può essere cancellato cliccando sull'icona "X" successiva ad esso. Un vincolo può essere collassato cliccando sulla sua icona col triangolo arancione. Una volta collassato, un vincolo può essere spostato in alto o in basso nella lista dei vincoli cliccando su di esso e scegliendo Move Up (alza) o Move Down (abbassa) dal menù che appare. Per la maggior parte dei vincoli, si deve indicare un bersaglio [target] nel campo appropriato. In questo campo si deve digitare il nome dell'oggetto bersaglio [target] desiderato. Se il bersaglio è un osso, si deve digitare prima il nome dell'armatura dell'osso. Apparirà un altro rettangolo di testo per consentire di indicare il nome dell'osso.

Tipi di Vincoli Sono possibili diversi Vincoli. Tutti riguardano le Ossa, alcuni riguardano anche ad altri oggetti: (Ricopia Posizione) - Il vincolo obbliga l'Oggetto ad avere una o più coordinate (scelte tramite i tre Pulsanti Interruttori) della propria posizione uguali a quelle del bersaglio (Figura 16-18).

• Copy Location

Figura 16-18. Vincolo Copy Location (Ricopia Posizione).

(Ricopia Rotazione) - Questo vincolo copia la rotazione globale del bersaglio e riguarda il possessore del vincolo (Figura 16-19).

• Copy Rotation

Figura 16-19. Vincolo Copy Rotation (Ricopia Rotazione).

• Track To (Punta

A) - Questo vincolo fa sì che il possessore del vincolo punti uno dei suoi assi (per default l'asse Y) verso il bersaglio o nella direzione positiva o in quella negativa, a seconda dei Pulsanti Radio selezionati. La rotazione dell'Oggetto verrà calcolata in modo che un altro dei suoi assi (per default l'asse Z) punti verso l'alto, anche questo può essere cambiato con i Pulsanti radio di pertinenza. (Figura 16-20). Figura 16-20. Vincolo Track To (Punta A).

(Guarda Fisso) - Questo vincolo fa sì che il possessore del vincolo punti uno dei suoi assi (per default l'asse Y) verso il bersaglio o nella direzione positiva o in quella negativa, a seconda dei Pulsanti Radio selezionati. La rotazione dell'Oggetto verrà calcolata in modo che un altro dei suoi assi (per default l'asse Z) resti fisso, anche questo può essere cambiato con i relativi Pulsanti radio.

• Locked Track

In realtà questo vuol dire che l'Oggetto viene ruotato attorno al suo asse fissato in modo che il Bersaglio giaccia sul piano definito dall'asse bloccato e l'asse di puntamento. (Figura 16-21). Figura 16-21. Lock Track (Punta Bloccato).

(Segui Percorso) - Questo vincolo ha bisogno che il Bersaglio sia una Curva o un Percorso [Path]. Esso fa in modo che il possessore del vincolo segua nel tempo il percorso.

• Follow Path

Per default l'Oggetto trasla lungo la curva in 100 fotogrammi [frames]. Si può fare in modo che l'orientamento dell'Oggetto segua la curva col Pulsante Commutatore CurveFollow ed impostando i Pulsanti Radio sotto per definire quale asse dovrebbe essere tangente alla curva e quale dovrebbe puntare in alto. Per cambiare il numero di fotogrammi in cui viene seguito il Percorso bisogna modificare la IPO Speed (Velocità) della Curva. (Figura 16-22). Figura 16-22. Follow Path (Segui Percorso).

(Solutore IK) (Solo per le Ossa) - Per semplificare l'animazione di membra multi-segmentate (come braccia e gambe) bisogna aggiungere un vincolo solutore IK [IK solver]. I vincoli IK possono essere aggiunti solo alle ossa. Una volta indicato il bersaglio, il solutore proverà a spostare la radice dell'osso proprietario del vincolo verso il bersaglio, ri-orientando i genitori dell'osso (ma non sposterà la radice della catena). Se non è possibile una soluzione, il solutore proverà ad avvicinarsi il più possibile. Da notare che questo vincolo si sovrapporrà agli orientamenti di qualsiasi IK genitore dell'osso (Figura 16-23).

• IK Solver

Figura 16-23. Vincolo IK Solver (Solutore IK).

Nota: Se il Bersaglio del vincolo IK è un altro osso della stessa Armatura, come è caldamente raccomandato, bisogna assicurarsi che tale osso, di solito detto IK_Tool, non sia il figlio di alcun altro osso della catena IK, o si avranno dei risultati strani.

(Azione) (Solo per le Ossa) - Un vincolo Action può essere usato per applicare un canale di Azione da un'altra Azione all'osso, basato sulla rotazione di un altro osso o oggetto. Il modo tipico di usarlo consiste nel fare un osso per il rigonfiamento del muscolo appena si ruota la giuntura. Tale vincolo dovrebbe essere applicato all'osso che produrrà il rigonfiamento; il bersaglio dovrebbe puntare verso la giuntura che verrà ruotata (Figura 16-24).

• Action

Figura 16-24. Il Vincolo Action (Azione).

Il campo AC contiene il nome dell'Azione che contiene l'animazione della contrazione. Il solo canale richiesto in questa Azione è quello che contiene l'animazione del rigonfiamento per l'osso che possiede questo vincolo. I campi Start ed End indicano l'intervallo del movimento dall'Azione. I campi Min e Max indicano l'intervallo della rotazione dall'osso bersaglio. L'Azione tra i campi Start ed End viene mappata in questa rotazione (quindi se la rotazione di un osso è al punto Min, sarà applicata all'osso la Posa indicata in Start). Si noti che il campo Min può essere più alto di Max. Il menù a discesa indica quale componente della rotazione debba essere considerato. - Questo è un vincolo che non fa niente; non influisce direttamente sulla trasformazione dell'oggetto. L'utilizzo di un vincolo nullo è come separatore, ed il perché possa essere necessario sarà chiarito nella sezione seguente (Figura 16-25).

• Null

Figura 16-25. Il Vincolo Nullo.

Regole di Valutazione dei vincoli e Precedenza I vincoli possono essere applicati ad oggetti o a ossa. Nel caso di vincoli applicati a ossa, qualsiasi vincolo sull'oggetto armatura verrà valutato prima di considerare i vincoli sulle ossa. Quando viene valutato un dato vincolo, tutte le sue dipendenze saranno già state valutate e saranno nel/la loro orientamento/posizione finale. Esempi di dipendenze sono i genitori dell'oggetto, i genitori del genitore (se ce ne sono) e la gerarchia di qualsiasi bersaglio indicato nel vincolo. All'interno di un dato oggetto, i vincoli vengono eseguiti dall'alto in basso. I vincoli che stanno in basso nella lista possono oscurare gli effetti dei vincoli posti più in alto nella lista. Ciascun vincolo riceve in ingresso i risultati dei vincoli precedenti. L'input del primo vincolo della lista è l'output delle IPO associate all'oggetto. Se vengono indicati diversi vincoli dello stesso tipo in un blocco contiguo, il vincolo sarà valutato una volta per l'intero blocco, usando una media di tutti i bersagli [targets]. In questo modo si può vincolare un oggetto a puntare verso il punto tra due altri oggetti, per esempio. Si può usare un vincolo Nullo per inserire un'interruzione in un blocco di vincolo se si vuol valutare ciascun vincolo individualmente. I vincoli circolari (Looping) non sono permessi. Se viene rilevato un circolo (loop), tutti i vincoli implicati vengono temporaneamente disabilitati (ed evidenziati in rosso). Una volta risolto il conflitto, i vincoli saranno automaticamente riattivati.

Influence (Influenza) Lo slider influence posizionato dopo ogni vincolo viene usato per determinare quanto effetto ha il vincolo sulla trasformazione dell'oggetto. Se c'è un solo vincolo in un blocco (un blocco è una serie di vincoli dello stesso tipo che si susseguono direttamente l'un l'altro), un valore di influence di 0.0 significa che il vincolo non ha effetto sull'oggetto. Un valore di influence di 1.0 significa che il vincolo ha l'effetto totale. Se ci sono diversi vincoli in un blocco, i valori di influenza vengono usati come proporzioni. Così in questo caso se ci sono due vincoli, A e B, ciascuno con una influenza di 0.1, il bersaglio risultante sarà al centro dei due oggetti bersaglio (un rapporto di 0.1:0.1 o 1:1 o 50% per ciascun bersaglio). L'influenza può essere controllata con una IPO. Per aggiungere una IPO di vincolo per un vincolo, si apre una Finestra IPO e se ne cambia il tipo in vincolo cliccando sull'icona della catena. Dopo si clicca sul Pulsante Edit IPO successivo al vincolo su cui si vuol lavorare. Se non ci sono già delle IPO di vincoli associati col vincolo, ne verrà creato uno. Altrimenti appariranno le IPO assegnate precedentemente. Al momento, i Fotogrammi Chiave [KeyFrames] per le IPO dei vincoli si possono creare e modificare solo nella Finestra IPO, selezionando il canale INF e CTRL-LMB nello spazio della IPO. Quando si mischiano Azioni con IPO di vincoli, si noti che vengono considerate solo le IPO dell'Azione locale dell'armatura. Le IPO dei vincoli sulle Azioni nelle strisce di moto vengono ignorate. Importante: Nel caso delle Armature, le IPO dei vincoli vengono memorizzati nell'Azione corrente. Questo vuol dire che cambiando Azione cambierà anche il la IPO del vincolo.

Allestire una Mano ed un Piede di Lyubomir Kovachev A partire da Blender v2.31

La Mano L'impostazione di una mano per l'animazione è una cosa difficile. I gesti, i movimenti dei polsi e delle dita sono molto importanti, essi esprimono gli stati emotivi del personaggio ed interagiscono con gli altri oggetti e personaggi. Questo perché è molto importante avere una impostazione efficiente della mano, in grado di compiere facilmente tutti i movimenti del polso e delle dita. Ecco come si fa:

Figura 16-26. Il modello del braccio.

In questo tutorial useremo una semplice mesh vignettistica di un braccio (Figura 16-26). La seguente composizione usa un solutore IK per il movimento di tutto il braccio ed altri quattro solutori IK, uno per ciascun dito. La rotazione del polso viene ottenuta da un semplice osso FK. OK. Diamo uno sguardo alla mesh del braccio ed iniziamo a fare l'armatura. Figura 16-27. Il disegno dell'armatura.

Si posiziona il cursore 3D nella spalla, nella vista frontale si aggiunge un'armatura. Si fa una catena di tre ossa - uno nel braccio, il secondo nell'avambraccio ed il terzo inserito nel palmo della mano, terminando all'inizio del dito medio. Questa viene chiamata una catena di ossa. (Figura 16-27). Figura 16-28. L'armatura nella vista laterale.

Figura 16-29. Posizionamento dell'armatura nella vista laterale.

Ora ci si sposta nella vista laterale e si modificano le ossa in modo che si inseriscano adeguatamente nel braccio e nel palmo della mano (Figura 16-28 e Figura 16-29). Figura 16-30. Il solutore IK del polso.

Si ingrandisce la mano e si pone il cursore sulla radice dell'osso, posizionato nel palmo della mano. Si aggiunge un nuovo osso, diretto a destra, con la stessa lunghezza dell'osso del palmo della mano. Questo sarà il solutore IK per il braccio. (Figura 16-30). Figura 16-31. Allestimento del dito.

Si posiziona il cursore 3D all'inizio del dito medio ed in vista frontale si inizia la costruzione di una nuova catena, costituita da quattro ossa (Figura 16-31). Tre di queste saranno le vere ossa nel dito, e la quarta sarà un osso nullo - questo è un ossicino, diretto verso il palmo, che in seguito aiuterà a trasformare tutta la catena in una catena IK. Di nuovo, ci si sposta nella vista laterale e si modificano le ossa in modo da inserirle bene nel dito. Potrebbe essere una parte difficile e si può vedere la scena usando la funzione trackball mentre si posizionano le ossa (Figura 16-32).

Figura 16-32. Allestimento del dito.

Figura 16-33. L'inserimento del solutore IK del dito.

Ora si aggiunge il solutore IK per la catena di questo dito. Si pone il cursore 3D alla radice dell'osso nullo e si aggiunge un osso della lunghezza delle altre tre ossa del dito (Figura 16-33). Figura 16-34. L'allestimento delle altre dita.

Si ripete la stessa cosa per la creazione delle catene IK delle altre dita. La sola differenza col pollice è che esso ha due ossa, invece di tre. Si può creare ed incollare una catena e riposizionare, riposizionare, riposizionare... (Figura 16-34).

Figura 16-35. Panoramica della nomenclatura.

Ci vuole tempo per questa parte noiosa - dare un nome alle ossa. Non si può evitarlo, perché si avrà bisogno dei nomi delle ossa nella successiva parte del rivestimento [skinning]. Alle ossa vengono imposti i nomi come in Figura 16-35. Nota: I nomi delle ossa del dito 1 e del dito 2, qui non appaiono. Essi sono identici ai nomi del dito 3, cambia solo il numero.

Figura 16-36. Imparentamento del Pollice.

Ora si effettuano degli imparentamenti (affiliazioni). Si seleziona la radice dell'osso del pollice "ThumbA.R" (Figura 16-36) e nel menù edit si clicca sul campo "child of" (figlio di) e si sceglie "Hand.R" (mano destra). Abbiamo appena imparentato la catena dell'osso del pollice all'osso della mano.

Figura 16-37. Imparentamento delle altre dita.

Ripetendo lo stesso procedimento si imparentano (figlio di) le seguenti ossa (Figura 16-37): •

"Fing1A.R" a "Hand.R"



"Fing2A.R" a "Hand.R"



"Fing3A.R" a "Hand.R"



"IK_thumb.R" a "Hand.R"



"IK_fing1.R" a "Hand.R"



"IK_fing2.R" a "Hand.R"



"IK_fing3.R" a "Hand.R"

Perché facciamo tutto questo? Perché imparentiamo tante ossa a "Hand.R"? Perché quando si ruota la mano (cioè "Hand.R") tutte le dita seguiranno la mano. Altrimenti le dita resteranno nella loro posizione e si muoverà solo il palmo della mano con degli strani risultati. Nota: Nessun osso IK tool è figlio di alcun osso della catena che controlla. Tutti sono figli di "Hand.R".

Figura 16-38. Impostazione del solutore IK del polso. Selezione dell'osso.

È tempo di aggiungere i vincoli. Si entra in Modo Posa (Figura 16-38) e si va nel Contesto Object (F7). Si sceglie "Hand.R" (mano destra) e le si aggiunge un vincolo per solutore IK nel Pannello Constraints . Nel campo OB si immette il nome dell'oggetto: "Armature". L'osso si pone al centro dell'armatura, ma adesso lo aggiusteremo. Nel nuovo campo BO, apparso nella finestra del vincolo, si digita il nome dell'osso "IK_arm.R". Questo sarà l'osso solutore IK che controlla il movimento del braccio (Figura 16-39).

Figura 16-39. Impostazione del solutore IK del polso. Impostazione del Vincolo.

Ora ripetendo la stessa procedura: •

si seleziona "ThumbNull.R" e si aggiunge il solutore IK "IK_thumb.R",



si seleziona "Fing1null.R" e si aggiunge il solutore IK "IK_fing1.R",



si seleziona "Fing2null.R" e si aggiunge il solutore IK "IK_fing2.R",



si seleziona "Fing3null.R" e si aggiunge il solutore IK "IK_fing3.R".

Abbiamo finito con la parte delle ossa. In Modo Posa si selezionano i diversi solutori IK e si muovono per controllare le Catene IK. Ora si possono spostare le dita, il pollice, tutto il braccio e ruotando l'osso "Hand.R" si può ruotare tutta la mano. Andiamo ora a fare il rivestimento. Questa è la parte in cui si dice alla mesh come deformarsi. Si aggiungeranno i raggruppamenti di vertici alla mesh. A ciascun gruppo di vertici si dovrebbe dare un nome dopo averlo imposto all'osso che lo deformerà. Se non si assegnano gruppi di vertici, il processo di deformazione avrà bisogno di molta più potenza di CPU, il processo di animazione sarà drammaticamente rallentato e si potranno avere degli strani risultati. È caldamente raccomandato (quasi obbligatorio) che si usi la suddivisione delle superfici delle mesh per i propri personaggi con un basso numero di vertici. Altrimenti usando mesh con molti vertici, il rivestimento risulta più difficoltoso. Non si devono sacrificare i dettagli, ma per modellare economicamente, si usa il minor numero possibile di vertici e si usa sempre il SubSurf. Si imparenta la Mesh all'Armatura, nel menù che appare si seleziona Armature e nel seguente si seleziona Name Groups. La Mesh sarà arricchita da Gruppi di Vertici vuoti. Si seleziona la mesh del braccio, si entra in Modo Edit e ci si sposta nel Contesto Editing (F9). In Mesh Tools 1 della Pulsantiera di edit si noti il gruppetto di pulsanti con la parola Group in alto. Grazie alla funzione di nomenclatura automatica, sono già stati creati tutti i gruppi necessari. (Figura 16-40). Figura 16-40. I nomi dei gruppi di vertici.

In realtà lo schema di Raggruppamento automatico ha creato dei gruppi di vertici anche per le ossa "IK" e "null" a meno che non siano state impostate precedentemente Unskinnable. Questi sono gruppi inutili e si possono tranquillamente cancellare. Ora viene la parte difficile: Si seleziona il gruppo di vertici "ArmHi.R" dalla pulsantiera di Edit cliccando sul pulsantino col segno meno bianco. Ora si guardi la finestra 3D. Si selezionano tutti i vertici che si vuole siano deformati con l'osso "ArmHi.R" (Figura 16-41).

Figura 16-41. Il gruppo di vertici ArmHi.R.

Ora si preme il pulsante Assign nella pulsantiera Edit (Figura 16-42). Avete appena aggiunto i vertici selezionati al gruppo di vertici "ArmHi.R". Questi vertici saranno deformati dall'osso "ArmHi.R". Figura 16-42. Assegnazione dei vertici ad un gruppo.

Si ripetono gli stessi passi per gli altri gruppi di vertici: si selezionano i vertici e si assegnano al gruppo corrispondente. Questo è un processo delicato. Da fare con cura. Se qualche vertice è stato assegnato ad un gruppo per errore, non c'è da preoccuparsi. Basta selezionare i vertici non necessari e premere il pulsante Remove. Si può aggiungere un vertice a più di un gruppo di vertici. Per esempio i vertici che costruiscono la giuntura (delle dita, del polso, del gomito, ecc.) possono essere assegnati ai due gruppi di vertici situati nei pressi. Si può anche assegnare i vertici per deformare con una diversa forza. L'intensità di default è 1.000, ma si possono aggiungere vertici con una forza di 0.500 o meno. Più il valore dell'intensità è basso, meno deformato risulta il vertice. Si può fare in modo che un vertice si deformi del 75% per un osso e del 25% per un altro, o 50% per uno e 50% per un altro. È tutta questione di provare la deformazione fino a raggiungere il risultato voluto. In generale se il modello del braccio ha giunture semi-piegate (come il modello in questo tutorial si avranno dei buoni risultati senza usare dei valori di intensità diversi da 1.000. La mia regola d'oro quando si modella un personaggio è: modellare sempre braccia dita e gambe semi-flesse, non dritte. Questa è garanzia di una buona deformazione. Una volta finiti i vertici da aggiungere ai gruppi di vertici, se non ci saranno stati errori, si dovrà avere un braccio ben impostato con una mano. Si seleziona l'armatura, si entra in Modo Posa, si selezionano i diversi solutori IK e si provano il braccio e le dita (Figura 16-43). Figura 16-43. Diverse Pose.

Il piede L'impostazione delle gambe e del piede può essere la cosa più importante in tutto il processo di allestimento. Una cattiva impostazione del piede può dare il ben noto effetto del "piede strisciante [sliding-feet]", che è molto seccante e solitamente rovina tutta l'animazione. Una complessa e ben fatta impostazione del piede deve essere in grado di restare sul pavimento mentre si sposta il corpo, e di fare altre cose difficili come stare in punta di piedi, spostare le punte, ecc. Ora discuteremo delle diverse impostazioni del piede che possono essere utilizzate per i diversi usi. Figura 16-44. Un (cattivo) allestimento della gamba.

Prima di tutto vediamo come appare una cattiva impostazione del piede (Figura 16-44). Si inizia a costruire una catena di tre ossa - uno per la coscia, la seconda per la gamba e la terza per il piede. Ora si sposta il cursore 3D sulla giuntura del calcagno e si aggiunge un altro osso - questo sarà il solutore IK. Quindi si aggiunge tale osso come vincolo del solutore IK all'osso del piede. (Figura 16-45). Figura 16-45. Assegnazione del vincolo IK.

Figura 16-46. L'allestimento in Modo Posa.

Si prova l'armatura: in Modo Posa si trascina il solutore IK e lo si sposta - se si muove è OK. Ora si trascina il primo osso della catena (la coscia) e la si sposta. Si sposta anche il piede e non vogliamo che questo accada! (Figura 16-46). Di solito in un'animazione il corpo si muoverà tantissimo. L'osso della coscia è imparentato col corpo e sarà influenzato da esso. Quindi ogni volta che si sposta il proprio personaggio o se ne ruota il corpo, i piedi strisceranno sul pavimento ed andranno sotto o sopra di esso. Specie in un ciclo di camminata, questo darà vita ad un terribile risultato. Figura 16-47. Aggiunta delle dita e qualche altra Animazione IK.

Probabilmente si penserà di poter evitare l'aggiunta del secondo solutore IK alle dita (Figura 16-47). Facciamolo. Si inizia una nuova armatura. Si aggiunge una catena di quattro ossa: coscia, gamba, piede e dita. Si aggiungono due solutori IK - uno per il piede ed uno per le dita. Si imparenta l'osso del solutore IK delle dita all'osso del solutore IK del piede. Nota: Il solutore IK del dito del piede è imparentato al solutore IK del Piede. Quest'ultimo non deve essere figlio di alcun osso dell'armatura. Ci si assicuri di questo e, per cancellare una relazione di parentela, si ricordi che lo si può fare selezionando la voce vuota nel menù Child of:. Ci si ricordi di controllare ciò per tutti gli esempi successivi.

Figura 16-48. Spostamento della gamba.

Si provi questa impostazione - si trascina l'osso della coscia e lo si sposta (Figura 16-48). Bene, ora lo slittamento non è più notevole come nell'impostazione precedete, ma è sufficiente per rovinare l'animazione.

Figura 16-49. Allestimento con un osso nullo.

Si inizi una nuova armatura. Si crea una catena di tre ossa - coscia, gamba ed un osso nullo. L'osso nullo è un piccolo osso, che sarà aggiunto al solutore IK. Ora si posiziona il cursore 3D sul calcagno e si aggiunge l'osso del piede. Quindi si aggiunge l'osso del piede come solutore IK all'osso nullo (Figura 16-49). (Si può anche aggiungere un altro osso come solutore IK ed aggiungere un vincolo di "copy location" (copia posizione) all'osso del piede, col solutore IK come osso bersaglio). Figura 16-50. Allestimento con un osso nullo.

Proviamolo - ora funziona. Quando si sposta la coscia il piede resta al suo posto (Figura 16-50). Questo è buono. Ma non è abbastanza. Si sposti ancora un po' la coscia. La catena della gamba sale, ma il piede resta sul pavimento. Bene, questo è un difetto di questa impostazione, ma non si è supposto di sollevare il corpo tanto e non si alza troppo il solutore IK durante l'animazione... Figura 16-51. L'aggiunta delle dita.

Ancora, si costruisce una catena di tre ossa - coscia, gamba ed osso nullo. Si pone il cursore 3D sul calcagno e si aggiunge una catena di due ossa - l'osso del piede e quello delle dita. Ora si aggiunge un solutore IK all'osso del piede (Figura 16-51). Proviamolo. Questa è una buona impostazione con un piede stabile, isolato e le punte mobili. Ma resta il fatto che con questo allestimento non si può stare dritti sulle punte.

Figura 16-52. L'allestimento completo della gamba.

Figura 16-53. Ingrandimento dell'allestimento del piede.

Si costruisce una catena di tre ossa - coscia, gamba e osso nullo (chiamandolo LegNull) (Figura 16-52). Partendo dal punto del calcagno, si crea una seconda catena di due ossa soltanto - l'osso del piede (Foot) ed un ossicino nullo (FootNull). Si posiziona il cursore 3D alla fine dell'osso del piede e si aggiunge l'osso del dito (Toes). Dallo stesso punto si crea un osso solutore IK (IK_toes). Si posiziona il cursore 3D sul calcagno e vi si aggiunge un altro solutore IK (IK_heel). Infine, partendo da qualche parte vicino al calcagno, si aggiunge un solutore IK più grande (IK_foot) (Figura 16-53). Aggiungiamo i vincoli. Si fa quanto segue: •

Dall'osso "Toes" si aggiunge un vincolo di copy location con l'osso bersaglio "IK_toes".



Da "FootNull" - un vincolo di solutore IK (bersaglio - "IK_toes").



Da "Foot" - copy location (bersaglio - "LegNull").



Da "LegNull" - solutore IK (bersaglio - "IK_heel").

Bene, ecco fatto. Ora si prova l'armatura. Si trascina "IK_foot" e lo si alza. Si abbassa "IK_toes". Il piede cambia la propria rotazione, ma appare come se le dita fossero staccate da esso. Ma se si anima con cura si farà sempre in modo che le dita non si allontanino dal piede. Si torna nell'armatura nella sua posa iniziale. Si alzano "IK_heel" e "LegHi". Il personaggio resta sulle sue punte. Il piede può ancora apparire separato dalle dita, ma si può aggiustare la posa selezionando solo "IK_heel" e spostandola un po' in avanti o indietro. Questo allestimento può non costituire l'animazione più facile, ma dà più possibilità dei precedenti. Di solito quando non si ha necessità che il personaggio resti sulle punta, è meglio accontentarsi di un allestimento più semplice. Non si farà mai una cosa perfetta. Si può solo migliorare, ma ci saranno sempre dei difetti.

Figura 16-54. La prova dell'impostazione.

Allestimento [Rigging] di Oggetti Meccanici A partire da Blender v2.31 Le armature sono notevoli anche per allestire cose meccaniche, come robot, WarriorMechs (Guerrieri meccanici), ecc. (Figura 16-55). Figura 16-55. Un ragno meccanico a quattro zampe.

Il primo passo consiste nel creare la mesh per gli arti. Non stiamo per fare elementi organici, ma dei pezzi meccanici. Quindi non cose fatte con una singola mesh. Braccia, gambe e qualsiasi altro, sono fatte con parti rigide, ogni parte è una singola mesh, le parti si spostano o ruotano considerando le altre parti. Sebbene la Figura 16-55 rappresenta un ragno con quattro zampe, ciascuna delle quali ha 5 sezioni, è più chiaro spiegare i trucchi con un arto con una sola giuntura. Il suggerimento è questo: si crea il braccio con due sezioni uguali, e l'avambraccio, sulla destra, fatto con una sola sezione. Si notino i cilindri che rappresentano la spalla (a sinistra) ed il gomito (al centro) ed il polso (a destra) (Figura 16-56).

Figura 16-56. Il modello del Braccio.

Gli altri cilindri tra il braccio e l'avambraccio sono posti dove si collegheranno al pistone. Si noti che questo è molto facilitato se l'asse di rotazione reciproca (spalla, gomito, ecc.) sono esattamente sui punti della griglia. Anche se questo non è necessario, se si ha padronanza col menù Accostamento [Snap] di Blender.

Assi di Rotazione Si aggiungono gli assi meccanici nei punti di rotazione. Teoricamente se ne dovrebbe aggiungere uno per ciascun giunto e due per ogni pistone. Per semplificare, qui ci sono solo i due assi per il pistone, si creano con due semplici cilindri (Figura 16-57). Figura 16-57. Il modello del Braccio con l'asse di rotazione.

Due cose da notare: •

È fondamentale che il centro della mesh stia esattamente nel mezzo ed esattamente sull'asse di rotazione del pistone.



Ciascun asse deve essere imparentato alla mesh del braccio pertinente.

L'Armatura Ora è il momento di impostare l'armatura. Bastano solo due ossa (Figura 16-58). Figura 16-58. Il modello del Braccio e la sua armatura.

Per ottenere un movimento preciso, le giunture devono essere impostate con precisione sugli assi di rotazione (ecco perché vi ho detto di disporre prima questi assi sui punti della griglia, in modo da usare la funzione Move Selected To Grid). Si diano dei nomi significativi (per esempio, Arm [Braccio] e Forearm [Avambraccio]). S'imparenta la Mesh Arm all'armatura, selezionando l'opzione Bone e l'osso Arm. Si faccia lo stesso con la mesh e l'osso dell'avambraccio. Imparentare (affiliare) ad un Osso: Per imparentare ad un Osso di fatto si fa in modo che l'Oggetto segua l'osso senza alcuna deformazione. Questo è quello che dovrebbe avvenire per un robot fatto con pezzi indeformabili di acciaio!

Figura 16-59. Il modello del Braccio in Modo Posa.

Se si va in Modo Posa si può spostare il braccio ruotando le ossa. (Figura 16-59). Se si preferisce si può aggiungere un solutore di Cinematica Inversa (IK) come fatto nella sezione precedente.

Oggetti idraulici Figura 16-60. Il pistone idraulico.

Si faccia un pistone con due cilindri, uno più grande ed uno più piccolo, con una specie di testata per collegarlo ai punti di rotazione (Figura 16-60). È obbligatorio per i due pezzi avere il centro della mesh esattamente sul rispettivo asse di rotazione.

Si pongono nella posizione corretta e si imparenta ciascun pezzo del pistone alla mesh pertinente che rappresenta l'asse. (Figura 16-61). Figura 16-61. Il pistone idraulico sul braccio.

Se ora si ruotano i due pezzi nella posizione che dovrebbero assumere per formare una corretta immagine fissa si avrà un bel pistone. (Figura 16-62, a sinistra). Figura 16-62. Il pistone idraulico in Modo Posa.

Ma se si va in Modo Posa e si comincia a spostare il Braccio/Avambraccio il pistone si avvita... (Figura 16-62, a destra). Per creare un pistone funzionante bisogna fare in modo che ciascuna metà del pistone punti all'asse di rotazione dell'altra metà del pistone della mesh del cilindro (Non l'altra metà del pistone! Questo creerebbe un anello di vincoli). Ecco perché le posizioni di tutti i centri delle mesh sono critici (Figura 16-63).

Figura 16-63. Pistone Idraulico col puntamento reciproco.

Si seleziona la metà di un pistone, si seleziona la mesh dell'asse dell'altra metà del pistone, e, nel Contesto Object (F7) e nel pannello Constraints si aggiunge un vincolo Track To. I pulsanti sotto X, Y... devono essere appropriatamente impostati (Figura 16-64). Figura 16-64. Impostazione del puntamento [Track].

Nota: Se si preferisce Old Track (Vecchio Puntamento), ci si ricordi di premere anche il pulsante PowerTrack nel Pannello Anim Setting per un risultato migliore.

Ora, se si va in Modo Posa e si ruotano le ossa il pistone si estenderà e contrarrà bene, come se fosse reale. (Figura 16-65).

Figura 16-65. Il Modo Posa per il braccio con l'idraulica.

L'argomento successivo è, dato che i pistoni funzionano quando l'olio compresso viene spinto in essi, per un modello veramente accurato si dovrebbe aggiungere qualche tubo idraulico. Ma come posizionare un tubo ben deformato dal braccio al pistone? Le due estremità dovrebbero agganciarsi a due corpi rigidi ruotanti reciprocamente. Questo richiede una IK!

Figura 16-66. Inserimento di un tubo flessibile.

Si aggiunge prima una mesh con la forma del tubo che si vuol modellare (Figura 16-66). Personalmente preferisco disegnare il tubo nella sua posizione piegata come una curva smussata [beveled]. Questo viene fatto aggiungendo una curva ed un cerchio di Bézier, ed usando il Cerchio di Bézier come BevOb della curva di Bézier. Quindi si converte ciò in una mesh (ALT-C) per essere in grado di deformarla con un'armatura. Figura 16-67. nserimento dell'armatura nel tubo.

Quindi si aggiunge un'armatura. Un paio di ossa sono sufficienti. Questa armatura dovrebbe andare dall'estremità 'fissa' del tubo all'estremità 'mobile' del tubo. Si aggiunge un terzo osso che verrà usato per la soluzione della Cinematica Inversa (Figura 16-67). Ci si assicuri che l'armatura sia imparentata (affiliata) all'oggetto dove c'è la parte 'fissa' del tubo. In questo caso il braccio del robot. Si aggiunge anche una Empty all'estremità 'mobile' del tubo. (Figura 16-68).

Figura 16-68. La Empty per la soluzione dell'Animazione IK.

Figura 16-69. Il vincolo IK.

Si imparenta la Empty alla parte 'mobile' della struttura. In questo caso l'altra parte del pistone con cui il tubo è collegata. In Modo Posa si va nel Contesto Object e Pannello Constraints. Si seleziona l'ultimo osso, quello che inizia dove finisce il tubo, e si aggiunge (Add) un vincolo. Si seleziona il tipo di vincolo IK solver e si seleziona la Empty appena creata come Oggetto bersaglio OB:. (Figura 16-69). Si può provare a modificare Tolerance: e Iterations: se fa piacere. Infine, si imparenta il tubo all'Armatura tramite l'opzione 'Armature'. Si possono creare i gruppi di Vertici. Ora se, in Modo Posa, si sposta un braccio, le due parti del pistone si sposteranno in modo appropriato, e la Empty le seguirà. Questo obbliga l'armatura IK del tubo a spostarsi, per seguire la Empty, e, di conseguenza, il Tubo si deforma (Figura 16-69). Figura 16-70. Tutto il braccio del robot in Modo Posa.

Nota: Come solutore IK si può usare un osso dell'armatura, anziché una Empty, ma in questo caso non si può imparentare l'osso all'oggetto da spostare. D'altra parte si può usare un vincolo Copy Location (Copia Posizione), ma questo non è semplice dato che la copia della posizione sposterebbe l'estremità dell'armatura al centro dell'oggetto in movimento, che non è la posizione giusta.

Come impostare un'andatura usando la NLA di Claudio 'Malefico' Andaur A partire da Blender v2.31 In questo tutorial imposteremo un ciclo di camminata e la useremo con l'opzione Path nell'Editor NLA di Blender. Prima di iniziare lasciatemi dire che ci vorrà un minimo di conoscenza base degli strumenti di animazione, (impostazione dell'armatura), al fine di poter seguire il testo, ed avere tanta pazienza. È caldamente raccomandabile la lettura di tutte le precedenti parti di questo Libro, relative alla NLA. Useremo l'impostazione di un personaggio come quello spiegato nel tutorial “Allestire una Mano ed un Piede”, che è con le ossa del piede separate dalla gamba ed usa un ulteriore osso nullo per contenere il vincolo del solutore IK. Per ulteriori dettagli si riveda quella sezione! Avendo un personaggio allestito [rigged], la prima cosa da fare è definire le azioni: “WALKCYCLE” (Ciclo di camminata), “WAVE_HAND” (Ondeggia mano) e “STAND_STILL” (resta fermo). In WALKCYCLE e STAND_STILL ci saranno dei KeyFrames per quasi tutte le ossa di controllo, mentre in “WAVE_HAND” ci sono dei Fotogrammi Chiave [KeyFrames] solo per il braccio e la mano. Questo consentirà al nostro personaggio di ciondolare simultaneamente la mano mentre cammina. L'idea principale è quella di lavorare con ciascun movimento e successivamente mettere assieme tutto nella finestra NLA.

Il percorso verso il successo Ci sono due modi principali per animare un ciclo di camminata, il primo consiste nel far avanzare realmente il personaggio secondo le varie pose della falcata, il secondo consiste nel far camminare il personaggio sul posto quindi senza un vero spostamento. Quest'ultima possibilità, più difficile da impostare, è la migliore scelta per l'animazione digitale e quindi la scelta per questo tutorial. L'intero ciclo di camminata sarà una "azione" per la nostra armatura, quindi andiamo a creare una nuova azione e spostiamoci in "Modo Posa" per creare qualcosa di simile alla Posa 1 (quella chiamata “posa contact” in Figura 16-71. Figura 16-71. Delle semplici pose della camminata.

Nota: Ci sono alcuni dettagli da ricordare nel momento in cui si imposta un'armatura per una camminata. Se si adotta la nomenclatura di Blender presentata nella sezione L'Oggetto Armatura si sarà in grado di incollare pose ribaltate. Inoltre, prima di imparentare (affiliare) l'armatura al modello, ci si assicuri che i loro assi locali siano allineati agli assi globali selezionandoli e premendo CTRL-SHIFT-A.

Per animare il modello deambulante ci limiteremo ad animare un paio di ossa di controllo. Nel caso delle gambe animeremo i piedi giacché i solutori IKA aggiusteranno le gambe meglio di noi. Per essere sicuri che i piedi si spostino a distanze fisse, è meglio attivare l'opzione Grab Grid nella Pulsantiera delle Preferenze dell'Utente i pulsanti View and Controls prima di cominciare a spostare le ossa, riducendo, se necessario, la dimensione della griglia. Un buon metodo consiste nel nascondere, col relativo pulsante interruttore, tutte le ossa che non faranno parte dei Fotogrammi Chiave [KeyFrames]. In questo modo è più facile vedere il modello durante l'animazione e semplificare il compito. Normalmente un ciclo di camminata comprende quattro pose, comunemente conosciute come contact (appoggio), recoil (rimbalzo), passing (passaggio) e high-point (elevazione). Si dia uno sguardo alla Figura 16-71. La posa più importante è la “Contact”. La maggior parte degli animatori concorda col fatto che la camminata dovrebbe comin-

ciare impostando correttamente questa posa. Qui il personaggio compie la distanza maggiore che è possibile fare con un passo. Nella posa “Recoil”, il personaggio è nella posizione più bassa, con tutto il suo peso su una gamba. Nella posa “High-point”, il personaggio è nella posizione più alta, quasi a cadere in avanti. La posa “Passing” è più simile ad una posa automatica intermedia tra la recoil e la high-point. La procedura di lavoro è la seguente: 1. Si pone il modello in posa "contact" nel fotogramma 1. 2. Si inseriscono dei Fotogrammi Chiave [KeyFrames] per le ossa di controllo della propria armatura (quelli che si usano per afferrare, principalmente i solutori IK). 3. Senza deselezionarli si preme il pulsante "Copy Pose". Ora la posizione e la rotazione delle ossa è stata memorizzata. 4. Si avanza di qualche fotogramma e si preme "Paste Flip Pose". In questo fotogramma verrà incollata la posa ribaltata, quindi se nel fotogramma precedente la gamba sinistra stava in avanti, ora starà indietro, e viceversa. 5. Ancora una volta si selezionano le ossa di controllo e si inseriscono i KeyFrames per essi. 6. Si avanza ancora di qualche fotogramma (è raccomandabile che si usi lo stesso numero di fotogrammi di prima, una scelta facile è di andare, ogni volta, esattamente di 10 frame avanti) e si preme "Paste Pose", questo incollerà la posa iniziale per completare il ciclo. In questo modo si è ottenuta una camminata alla "Michael Jackson" dato che il personaggio non solleva i piedi dal pavimento. 7. Per porvi rimedio, si va in qualche posizione intermedia tra le prime due pose e si spostano i piedi in modo da ottenere qualcosa di simile alla posa "Recoil" in Figura 16-71, dove la vita raggiunge la posizione più bassa. 8. Si inseriscono i KeyFrames e si copia la posa. 9. Ora si va in un fotogramma tra le utime due pose ("contact" inversa e "contact") e si inserisce la posa ribaltata. Per finire si inseriscono i KeyFrames richiesti. Suggerimento: Se al contrario si vede che la mesh è deformata in modo anomalo, niente panico!, si va in Modo Edit per l'armatura, si selezionano tutte le ossa e si preme CTRL-N. Con questo si ricalcolerà la direzione del rollìo delle ossa che è quello che provoca l'effetto della torsione.

Si dovrebbe seguire la stessa procedura per tutte le pose da includere nel ciclo della camminata. Normalmente uso le pose "contact", "recoil", e "high point" e lascio a Blender il compito di calcolare le pose intermedie. Figura 16-72. Uso dei pulsanti copia, incolla e incolla ribaltato delle pose per essere felici!

Ora se si preme ALT-A si vedrà il personaggio camminare quasi normalmente. Sarà utile contare quante Unità Blender (B.U.) vengano percorse con ciascun passo, cosa che può essere fatta contando i quadrati della griglia tra i due piedi nella Posa 1. Questo numero è il parametro STRIDE [falcata] che useremo in seguito nella finestra NLA. Concentriamoci ora sul far avanzare realmente il personaggio nella scena.

Prima di tutto si de-seleziona l'azione del ciclo della camminata per la nostra armatura in modo che si fermi quando si preme ALT-A. Per fare questo, si preme il pulsante con la piccola X accanto al nome dell'azione nella finestra dell'Azione. Quindi si crea sul pavimento un oggetto PATH (percorso) per il nostro eroe, cercando di non farlo troppo curvo per adesso (dritto è meglio), una volta fatto si imparenta (affilia) l'Armatura del personaggio al percorso (una parentela normale, non una Follow Path (Segui Percorso!). Se tutto va bene, si vedrà, una volta premuto ALT-A, il personaggio che si muove rigidamente lungo il percorso. Ora si va nella finestra NLA e si aggiunge l'azione della camminata in un canale come una striscia NLA. Con la striscia selezionata si preme N e quindi si preme il pulsante Use Path. Nota: È opportuno che, nel momento in cui si aggiungono le azioni nella finestra NLA, nessuna azione dell'armatura corrente sia selezionata. Perché? Perché invece di una striscia NLA, vedremo i singoli KeyFrames dell'azione inseriti nel canale dell'armatura e questi KeyFrames si sovrapporranno a tutte le strisce precedenti che potremmo aver aggiunto prima. Ad ogni modo, se si inserisce un'azione in questo modo, si possono sempre riconvertire i KeyFrames in una striscia NLA premendo CKEY.

Figura 16-73. Una bella passeggiatina.

Se si avvia ancora l'animazione può apparire qualcosa di strano. Questo è perché non si è impostato il parametro Stride. Questo valore è il numero di Unità Blender che devono essere percorse per ogni singola falcata ed è importantissimo che sia calcolata con molta precisione. Una volta calcolato si dovrebbe inserire nel Pulsante Numerico Stride cha appare se, una volta selezionata la striscia, si preme NKEY. Se si regola bene e se la falcata è stata impostata correttamente, il personaggio non dovrebbe "slittare" lungo il percorso. Un modo per stimare il valore Stride accuratamente consiste nel contare quanti quadrati della griglia ci sono tra le punte dei piedi della Posa 1. Questo valore viene moltiplicato per 2 e per la scala della griglia (di solito 1 quadrato della griglia = 1 B.U. ma potrebbe non essere così, come in questo esempio, 2 quadrati della griglia = 1 B.U.) fornisce il valore richiesto per STRIDE. Nell'esempio ci sono 7.5 quadrati con GRID=1.0, dato che la scala della Griglia è 1.0 avremo: STRIDE = 7.5 x 1.0 x 2 = 15. Figura 16-74. Calcolo di STRIDE. Se necessario si raffini la griglia!

Probabilmente si vuole che il personaggio cammini più velocemente o più lentamente oppure che si fermi nel frattempo. Si può

fare questo modificando la curva Speed [velocità] del percorso. Si seleziona il percorso e si apre una finestra IPO. Si vedrà una curva Speed normalizzata tra 0 e 1 nelle ordinate (l'asse Y) e che va dal fotogramma 1 all'ultimo nell'asse X. La coordinata Y rappresenta la posizione relativa nel percorso e la pendenza della curva è la velocità degli oggetti imparentati. In Modo Edit aggiungeremo due punti con la stessa coordinata Y. Questa parte piatta rappresenta una pausa nel movimento e, nella figura, va dal fotogramma 40 al fotogramma 60. Il problema qui, è che quando il personaggio si ferma per la pausa nella curva, lo vedremo in una posa "congelata" con un piede sul pavimento e l'altro per aria. Figura 16-75. Fare una pausa durante il cammino

Per risolvere questo problema useremo la finestra NLA. Quello che si deve fare è inserire l'azione “STAND_STILL”, questa è la posa in cui il personaggio è a riposo. Io ho definito questa azione come un solo fotogramma cancellando tutti gli spostamenti e le rotazioni delle ossa. (Si veda Cancellazione delle Trasformazioni), e quindi si spostano un paio di ossa per avere un atteggiamento a “riposo”. Dato che la pausa va dal fotogramma 78 al fotogramma 112 si dovrà inserire quest'azione di "fermo [still]" dove coincide esattamente con la pausa. Per le animazioni senza inizio né fine possiamo usare sbrigativamente le opzioni BlendIn e BlendOut, con cui si possono regolare il numero di fotogrammi [frames] usati per miscelare le azioni ed ottenendo in questo modo una transizione più naturale tra esse. Così il personaggio cambierà gradualmente la sua posa e tutto apparirà giusto. Se non si usano i valori BlendIn e BlendOut, da impostarsi nella dialog NKEY, allora si dovrà avviare l'azione BlendIn fotogrammi in anticipo e completarla BlendOut fotogrammi in ritardo, dato che il personaggio potrebbe continuare a muoversi mentre cambia posa. Ovviamente è possibile combinare diversi cicli di camminata nello stesso percorso cambiando, per esempio, da passeggiata a corsa nella zona a velocità più alta. In tutte queste situazioni si dovrà considerare che si aggiungeranno diversi effetti da una striscia NLA alle precedenti strisce. Quindi, la scelta migliore consiste nell'inserire il ciclo della camminata e fermare le strisce prima delle altre.

Muovere le mani mentre si cammina Per aggiungere della azioni nella finestra NLA bisogna posizionare il cursore del mouse sul canale dell'armatura e premere SHIFT-A. Apparirà un menù con tutte le azioni disponibili. Se non si posiziona il puntatore sul canale di un'armatura apparirà, invece, un messaggio di errore ERROR: Not an armature" . Quindi si pone il puntatore sulla striscia dell'armatura, si preme SHIFT-A e si aggiunge l'azione “WAVE_HAND”. Dato che questa particolare azione consiste solo nell'agitare il braccio per dire “ciao” in qualche punto durante la passeggiata, non si userà l'opzione “Use Path” ma lo sposteremo nel tempo in modo che sovrapponga i KeyFrames delle braccia dall'azione della passeggiata. Si sposta il puntatore sulla striscia e si preme NKEY o basta trascinarlo e dimensionarlo secondo i propri gusti.

Figura 16-76. Salve ragazzi!

Dato che tale azione è l'ultima che deve essere calcolata (si ricordi che Blender valuta le azioni dall'alto in basso nell'Editor NLA), essa si sovrapporrà a qualsiasi KeyFrames definito per le ossa implicate nelle azioni precedenti. Bene, non c'è più molto da dire sulla NLA e le armature. È ora di sperimentare e mostrare i risultati del proprio lavoro al mondo. Un'ultima raccomandazione: è possibile editare i KeyFrames nella finestra NLA. Si possono duplicare frames (SHIFT-D), afferrarli e spostarli [grab] (GKEY) ed anche cancellarli (XKEY), ma si cancellino con attenzione i KeyFrames, in quanto verranno persi per sempre dall'attuale azione selezionata. Quindi si ponga cura e si convertano sempre in strisce NLA prima di cancellare qualcosa. Ciao e buona fortuna Teste Blendate!!

IV. Rendering C'è molto di più nel motore del rendering di Blender di quello che si vede premendo F12. Questa Parte vi guiderà attraverso tutte le funzionalità del rendering di Blender, dal Motion Blur ai bordi da Vignetta. Un intero capitolo viene dedicato al motore della Radiosità incluso in Blender, che consente di creare scene illuminate molto realistiche senza usare alcuna lampada.

Capitolo 17. Il Rendering A partire da Blender v2.31 Il rendering è il processo finale della CG (abbreviazione di post-processing, ovviamente) ed è la fase in cui finalmente viene creata l'immagine corrispondente alla propria scena 3D. Alla pulsantiera del Rendering si accede tramite il Contesto Scene ed il subcontesto Render (F10 o il pulsante ed i Pannelli del rendering appaiono nella Figura 17-1.

). I Pulsanti

Figura 17-1. I Pulsanti del Rendering.

Il rendering della scena corrente viene eseguito premendo il grande tasto centrale RENDER nel pannello Render, o premendo F12. Il risultato del rendering viene mantenuto in un buffer e mostrato in una propria finestra. Può essere salvato premendo F3 o col menù File>>Save Image. Il rendering dell'immagine viene effettuato secondo le dimensioni definite nel Pannello Format (Figura 17-2).

Figura 17-2. I tipi di Immagine e le dimensioni.

Normalmente le dimensioni SizeX e SizeY sono 320x256 e possono essere cambiate come per qualsiasi altro Pulsante Numerico. I due pulsanti sotto definiscono il rapporto di aspetto [aspect ratio] dei pixel. Questo è il rapporto tra le dimensioni X e Y del pixel dell'immagine. Di norma è 1:1 dato che i pixel dello schermo del computer sono quadrati, ma può essere cambiato se si sta creando un cortometraggio per la televisione dato che i pixel TV non sono quadrati. Per semplificarsi la vita il blocco di pulsanti più a destra (Figura 17-3) fornisce delle comuni pre-selezioni: Figura 17-3. Dimensioni pre-imposte dell'immagine.

• PAL

720x576 pixel con un rapporto di aspetto di 54:51.

• NTSC

720x480 pixel con un rapporto di aspetto di 10:11.

• Default

Stesso del PAL, ma con tutte le opzioni del TV, come spiegato nelle seguenti sezioni.

640x512 con un rapporto di aspetto di 1:1. Questa impostazione riduce automaticamente l'immagine del 50%, per produrre, di fatto, un'immagine 320x256.

• Preview

• PC

640x480 con un rapporto di aspetto di 1:1.

• PAL 16:9

720x576 con un rapporto di aspetto di 64:45, per gli schermi TV larghi a 16:9.

Impostazione standard panoramica 576x176 con un rapporto di aspetto di 115:100. Si vedano le sezioni di pertinenza per il rendering 'panoramico'.

• PANO

• FULL

1280x1024 con un rapporto di aspetto di 1:1.

Rendering Parziali A partire da Blender v2.31 È possibile effettuare il rendering di un'immagine in porzioni, una dopo l'altra, anziché avere tutto in una volta. Questo è utile per le scene molto complesse, dove il rendering di piccole sezioni successive, richiede il calcolo di una piccola parte della scena, usando meno memoria. Inserendo un valore diverso da 1 nei Pulsanti Numerici Xparts e Yparts nel Pannello Render (Figura 17-4), si impone a Blender di suddividere l'immagine in una griglia di Xparts per Yparts sotto-immagini, di cui, quindi, viene effettuato il rendering, una dopo l'altra ed infine assemblate assieme.

260

Capitolo 17. Il Rendering Figura 17-4. I pulsanti per il rendering parziale.

Nota: Blender non gestisce più di 64 porzioni.

Rendering Panoramici A partire da Blender v2.31 Per ottenere dei rendering panoramici, fino ad una vista completa di 360° sull'orizzonte, Blender fornisce una procedura automatica. Se Xparts è maggiore di 1 ed il pulsante Pano del Pannello Render è premuto (Figura 17-5), allora l'immagine del rendering viene creata in modo da essere larga Xparts per SizeX ed alta SizeY, il rendering di ciascuna parte viene effettuato come se la telecamera ruotasse opportunamente per ottenere le immagini senza discontinuità (cuciture). Figura 17-5. Il pulsante per il Panorama.

La Figura 17-6 mostra un'impostazione di prova con 12 sfere attorno alla telecamera. Lasciando la telecamera dov'è, si ottiene il rendering mostrato in Figura 17-7. Impostando Xparts a 3 e selezionando Pano il risultato è un'immagine tre volte più larga in cui appare un ulteriore fotogramma della telecamera a destra ed una a sinistra (Figura 17-8). Figura 17-6. Impostazione di prova del Panorama.

Per ottenere qualcosa di simile senza l'opzione Panorama, il solo modo consiste nel ridurre la lunghezza focale della telecamera. Per esempio, la Figura 17-9 mostra una vista paragonabile, ottenuta con una lunghezza focale di 7.0, equivalente ad un angolo molto ampio, o a delle lenti a "occhio di pesce" [fish-eye]. La distorsione è molto evidente.

261

Figura 17-7. Il rendering non panoramico.

Figura 17-8. Il rendering panoramico.

Figura 17-9. Il rendering a "occhio di pesce" [Fish-eye].

Per ottenere una vista completa di 360° è necessario qualche aggiustamento. È noto che una lunghezza focale di 16.0 corrisponde ad un angolo di vista di 90°. Quindi un rendering panoramico con 4 Xparts ed una telecamera con una lente di 16.0 produce una visione piena a 360°, come quella mostrata in Figura 17-10. Questa è ampiamente distorta, dato che una lente di 16.0 è una lente per grandangolo, e distorce ai bordi. Figura 17-10. Un panorama completo di 360° con lenti da 16.0.

Per ottenere delle viste non distorte, la lunghezza focale dovrebbe essere all'incirca 35.0. La Figura 17-11 mostra il risultato per un panorama con 8 Xparts ed una telecamera con una lente da 38.5, corrispondente ad un angolo di vista di 45°. Figura 17-11. Un panorama completo di 360° con lenti da 38.5.

L'immagine è molto meno distorta, ma si deve porre particolare attenzione alla proporzione. L'immagine originale era di 320x256 pixel. Il panorama nella Figura 17-10 è largo 4 x 320. Per mantenere questo nuovo panorama della stessa larghezza, si deve

262

Capitolo 17. Il Rendering impostare il SizeX dell'immagine a 160 in modo che 8 x 160 = 4 x 320. Ma la dimensione dell'angolo di vista della telecamera capita per la dimensione maggiore, perciò, se SizeX viene mantenuta a 256 l'immagine si apre di 45° verticalmente ma meno che orizzontalmente, in questo modo il risultato finale non è un panorama di 360° a meno che SizeX ≥ SizeY o si voglia fare qualche tentativo.

Antiscalettatura [Antialiasing] A partire da Blender v2.31 Un'immagine generata dal computer è composta da pixel, questi pixel, ovviamente, possono essere di un solo colore. Nel processo di rendering il motore del rendering deve quindi assegnare un solo colore a ciascun pixel a seconda dell'oggetto che si sta rappresentando con tale pixel. Questo porta spesso a dei pessimi risultati, specialmente sui bordi netti, o dove siano presenti delle linee sottili, ed è particolarmente evidente per le linee oblique. Per superare tale problema, conosciuto come Scalettatura o Aliasing, è possibile far ricorso ad una tecnica di Anti-scalettatura o Anti-Aliasing. Fondamentalmente, ciascun pixel è 'sovracampionato' [oversampled], nel rendering è come se ci fossero 5 pixel o più, ed al pixel in esame viene assegnato un colore 'medio'. I pulsanti per controllare l'Anti-Aliasing, o Sovracampionamento [OverSAmple (OSA)], stanno sotto il pulsante del rendering nel Pannello Render (Figura 17-12). Premendo il pulsante OSA viene attivata l'antiscalettatura, selezionando uno dei quattro pulsanti numerici sotto di esso, si sceglie il livello di sovracampionamento (da 5 a 16). Figura 17-12. I Pulsanti per l'OSA (Sovracampionamento).

Blender usa un sistema per il rendering ad Accumulazione di Delta che mischia i campionamenti. I valori di OSA (5, 8, 11, 16) sono numeri pre-impostati che indicano il numero di campionamenti; un valore alto produce bordi migliori, ma rallenta il rendering. La Figura 17-13 mostra dei rendering con l'OSA disattivato e con campionamenti di OSA a 5 e a 8 campioni. Figura 17-13. Rendering senza OSA (a sinistra) con OSA=5 (al centro) ed OSA=8 (a destra).

Formati di output A partire da Blender v2.31 Il file viene salvato in qualsiasi formato che sia stato selezionato dal pulsante Menù di pertinenza nel Pannello Format (Figura 17-2). Da qui si possono selezionare molti formati di immagini o di animazioni (Figura 17-14).

263

Figura 17-14. I formati delle Immagini e delle Animazioni.

Il tipo di immagine di default è il Targa, ma, dato che l'immagine viene immagazzinata in un buffer e poi salvata, usando questo menù, è possibile cambiare il tipo di file dopo il rendering e prima di salvare. Normalmente Blender riproduce immagini a colori (RGB) (la prima linea in basso in Figura 17-2) ma sono possibili anche immagini in Bianco e Nero [Black and White] (BW) ed a colori con un Canale Alfa (RGBA). Si faccia attenzione al fatto che Blender non aggiunge automaticamente l'estensione ai file, quindi qualsiasi estensione .tga o . png deve essere scritta esplicitamente nella finestra per il Salvataggio del File. Ad eccezione del formato Jpeg, che produce una compressione con perdita, tutti gli altri formati sono più o meno equivalenti. In genere non è una buona l'idea di usare il JPG dato che è a perdita di informazione. Meglio usare il formato Targa e convertirlo in JPG per pubblicarlo sul web, mantenendo l'originale in Targa. Ad ogni modo, per quello che riguarda gli altri formati: TARGA raw è il Targa non compresso, spreca molto spazio su disco. PNG sta per "Portable Network Graphics", uno standard per rimpiazzare il vecchio GIF in quanto è a perdita di informazione, ma supporta immagini con tutti i colori. HamX è un formato RLE (Run Length Encoded bitmap) ad 8 bit sviluppato internamente; crea dei file estremamente compatti che possono essere visualizzati rapidamente. Da usarsi solo per l'opzione "Play". Iris è il formato standard di SGI, ed Iris + Zbuffer è lo stesso con in più le informazioni dello Zbuffer. Infine Ftype usa un file "Ftype", per indicare che questo file serve come esempio per i tipi di formati grafici in cui Blender deve salvare le immagini. Tale metodo consente di elaborare i formati con una 'mappa di colori'. I dati della mappa dei colori vengono letti dal file ed usati per convertire i grafici disponibili a 24 o 32 bit. Se viene specificata l'opzione "RGBA", il colore standard numero '0' viene usato come colore di trasparenza. Blender legge e scrive IFF (Amiga), Targa, (SGI) Iris e formati a mappa di colore CDinteractive (CDi) RLE. Per quello che riguarda le animazioni: • AVI Raw

- salva un AVI come fotogrammi non compressi. Senza perdita, ma sono file enormi.

- salva un AVI come una serie di immagini Jpeg. Con perdita, file più piccoli ma non tanto quanto si potrebbe fare con un algoritmo di compressione migliore. Inoltre il formato AVI Jpeg non viene letto da alcuni riproduttori.

• AVI Jpeg

- salva un AVI comprimendolo con un codec. Blender automaticamente prende la lista dei codecs disponibili dal sistema operativo consentendo di impostarne i parametri. È possibile anche cambiarlo o cambiarne le impostazioni, una volta selezionato, tramite il pulsante Set Codec che appare (Figura 17-15).

• AVI Codec

Figura 17-15. Le impostazioni del Codec AVI.

Per un'animazione AVI è possibile impostarne la velocità dei fotogrammi (frame rate) (Figura 17-15) che, normalmente, è di 25 fotogrammi [frames] al secondo.

Rendering di Animazioni A partire da Blender v2.31

264

Capitolo 17. Il Rendering Il rendering di un'animazione viene controllato tramite il Pannello Anim (Figura 17-16). Figura 17-16. I pulsanti per il rendering dell'animazione.

Il pulsante ANIM avvia il rendering. Il primo e l'ultimo fotogramma dell'animazione sono indicati da due pulsanti numerici in basso (Sta: ed End:), e solitamente sono impostati a 1 e 250. Normalmente viene effettuato il rendering dell'animazione della scena 3D, per usare l'editor delle sequenze bisogna selezionare l'interruttore Do Sequence. Di solito il rendering dell'animazione viene effettuato nella directory indicata nel Pannello Output (Figura 17-17). Se è stato selezionato un formato AVI, allora il nome sarà ####_####.avi dove '####' indica il frame di inizio e di fine dell'animazione, gli interi sono riempiti con zeri per arrivare a 4 cifre. Figura 17-17. Posizione dell'animazione ed estensioni.

Se viene scelto un formato di un'immagine, dall'altra parte, una serie di immagini chiamate ####, ('####' è il numero del frame di pertinenza) vengono create nella directory. Se è necessaria l'estensione del file, questa viene ottenuta premendo l'interruttore Extensions (Figura 17-17). Animazioni Complesse: A meno che la propria animazione non sia particolarmente semplice, e ci si aspetta di completare il rendering in mezzora o meno, è sempre una buona idea effettuare il rendering come fotogrammi separati in formato Targa anziché un file AVI dall'inizio. Questo facilita l'eventuale recupero, se manca la corrente e si deve ricominciare il rendering, dato che dei fotogrammi saranno già stati prodotti. È una buona idea anche perché, se è presente un errore in pochi fotogrammi, si possono effettuare le correzioni e rieseguire il rendering solo dei fotogrammi interessati. Si può produrre un file AVI, partendo dai frame separati, con l'editor di sequenze di Blender o con un programma esterno.

Effetto Movimento (Motion Blur) A partire da Blender v2.31 Solitamente il rendering delle animazioni di Blender viene effettuato producendo una sequenza di immagini perfettamente ferme. Questo non è realistico, dato che gli oggetti in moto rapido appaiono 'in movimento', vale a dire, offuscati dal loro stesso moto, sia nei fotogrammi di un film che in una fotografia di una vera macchina fotografica. Per ottenere questo Effetto Movimento (Motion Blur), si può imporre a Blender di effettuare il rendering non solo del fotogram-

265

ma corrente ma di altri fotogrammi, tra quelli reali, e fonderli per ottenere un'immagine dove i dettagli in rapido movimento vengono 'sfocati'. Figura 17-18. I pulsanti dell'Effetto Movimento (Motion Blur).

Per accedere a tali opzioni si seleziona il pulsante MBLUR successivo al pulsante OSA nel Pannello Render (Figura 17-18). Questo fa sì che Blender effettui il rendering di più fotogrammi 'intermedi' a seconda del numero di sovracampionamento impostato (5, 8, 11 o 16) e li accantona, uno sull'altro, per formare un unico fotogramma. Il pulsante numerico Bf: o Fattore di Sfocatura [Blur Factor] definisce la durata dell'otturatore come sarà mostrato nell'esempio sotto. Non è necessaria l'impostazione del Pulsante OSA dato che il processo del Motion Blur aggiunge comunque un po' di effetto anti-scalettatura [antialiasing], ma per ottenere un'immagine realmente omogenea, si può attivare anche l'effetto OSA. Questo fa sì che ciascuna immagine sovrapposta subisca l'effetto di anti-aliasing. Per afferrare meglio il concetto si assuma di avere un cubo, che si sposta uniformemente di 1 unità Blender, a destra, ogni fotogramma. Questo è certamente veloce, specie se il cubo stesso ha i lati di soli 2 unità Blender. La Figura 17-19 mostra il rendering del frame 1 senza l'Effetto Movimento, la Figura 17-20 mostra il rendering del frame 2. La scala sotto il cubo aiuta ad apprezzare il movimento di 1 unità Blender. Figura 17-19. Il fotogramma 1 del cubo in movimento senza il Motion Blur.

Figura 17-20. Il fotogramma 2 del cubo in movimento senza il Motion Blur.

D'altra parte, la Figura 17-21 mostra il rendering del frame 1 col Motion Blur effettuato con 8 frame 'intermedi'. Bf è impostato a 0.5; questo vuol dire che gli 8 frame 'intermedi' vengono calcolati su un periodo di 0.5 frame a cominciare dal frame 1. Ciò è molto evidente dato che tutto l' 'offuscamento' del cubo si ha su mezza unità prima e mezza unità dopo il corpo principale del cubo.

266

Capitolo 17. Il Rendering Figura 17-21. Il frame 1 del cubo in movimento con un Motion Blur, 8 campionamenti, Bf=0.5.

La Figura 17-22 e la Figura 17-23 mostrano l'effetto dell'aumento del valore di Bf. Un valore maggiore di 1 implica un otturatore molto 'lento' della telecamera. Figura 17-22. Il frame 1 del cubo in movimento con un Motion Blur, 8 campionamenti, Bf=1.0.

Figura 17-23. Il frame 1 del cubo in movimento con un Motion Blur, 8 campionamenti, Bf=3.0.

Risultati migliori di quelli mostrati si possono ottenere impostando 11 o 16 campionamenti invece di 8, ma, ovviamente, dato che sono necessari molti rendering separati come campionamenti un rendering col Motion Blur richiede più tempo di uno senza. Il miglior Anti-Aliasing: Se il Motion Blur è attivo, anche se nella scena non c'è niente in movimento, Blender, in realtà, 'vibra' un po' la telecamera tra un fotogramma 'intermedio' ed il successivo. Questo implica che, anche se OSA è disattivato, le immagini risultanti hanno un buon Anti-Aliasing. Un Anti-Aliasing ottenuto da un MBLUR e comparabile ad un Anti-Aliasing con l'OSA dello stesso livello, ma generalmente è più lento. Questo è interessante perché, per ogni scena complessa dove un livello di OSA di 16 non dia un risultato soddisfacente, si può migliorare usando sia OSA che MBlur. In questo modo si avranno tanti campionamenti per ciascun frame quanti saranno i frame 'intermedi', ottenendo, di fatto, un sovracampionamento a livello di 25, 64, 121, 256 se si scelgono 5, 8, 11, 16 campioni rispettivamente.

Profondità di Campo A partire da Blender v2.31 La Profondità di Campo [Depth of Field (DoF)] è un interessante effetto della fotografia nel mondo reale che aggiunge molto alle immagini generate dalla CG. Essa è conosciuta anche come Sfocatura Focale [Focal Blur]. Il fenomeno è collegato al fatto che una telecamera del mondo reale può mettere a fuoco su un soggetto ad una data distanza, quindi gli oggetti più vicini e quelli più lontani alla telecamera stanno al di fuori del piano focale, apparendo, quindi, leggermente

267

sfocati nella fotografia risultante. Il grado di sfocatura degli oggetti più vicini e più lontani varia molto con la lunghezza focale e la dimensione dell'apertura della lente e, se usato abilmente, può dare degli effetti molto piacevoli. Il rendering di Blender non fornisce un meccanismo automatico per ottenere l'effetto della Profondità di Campo, ma ci sono due strade alternative per ottenerlo. Una si basa sulle sole componenti interne di Blender, e sarà discussa qui. L'altra richiede un plugin di sequenza esterno e sarà descritto nel Capitolo dell'Editor della Sequenza. Il trucco per ottenere la Profondità di campo in Blender si affida ad un'abile uso del Motion Blur descritto prima, facendo muovere circolarmente la telecamera attorno a quella che dovrebbe essere l'apertura dell'obiettivo della lente della 'macchina fotografica reale', e puntando costantemente verso un punto dove si desidera che la messa a fuoco sia 'perfetta'. Si supponga di avere una scena con delle sfere allineate, come mostrato a sinistra nella Figura 17-24. Un rendering standard di Blender produrrà l'immagine sulla destra della Figura 17-24, con tutte le sfere perfettamente nette e messe a fuoco. Figura 17-24. La scena di test per la Profondità di Campo.

Il primo passo consiste nel porre una Empty (SPAZIO>>Add>>Empty) dove ci sarà il fuoco. Nel nostro caso al centro della sfera di mezzo (Figura 17-25). Figura 17-25. Sistemazione della Empty per il Fuoco.

Quindi, assumendo che la Telecamera sia già piazzata nella posizione corretta, si pone il cursore sulla Telecamera (Si seleziona la Telecamera, SHIFT-S>>Curs->Sel) e si aggiunge un cerchio NURBS (SPAZIO>>ADD>>Curve>>NURBS Circle). Si esce dal Modo Edit (TAB) si dimensiona la circonferenza. Questo è molto arbitrario, e si potrebbe volerla ri-dimensionare in seguito per un risultato migliore. Fondamentalmente, la dimensione della circonferenza è collegata all'apertura fisica, o diaframma, della 'reale' telecamera. Più grande è il cerchio più sarà limitata la regione con una perfetta messa a fuoco, e gli oggetti più vicini e quelli più lontani appariranno sfocati. L'offuscamento dato dalla Profondità di campo sarà meno evidente rimpicciolendo la circonferenza. Ora si faccia in modo che la circonferenza insegua la Empty con un vincolo o col vecchio Inseguimento [Tracking] come in Figura 17-26. Dato che la normale al piano su cui giace la circonferenza è l'asse Z locale, si avrà un inseguimento corretto in modo che il locale asse Z della circonferenza punti verso la Empty e la circonferenza sia ortogonale alla linea che connette il suo centro alla Empty.

268

Capitolo 17. Il Rendering Figura 17-26. La circonferenza NURBS che insegue la Empty del Fuoco.

Si seleziona la Telecamera poi la circonferenza e si imparenta la Telecamera alla circonferenza (CTRL-P). La circonferenza sarà il Percorso della Telecamera in modo che si possa usare una semplice parentela e quindi si attiva il pulsante CurvePath, o si usa la relazione di parentela Follow Path. Con la circonferenza ancora selezionata, si apre una finestra IPO si seleziona il tipo di Curva IPO. La sola IPO disponibile è 'Speed'. CTRL-LMB due volte dove capita nella finestra IPO per aggiungere una IPO con due punti casuali. Quindi si posizionano questi due punti numericamente utilizzando NKEY per Xmin e Ymin a 0, Xmax e Ymax a 1. Per completare la modifica della IPO la si rende ciclica con la voce di menù Curve>>Extend Mode>>Cyclic . Il risultato finale dovrebbe essere simile a quello mostrato in Figura 17-27. Figura 17-27. La IPO Speed IPO per il percorso circolare NURBS.

Con queste impostazioni abbiamo in realtà creato una Telecamera che ruota attorno alla propria posizione lungo la circonferenza NURBS in esattamente 1 fotogramma. Ciò cambia leggermente le viste della scena con l'opzione del Motion Blur ed alla fine crea l'effetto della Profondità di Campo. Resta un'ultima regolazione da fare. Si seleziona prima la Telecamera e quindi la Empty del fuoco, e si fa in modo che la Telecamera punti alla Empty nel modo che si preferisce. Ora la Telecamera dovrebbe puntare verso la Empty, come in Figura 17-28. Figura 17-28. La Telecamera che punta verso la Empty del Fuoco.

269

Se ora si preme ALT-A non si dovrebbe vedere alcun movimento in quanto la Telecamera compie esattamente un intero giro per ogni fotogramma, quindi appare come ferma, tuttavia il motore del Motion Blur rileverà questi spostamenti. L'ultimo tocco è quello di andare nella pulsantiera del Rendering (F10) e selezionare il pulsante MBLUR. Molto probabilmente non ci sarà bisogno di attivare il pulsante OSA, dato che il Motion Blur effettuerà implicitamente un po' di antialiasing. È altamente raccomandato che si imposti il fattore del Motion Blur a 1, dato che, in questo modo, si attraverserà tutto il frame per la sfocatura [blurring], per tutta la lunghezza della circonferenza. È necessario anche impostare i sovracampionamenti al massimo livello (16) per il risultato migliore (Figura 17-29). Figura 17-29. Le impostazioni per il Motion Blur.

Effettuando un rendering (F12) si otterrà il risultato desiderato. Ciò può essere molto più lento di un rendering senza Profondità di Campo dato che in realtà Blender effettua il rendering di 16 immagini e poi le mette assieme. La Figura 17-30 mostra il risultato, da confrontare con quello in Figura 17-24. Bisogna notare che la circonferenza è stata dimensionata molto meno per ottenere questo disegno mostrato nella schermata di esempio. Queste ultime sono state fatte con un ampio raggio (pari a 0.5 unità Blender) per dimostrare la tecnica migliore. D'altra parte, la Figura 17-30 ha una circonferenza con un raggio di 0.06 unità Blender. Figura 17-30. Il rendering finale del Motion Blur.

Questa tecnica è interessante e con essa è abbastanza facile ottenere piccoli gradi di Profondità di Campo. Per le grandi variazioni del fuoco è limitato dal fatto che non è possibile avere più di 16 sovracampionamenti.

Bordi da Vignetta A partire da Blender v2.31 I nuovi ombreggiatori [shaders] dei materiali di Blender, come per la versione 2.28, includono Ombreggiatori per la diffusione, per la specularità e uno simpatico per le vignette. Usando questi ombreggiatori si può effettuare il proprio rendering per ottenere qualcosa di simile ad un giornale a fumetti o ad un manga, modificando le sfumature dei colori, come si può apprezzare in Figura 17-31.

270

Capitolo 17. Il Rendering Figura 17-31. Una scena con materiali da Vignetta.

L'effetto non è perfetto dato che le vere vignette ed i manga hanno anche un contorno con inchiostro di china. Blender può aggiungere questa funzionalità come operazione di post-elaborazione. Per accedere a questa opzione si seleziona il pulsante Edge nel Pannello Output della Pulsantiera di Rendering (F10) (Figura 17-32). Questo fa in modo che Blender, nel rendering, cerchi i bordi e vi aggiunga un 'contorno'. Figura 17-32. I pulsanti dei Bordi da Vignetta.

Prima di ripetere il rendering è necessario regolare dei parametri. Edge Settings apre una finestra per tali impostazioni (Figura 17-33). Figura 17-33. Impostazioni dei Bordi da Vignetta.

In questa finestra è possibile impostare il colore del bordo, che normalmente è nero, e la sua intensità, Eint che è un intero nell'intervallo da 0 (il più tenue) a 255 (il più marcato). Gli altri pulsanti sono utili se viene utilizzato il Rendering Unificato (si veda la prossima sezione). La Figura 17-34 mostra la stessa immagine della Figura 17-31 ma con i Bordi da Vignetta, di colore nero ed alla massima intensità (Eint=255).

271

Figura 17-34. La scena del nuovo rendering con i Bordi da Vignetta.

Il Rendering Unificato A partire da Blender v2.31 Una caratteristica meno conosciuta di Blender è il pulsante per il Rendering Unificato nell'angolo in basso a destra della pulsantiera del Rendering Pannello Format (Figura 17-35). Figura 17-35. Il pulsante del Rendering Unificato.

Le impostazioni di default del rendering di Blender sono particolarmente ottimizzate per la velocità. Questo è stato ottenuto suddividendo il processo in diversi passaggi. Per primi vengono gestiti i materiali 'normali'. Quindi vengono presi in considerazione i Materiali con una trasparenza (Alfa). Infine si aggiungono gli Aloni [Halo] ed i riflessi ottici. Questo è veloce, ma può condurre a dei risultati meno ottimali, specialmente con gli Aloni. D'altra parte, il Rendering Unificato funziona con un unico passaggio. Questo è più lento, ma fornisce dei risultati migliori, specie con gli Aloni luminescenti. Inoltre, dato che i materiali trasparenti non partecipano al rendering contemporaneamente a quelli convenzionali, vi si possono applicare anche i Bordi da Vignetta, premendo il pulsante All nella finestra dell'impostazione dei Bordi. Se viene selezionato il Rendering Unificato appare un ulteriore gruppo di pulsanti nel Pannello Output (Figura 17-36). Figura 17-36. I pulsanti addizionali del Rendering Unificato.

272

Capitolo 17. Il Rendering Lo slider Gamma è relativo alla procedura OSA. Il sovracampionamento di pixel che vengono miscelati per generare il pixel del rendering finale. Il rendering convenzionale ha un valore di Gamma=1, ma in quello Unificato si può cambiare tale valore. Il pulsante Post process fa apparire una finestra di dialogo (Figura 17-37). Da questa si possono controllare tre tipi di post processing: lo slider Add definisce una quantità di contrasto da aggiungere al valore del colore RGB per ciascun pixel. Valori positivi rendono l'immagine uniformemente chiara, quelli negativi uniformemente scura. Figura 17-37. Sottomenù del post-process nel Rendering Unificato.

Lo slider Mul definisce un valore per cui saranno moltiplicati tutti i valori RGB dei pixel. I valori maggiori di 1 renderanno l'immagine più chiara, quelli più piccoli di 1 la scuriranno. Lo slider Gamma opera la correzione di gamma standard di qualsiasi programma di disegno.

Preparare il proprio lavoro per il video A partire da Blender v2.31 Una volta acquisita una certa dimestichezza coi trucchi dell'animazione si comincerà sicuramente a produrre delle magnifiche animazioni, codificate coi propri codecs preferiti e possibilmente li si condividerà su Internet con tutto il resto della comunità. Ma, alla fine, verrà il desiderio di costruire un'animazione per la Televisione, o probabilmente registrando dei propri DVD. Per risparmiarsi delle delusioni, qui ci sono delle dritte specifiche per la preparazione dei Video. La prima e la principale da ricordare è quella della doppia linea tratteggiata bianca nella vista Telecamera! Se si effettua il rendering per il PC allora verrà mostrata tutta l'immagine prodotta giacente all'interno del rettangolo tratteggiato esterno. Per la Televisione qualche linea e qualche parte delle linee si potrebbero perdere a causa del meccanismo di irraggiamento del tubo a raggi catodici del TV. Si è garantiti che quello che si vede all'interno del rettangolo tratteggiato interno sarà visibile sullo schermo. Tutto quello che capita tra i due rettangoli può essere o meno visibile, a seconda del tipo di TV su cui si guarda il video. Inoltre la dimensione del rendering è strettamente imposta dallo standard TV. Blender ha tre pre-selezioni per comodità: • PAL

720x576 pixel con un rapporto di aspetto di 54:51.

• NTSC

720x480 pixel con un rapporto di aspetto di 10:11.

• PAL 16:9

720x576 con un rapporto di aspetto di 64:45, per gli schermi TV larghi a 16:9.

Da notare l'argomento "Rapporto di Aspetto" [Aspect Ratio]. Gli schermi del TV non hanno i pixels quadrati come quelli dei monitor dei Computer, i loro pixels sono alquanto rettangolari, quindi è necessario generare immagini pre-distorte che appariranno male su un computer ma ben mostrate su un apparecchio TV.

Saturazione del Colore La maggior parte dei video registratori e dei segnali video non sono basati sul modello RGB ma in Europa sul modello YUV (o YCrCb) ed in USA sul YIQ, quest'ultimo è molto simile al primo. Quindi è necessaria anche un po' di conoscenza di questi. Il modello YUV manda le informazioni di 'Luminanza', ed intensità (Y) e due segnali di 'Crominanza', rosso e blu. In realtà su un apparecchio Bianco e Nero appare solo la luminanza, mentre un apparecchio a colori ricostruisce il colore dalla Crominanza. Vale a dire: Y = 0.299R + 0.587G + 0.114B U = Cr = R-Y V = Cb = B-Y Mentre un'immagine RGB a 24 bit ha 8 bit per ciascun canale, per mantenere bassa la banda, e considerando che l'occhio umano

273

è più sensibile alla luminanza che alla crominanza, Il segnale della luminanza viene spedito con più bit degli altri due segnali di crominanza. A questo corrisponde una dinamica inferiore dei colori, nel Video, rispetto a quella usata nei Monitor. Si deve tenere quindi in mente che non tutti i colori possono apparire correttamente. La Regola d'oro consiste nel tenere i colori più 'grigiati' e 'non saturati' possibile, questo può essere grossolanamente convertito tenendo la dinamica dei colori entro 0.8. In altre parole la differenza tra il valore RGB più alto e quello RGB più basso non deve superare 0.8 (nell'intervallo [0-1]) o 200 (nell'intervallo [0-255]). Questo non è rigoroso, talvolta è accettabile più di 0.8, ma un materiale con RGB=(1.0,0,0) sarà bruttissimo.

Il rendering in quadri Gli standard TV prevedono che ci siano 25 fotogrammi al secondo (PAL) o 30 fotogrammi al secondo (NTSC). Dato che i fosfori dello schermo non mantengono molto a lungo la luminosità, si potrebbe provocare un notevole tremolio. Per ridurre ciò, i TV non rappresentano i fotogrammi come lo fa un Computer ma rappresentando la metà dei fotogrammi, o quadri [fields] (o fotogrammi) con una doppia velocità di aggiornamento, quindi 50 semi-quadri al secondo sul PAL o 60 semi-quadri al secondo su NTSC. In origine questi valori sono stati adattati alle linee elettriche in Europa (50Hz) e negli Stati Uniti (60Hz). In particolare i quadri sono "interlacciati" nel senso che un quadro presenta tutte le linee pari del fotogramma completo ed il quadro successivo tutte quelle dispari. Dato che c'è una differenza di tempo non da poco tra ciascun quadro, (1/50 o 1/60 di secondo), un puro rendering di un fotogramma nel modo solito e la successiva divisione in due metà del fotogramma non funziona. Si presenterebbe un notevole tremolio dei bordi e degli oggetti in movimento. Figura 17-38. L'impostazione del Rendering del Campo [Field].

Per gestire in modo ottimale questa situazione, Blender consente di effettuare il rendering per ciascun Campo [Field]. Quando è premuto il pulsante Fields nel Pannello Render (Figura 17-38), Blender prepara ciascun quadro (fotogramma) in due passi. Col primo effettua il rendering delle linee pari, quindi avanza nel tempo della durata di mezzo passo ed effettua il rendering delle restanti linee dispari. Figura 17-39. Il risultato del Rendering del Campo.

274

Capitolo 17. Il Rendering Questo produce degli strani risultati sullo schermo di un PC (Figura 17-39) ma apparirà correttamente su un dispositivo TV. Uno dei due pulsanti successivi al pulsante Fields obbliga ad effettuare prima il rendering dei campi Dispari (Odd) e l'altro disabilita il passaggio della durata di mezzo frame tra i quadri (x). Impostazione della sequenza corretta dei campi: Le impostazioni di default di Blender producono i campi (semiquadri) Pari prima dei semiquadri Dispari, questo è conforme agli standard Europei PAL. In NTSC vengono campionati prima i semiquadri Dispari [Odd]. Ovviamente, se si effettua la selezione sbagliata le cose saranno peggiori che se non si effettui il rendering del Semiquadro [Field].

Capitolo 18. Radiosità La maggior parte dei modelli di rendering, incluso il ray-tracing, suppongono un modello spaziale semplificato, altamente ottimizzato per la luce che entra nel nostro 'occhio' al fine di disegnare l'immagine. A questo modello si possono aggiungere la riflessione e le ombre per ottenere un risultato più realistico. Eppure, c'è un aspetto importante che manca! Quando una superficie ha una componente di luce riflettente, essa non solo appare nella nostra immagine, ma illumina anche le superfici vicine. E viceversa. Infatti, la luce rimbalza nell'ambiente finché non sia assorbita tutta l'energia luminosa (o fuoriesce!). La luce re-irradiata trasporta le informazioni sull'oggetto che l'ha rilanciata, in particolare il colore. Dunque, non solo le ombre sono 'meno nere' a causa della luce reirradiata, ma anch'essa tende a mostrare il colore dell'oggetto vicino ben illuminato. Un fenomeno spesso citato come 'fuoriuscita di colore' (Figura 18-1). Figura 18-1. Esempio di Radiosità.

In ambienti chiusi, l'energia della luce viene generata da 'emittenti' ed è rappresentata dalla riflessione o assorbimento delle superfici dell'ambiente. La percentuale di energia che lascia una superficie è chiamata 'radiosità' della superficie. Diversamente dai modelli convenzionali di rendering, i metodi di Radiosità calcolano prima di tutto le interazioni della luce in un ambiente in modo indipendente dalla vista, dopodiché, si possono effettuare, in tempo reale, i rendering di diverse viste. In Blender, sin dalla versione 2.28, la Radiosità è sia uno strumento sia di rendering che di modellazione. Questo vuol dire che si può abilitare la Radiosità all'interno del rendering oppure usare la Radiosità per dipingere i colori dei vertici o la luminosità dei vertici delle proprie mesh, per un uso successivo.

Il metodo per la Radiosità di Blender A partire da Blender v2.31 Prima di tutto un po' di teoria! Se si vuole si può saltare alla sezione successiva, e tornare indietro se ci saranno domande. Alla fine degli anni ottanta ed all'inizio dei novanta la Radiosità ha costituito un argomento caldo della computer grafica 3D. Sono stati sviluppati molti metodi diversi. La soluzione che ha avuto più successo è basata sul metodo del "raffinamento progressivo" con uno schema di "suddivisione adattativa". E questo è quello che usa Blender. Per essere in grado di sfruttare al massimo il metodo della Radiosità di Blender, è importante capire i seguenti principi: •

Metodo degli elementi finiti

275

Molti metodi per la grafica computerizzata o la simulazione, assumono una esemplificazione della realtà con 'elementi finiti'. Per una soluzione visiva attraente (ed anche provata scientificamente), non è sempre necessario immergersi a livello molecolare dei dettagli. Invece, il problema si può ridurre ad un numero finito di elementi rappresentativi e ben descritti. È risaputo che tali sistemi convergono rapidamente in una soluzione stabile ed affidabile. Il metodo della Radiosità è un esempio tipico di metodo ad elementi finiti in quanto ogni faccia viene considerata un 'elemento finito' e le sue emissioni di luce vengono considerate nel loro insieme. •

Patches (Toppe) ed Elementi Nell'universo della Radiosità, si fa distinzione tra due tipi di facce 3D: Patches (toppe o chiazze). Sono triangoli o quadrangoli capaci di spedire energia. Per una rapida soluzione è importante avere il minor numero possibile di tali patch. Ma, per velocizzare le cose l'energia viene modellata come se fosse distribuita dal centro della Patch, la dimensione delle patch dovrebbe quindi essere sufficientemente piccola da rendere realistica la distribuzione dell'energia. (Per esempio quando un piccolo oggetto viene posto sopra il centro della Patch, tutta l'energia spedita dalla Patch viene oscurata da tale oggetto, anche se la patch è più grande! Tale patch dovrebbe essere suddivisa in patch più piccole). Elementi. Sono triangoli o quadrangoli che ricevono energia. Ciascun Elemento è associato ad una Patch. Infatti, le Patch sono suddivise in tanti piccoli Elementi. Quando un elemento riceve energia, ne assorbe parte di essa (a seconda del suo colore) e passa la parte restante alla Patch, per ulteriori irradiazioni. Dato che gli Elementi hanno anche facce che vengono mostrate, è importante tenerle il più piccole possibile, per evidenziare i bordi di piccole ombre e sfumature (gradienti) di luce.



Raffinamento Progressivo Questo metodo parte con l'esame di tutte le Patch disponibili. Si seleziona la Patch 'inesplosa' con l'energia maggiore per sparare tutta la sua energia all'ambiente. Gli Elementi nell'ambiente ricevono tale energia, e la sommano all'energia 'inesplosa' delle Patch a loro associate. Quindi il processo riparte per la Patch che ora ha la maggior energia 'inesplosa'. Questo continua per tutte le Patch finché non sia più ricevuta alcuna energia, o finché l'energia 'inesplosa' è diventata inferiore ad un certo valore.



Il metodo dell'emicubo Il calcolo di quanta energia ciascuna Patch dia ad un Elemento è fatto con l'uso degli 'emicubi'. Posizionato esattamente nel centro della Patch, un emicubo (letteralmente 'metà di un cubo') consiste di 5 piccole immagini dell'ambiente. Per ciascun pixel in queste immagini, viene codificato e colorato un certo Elemento visibile, e quindi si può calcolare la quantità di energia trasmessa. Specialmente con l'uso di hardware specializzato il metodo dell'emicubo può essere significativamente accelerato. In Blender, però, il calcolo dell'emicubo è fatto "via software". Infatti questo metodo è una esemplificazione ed una ottimizzazione della formula della Radiosità 'reale' (differenziazione del fattore di forma). Per tale ragione la risoluzione dell'emicubo (il numero di pixels delle sue immagini) è approssimata e la sua accurata regolazione è importante per evitare scalettature [aliasing] artificiose.



Suddivisione adattativa Dato che la dimensione delle patch e degli elementi in una Mesh definiscono la qualità della soluzione della Radiosità, sono stati sviluppati degli schemi di suddivisione automatica per definire la dimensione ottimale delle Patch e degli Elementi. Blender ha due metodi di suddivisione automatica: 1. Subdivide-shoot Patches. Sparando energia all'ambiente, e confrontando i valori dell'emicubo con l'attuale valore matematico del 'fattore di forma', la rilevazione degli errori indica la necessità di una ulteriore suddivisione della Patch. I risultati sono Patch più piccole ed un tempo di soluzione più lungo, ma una soluzione a più alto realismo. 2. Subdivide-shoot Elements. Sparando energia all'ambiente, e rilevando i cambiamenti più evidenti di energia (gradienti) all'interno di una Patch, gli Elementi di tale Patch vengono suddivisi di un ulteriore livello. Ne risultano Elementi più piccoli e tempo di soluzione più lungo e probabilmente una maggiore scalettatura [aliasing], ma un alto livello di dettaglio.



Rappresentazione e Post Processing La suddivisione degli Elementi in Blender è 'bilanciata', questo vuol dire che ciascun Elemento differisce al massimo di '1' livello di suddivisione con i suoi limitrofi. Questo è importante per una piacevole e corretta rappresentazione della soluzione della Radiosità con le facce ombreggiate con Gouraud. Solitamente dopo la soluzione, si hanno migliaia di piccoli Elementi. Filtrandoli e rimuovendo i 'doppioni', il numero di Elementi si riduce significativamente senza distruggere la qualità della soluzione della Radiosità. Blender immagazzina i valori dell'energia in valori a 'virgola mobile'. Questo rende possibile l'impostazione di spettacolari situazioni di illuminazione, cambiando i valori di moltiplicazione e di gamma standard.



La Radiosità per la Modellazione Il passo finale può essere la sostituzione delle Mesh di ingresso con quella della soluzione della Radiosità (pulsante Replace

276

Capitolo 17. Il Rendering Meshes). A questo punto i colori al vertice vengono convertiti da un valore a 'virgola mobile' ad un valore RGB a 24 bits. I

vecchi Oggetti Mesh vengono cancellati e sostituiti con uno o più nuovi Oggetti Mesh. Si possono quindi cancellare i dati della Radiosità con Free Data. I nuovi Oggetti assumono un Materiale di default che consente un loro rendering immediato. Per lavorare coi colori al vertice, sono importanti due impostazioni in un Materiale: VColPaint. Questa opzione tratta i colori al vertice come una sostituzione del normale valore RGB nel Materiale. Bisogna aggiungere delle Lampade per vedere i colori della Radiosità. Infatti, si può usare l'illuminazione e l'ombreggiatura di Blender come al solito, e lasciando che si 'veda' una Radiosità pulita nel rendering. VColLight. I colori al vertice [vertexcolors] vengono aggiunti alla luce durante il rendering. Anche senza Lampade, si potrà vedere il risultato. Con questa opzione, i colori al vertice vengono pre-moltiplicati dal colore RGB del Materiale. Questo consente una regolazione fine della quantità di 'luminosità della Radiosità' nel rendering finale. Come ogni cosa in Blender, le impostazioni della Radiosità vengono memorizzate in un blocco di dati [datablock]. Esso è legato ad una Scena, e ciascuna Scena in Blender può avere un diverso 'blocco' di Radiosità. Tale funzionalità si usa per dividere ambienti complessi in Scene con solutori di Radiosità indipendenti.

Partenza Rapida con la Radiosità A partire da Blender v2.31 Si supponga di avere una scena pronta, e di volerne effettuare il Rendering della Radiosità. La prima cosa da comprendere quando ci si occupa della Radiosità è che non è necessaria alcuna lampada, ma sono richieste solo le mesh con un materiale con la proprietà Emit maggiore di zero, dato che saranno le sorgenti di luce. Si può costruire la scena di prova mostrata in Figura 18-1, essa è abbastanza semplice. Basta fare un grande cubo per la stanza, dare dei materiali diversi alle pareti, aggiungere un cubo con un parallelepipedo al suo interno, ed aggiungere un piano con un valore di Emit diverso da zero vicino al tetto, per simulare l'area luminosa (Figura 18-2). Si assegnano i Materiali come al solito all'immissione dei modelli. Il valore RGB del Materiale definisce il colore della Patch. Il valore 'Emit' di un Materiale indica se una Patch debba essere caricata di energia all'avvio della simulazione della Radiosità. Il valore 'Emit' viene moltiplicato con l'area di una Patch per calcolarne l'ammontare iniziale di energia non emessa. Facce emittenti: Si Controlli il numero di patch 'emittenti' sulla console di Blender! Se è zero non succederà nulla di interessante. Serve almeno una patch emittente per avere luce e generare una soluzione.

Figura 18-2. Allestimento per il test della Radiosità.

Quando si assegnano i materiali ci si assicuri che tutti abbiano attivato il selettore Radio per abilitare il Pannello Shader dei pulsanti del sub-contesto Material (Figura 18-3).

277

Figura 18-3. Il materiale abilitato per la Radiosità.

Si noti che l'emissione di luce è gestita dalla direzione delle normali di una mesh, quindi il piano che emette luce dovrebbe avere la normale che punta in giù ed il cubo esterno (la stanza) dovrebbe avere le normali che puntano all'interno, (sono da ribaltare!). Ci si sposta nel sub-contesto della Radiosità . I Pannelli, mostrati in Figura 18-4, sono due: Radio Rendering che gestisce la Radiosità quando viene usata come uno strumento per il rendering (caso attuale) e Radio Tool, che gestisce la Radiosità come strumento di modellazione (sezione seguente). Figura 18-4. I pulsanti della Radiosità per il rendering della radiosità.

I pulsanti definiscono: - La risoluzione dell'emicubo; le immagini codificate in colore usate per cercare gli elementi che siano visibili da un 'colpo di Patch', e che quindi ricevano energia. Gli emicubi non vengono immagazzinati, ma ricalcolati ogni volta per ogni Patch che spara energia. Il valore 'Hemires' determina la qualità della Radiosità ed aumenta significativamente il tempo di soluzione.

• Hemires:

- Il numero massimo di iterazioni della Radiosità. Se posto a zero la Radiosità andrà avanti fino a verificare il criterio di convergenza. Si è energicamente avvisati di impostare un numero diverso da zero, di solito maggiore di 100.

• Max Iterations:

• Mult:, Gamma:

- Lo spazio dei colori [colourspace] della soluzione di Radiosità è più dettagliato di quello espresso con semplici valori RGB a 24 bit. Quando gli Elementi vengono convertiti in facce, i loro valori di energia vengono convertiti in colore RGB usando i valori Mult e Gamma. Col valore di Mult si può moltiplicare il valore dell'energia, con Gamma si può cambiare il contrasto dei valori di energia. - Quando la quantità di energia non irradiata in un ambiente è più bassa di tale valore, la soluzione della Radiosità si ferma. L'energia non irradiata in un ambiente viene moltiplicata per l'area delle Patch. Durante ciascuna iterazione, parte dell'energia viene assorbita, o scompare quando l'ambiente non è un volume chiuso. Nel sistema di coordinate standard di Blender un tipico emettitore (come nei files di esempio) ha un'area relativamente piccola. Il valore di convergenza viene diviso per un fattore 1000 prima di verificare per questa ragione.

• Convergence:

Si imposta Max Iterations: a 100 e ci si sposta nel Contesto della Scene e nel Sub-contesto Render (F10). Si cerca il Pulsante Interruttore Radio (Figura 18-5) nel Pannello Render e lo si imposta ad 'on' per abilitare la Radiosità, quindi il pulsante Render! (F12).

278

Capitolo 17. Il Rendering Figura 18-5. Abilitazione della Radiosità nella Pulsantiera del Rendering.

Il rendering impiegherà più tempo del solito, nella console si noterà avanzare un contatore aumentare. Il risultato sarà molto mediocre (Figura 18-6, a sinistra) in quanto il rendering della radiosità automatica non esegue un affinamento adattativo! Si selezionano tutte le mesh, una dopo l'altra, e in Modo Edit si suddividono almeno tre volte. La stanza, che è molto più grande delle altre mesh, la si può anche suddividere quattro volte. Si imposta Max Iterations un po' più in alto, 300 o più. Si provi ancora il Rendering (F12). Questa volta il rendering durerà più a lungo ma i risultati saranno molto migliori, con ombre morbide e perdita di colore (Figura 18-6, a destra). Figura 18-6. Il rendering della Radiosità per mesh grossolane (a sinistra) e mesh più raffinate (a destra).

Nota: Nel Rendering della Radiosità Blender agisce come per un normale rendering, questo vuol dire che le textures, le Curve, le Superfici ed anche gli Oggetti Duplicati nei Frame [Dupliframed] vengono gestiti correttamente.

La Radiosità come strumento di Modellazione A partire da Blender v2.31 La Radiosità può essere usata anche come uno strumento di Modellazione per definire i colori dei Vertici e le luci. Questo può tornare molto utile se si vogliono fare altri ritocchi ai propri modelli, o se si vogliono utilizzare nel Game Engine. Inoltre la Modellazione con la della Radiosità consente un affinamento Adattativo, mentre il Rendering della Radiosità non lo fa! Ci sono un paio di punti importanti per una comprensione pratica della Modellazione della Radiosità: In Blender solo gli oggetti mesh sono consentiti come input per la Modellazione della Radiosità. Questo perché il processo genera colori di vertici... e quindi devono esserci vertici. È anche importante capire che ogni faccia in una Mesh diventa una Patch, e di conseguenza un potenziale riflettore o emittente di energia. Solitamente, grosse Patch inviano e ricevono più energia di quelle piccole. È quindi importante avere come input un modello ben bilanciato con Patch abbastanza grandi da fare la differenza! Quando si aggiungono facce estremamente piccole, queste (il più delle volte) non riceveranno abbastanza energia da essere prese in considerazione dal metodo della "rifinitura progressiva", che sceglie solo le Patch con una grande quantità di energia non emessa. Oggetti Non-mesh: Only Meshes (Solo Mesh) significa che si devono convertire le Curve e le Superfici in Mesh (CTRLC) prima di avviare la soluzione della Radiosità!

Fase 1: Selezionare le Mesh Tutte le Mesh selezionate e visibili della scena corrente vengono convertite in Patch appena il tasto Collect Meshes del pan-

279

nello Radio Tool viene premuto (Figura 18-4). Come conseguenza appare un nuovo Pannello, Calculation . Blender è entrato in modalità Modellazione Radiosità, e le altre funzioni di editing sono bloccate finché non viene premuto il tasto Free Data appena creato. Il testo Phase sopra il pulsante ora porta la scritta Init e mostra il numero di Patch e di Elementi. Dopo che le Mesh sono state raccolte, vengono mostrate in modo pseudo-illuminato, palesemente diverso dalla visualizzazione normale. Il Pannello Radio Tool (Figura 18-7) ha tre Pulsanti Radio: Wire, Solid, Gour. Queste sono tre opzioni indipendenti di modi di disegno [drawmode] di quelli indicati in una finestra 3D. La visualizzazione Gouraud viene eseguita solo dopo l'avvio del processo di Radiosità. Il pulsante Gour si preme per avere dei risultati più levigati per le superfici curve. Figura 18-7. Il pulsante Gouraud.

Fase 2: Limiti della suddivisione Blender offre alcune regolazioni per definire la dimensione massima e minima delle Patch e degli Elementi nei Pannelli Radio Tools e Calculation (Figura 18-8). Figura 18-8. I Pulsanti della Radiosità per la Suddivisione.

Limit Subdivide Le Patch vengono suddivise secondo i valori "PaMax" e "PaMin". Questa suddivisione viene sempre effet-

tuata automaticamente quando si avvia un'azione "GO". PaMax, PaMin, ElMax, ElMin Le dimensioni massima e minima di una Patch di un Elemento. Questi limiti vengono usati

durante tutte le fasi della Radiosità. L'unità è espressa in 0,0001 delle dimensioni del rettangolo circoscritto all'intero ambiente. Quindi, con le impostazioni di default 500 e 200 della dimensione massima e minima della Patch a 1/20 (0.05) dell'intero modello e 1/50 (0.02) dell'intero modello. ShowLim, Z Questa opzione visualizza i limiti della Patch e dell'Elemento. Premendo l'opzione Z, i limiti vengono disegnati

ruotati in modo diverso. Le linee bianche mostrano i limiti della Patch, le linee blu mostrano i limiti degli Elementi.

Fase 3: Suddivisione Adattativa Le ultime regolazioni prima di iniziare l'analisi (Figura 18-9).

280

Capitolo 17. Il Rendering Figura 18-9. I Pulsanti della Radiosità

MaxEl Il numero Massimo di Elementi consentito. Dato che gli Elementi vengono suddivisi automaticamente in Blender, la

quantità di memoria usata e la durata della soluzione possono essere controllate con questo pulsante. Come regola a spanna 20,000 elementi richiedono fino a 10 Mb di memoria. Max Subdiv Shoot Il Massimo numero di Patch emittenti che vengono valutate per la "suddivisione adattativa" (descritta sot-

to). Se zero, vengono valutate tutte le Patch col valore di 'Emit'. Subdiv Shoot Patch Spruzzando energia verso l'ambiente, si possono rilevare gli errori che indicano la necessità di una ulte-

riore suddivisione delle Patch. La suddivisione viene eseguita una sola volta, ogni volta che si chiama tale funzione. Come risultato si hanno delle Patch più piccole e più tempo necessario alla soluzione, ma un più alto realismo della soluzione. Questa azione può essere eseguita anche automaticamente quando viene avviata l'azione con GO. Subdiv Shoot Element Spruzzando energia verso l'ambiente, e rilevando le variazioni elevate di energia (frequenze) all'inter-

no di una Patch, gli Elementi di tale Patch vengono selezionati per essere suddivisi di un ulteriore livello. La suddivisione viene eseguita solo una volta, ogni volta che si chiama tale funzione. Come risultato si hanno Elementi più piccoli e più tempo necessario alla soluzione e probabilmente una maggiore scalettata [aliasing], ma un più alto livello di dettagli. Questa opzione può essere eseguita anche automaticamente quando viene avviata l'azione di GO. SubSh P Il numero di volte che viene testato l'ambiente per rilevare le Patch che necessitano di una suddivisione. SubSh E Il numero di volte che viene testato l'ambiente per rilevare gli Elementi che necessitano di una suddivisione. Nota: Hemires, Convergence e Max iterations nel Pannello Radio Render restano attivi ed hanno lo stesso significato del Rendering della Radiosità. GO Con questo pulsante si avvia la simulazione della Radiosità. Le fasi sono:

1. Limit Subdivide (Suddivisione Limite). Quando le Patch sono troppo grandi, esse vengono suddivise. 2. Subdiv Shoot Patch. (Suddivisione della Patch irradiante). Il valore di SubSh P definisce il numero di chiamate alla funzione Subdiv Shoot Patch. Come risultato, le Patch vengono suddivise. 3. Subdiv Shoot Elem. (Suddivisione dell'Elemento irradiante) Il valore di SubSh E definisce il numero di chiamate alla funzione Subdiv Shoot Element. Come risultato, gli Elementi vengono suddivisi. 4. Subdivide Elements. (Suddivisione degli Elementi). Quando gli Elementi restano più grandi della dimensione minima, essi vengono suddivisi. È qui che viene di solito allocata la massima quantità di memoria. 5. Solve. (Soluzione). Questo è l'attuale metodo del 'raffinamento progressivo'. Il puntatore del mouse mostra il passo dell'iterazione, l'attuale totale delle Patch che spruzzano la loro energia nell'ambiente. Questo processo continua finché l'energia non ancora emessa nell'ambiente è inferiore al valore di Convergence o quando è stato raggiunto il massimo numero di iterazioni. 6. Convert to faces (Conversione in facce). Gli elementi vengono convertiti in triangoli o quadrangoli con lati 'ancorati', per assicurare una visualizzazione di Gouraud piacevole senza discontinuità. Questo processo può essere terminato con ESC durante qualsiasi fase.

Fase 4: Modifica della soluzione Una volta calcolata la soluzione di Radiosità restano poche altre azioni da compiere (Figura 18-10).

281

Figura 18-10. La post-elaborazione della Radiosità.

Element Filter Questa opzione filtra gli Elementi per rimuovere scalettature [aliasing] artificiali, per ammorbidire i bordi delle ombre, o per forzare i colori equalizzati per l'opzione RemoveDoubles . RemoveDoubles Quando due Elementi limitrofi appaiono con dei colori che differiscono meno del limite indicato nel Pulsante Numerico Lim, gli Elementi vengono uniti. Il valore di Lim viene usato dal precedente ed è espresso in una risoluzione standard

ad 8 bits; nell'intervallo di colore 0 - 255. FaceFilter Gli Elementi vengono convertiti in facce per essere visualizzati. FaceFilter impone un ulteriore appianamento

nel risultato mostrato, senza cambiare i valori degli stessi Elementi. Mult:, Gamma: questi Pulsanti Numerici hanno lo stesso significato che nel Rendering della Radiosità. Add New Meshes Le facce della soluzione di Radiosità attualmente visualizzate vengono convertite in Oggetti Mesh con colori

al vertice. Viene aggiunto un nuovo Materiale per consentire un rendering immediato. Le Mesh iniziali restano invariate. Replace Meshes Come il precedente, ma le Mesh iniziali vengono rimosse. Free Radio Data Tutte le Patch, gli Elementi e le Facce vengono liberate dalla Memoria. Si deve sempre eseguire questa

azione dopo l'uso della Radiosità per essere in grado di tornare al normale editing.

Un dettagliato esempio di Radiosità A partire da Blender v2.31 Per allontanarsi definitivamente dalla fredda teoria ed esporre cosa può fare realmente la Modellazione della Radiosità guardiamo un esempio. Verrà mostrata una scena con una vera Illuminazione Globale, con i risultati più morbidi di quelli della tecnica del 'Dupliverted Spot Lights' mostrata nel Capitolo sull'Illuminazione per ottenere qualcosa di simile alla Figura 18-11. Figura 18-11. Il rendering con la Radiosità dell'Incursore Cylon.

282

Capitolo 17. Il Rendering

Impostazione All'inizio nella scena si hanno solo due elementi: un Incursore (se vi ricordate qualche film di fantascienza...) ed una telecamera. Il Raider ha il materiale grigio di default, ad eccezione dei finestrini dell'abitacolo che sono neri. Per questa tecnica, non avremo bisogno di luci. La prima cosa che aggiungeremo alla scena sarà un piano. Tale piano verrà usato come pavimento della nostra scena. Si ridimensiona il piano come mostrato in Figura 18-12 e lo si pone proprio sotto il Raider. Si lascia un piccolo spazio tra il piano ed il fondo del Raider. Questo lo farà apparire "fluttuante". Figura 18-12. L'aggiunta di un piano.

Poi, al piano, si deve assegnare un materiale e selezionargli un colore. Si proverà ad usare un bel blu. Per questo si possono usare le impostazioni in Figura 18-13. Figura 18-13. Il colore del piano.

La Volta Celeste Si vuol fare il rendering di un'Illuminazione Globale, quindi la prossima cosa che andremo a fare sarà aggiungere è una icosfera. Questa sfera sarà la nostra sorgente di luce invece delle tipiche lampade. Quello che faremo è usare le sue facce come emittenti che ci proietteranno la luce in più direzioni anziché da una sola direzione come da una tipica, singola lampada. Questo ci darà l'effetto desiderato. Per prepararlo, si aggiunge una icosfera con una suddivisione di 3. Restando in Modo Edit, si usa la modalità di selezione BKEY per selezionare la parte inferiore della sfera e cancellarla. Questo ci darà la nostra volta. Si ridimensiona la volta per adeguarla alla scena ed al piano. Dovrebbe somigliare alla Figura 18-14.

283

Figura 18-14. La volta celeste.

Poi, ci si assicura di avere tutti i vertici della volta selezionati e ci si sposta sulla pulsantiera di Edit (F9) e si seleziona Draw Normals. Questo ci permette di vedere in quale direzione puntano i vertici "emittenti". Di norma dovrebbero puntare verso l'esterno, quindi si pigia il pulsante Flip Normals, che cambierà i vertici emittenti rendendoli emittenti verso l'interno della volta (Figura 18-15). Figura 18-15. Ribaltamento delle normali.

Adesso che abbiamo creato la volta, abbiamo bisogno di un nuovo materiale. Quando si crea il materiale per la volta si cambino le impostazioni nella pulsantiera del Materiale come segue (F5): Add = 0.000 Ref = 1.000 Alpha = 1.000 Emit = 0.020

La chiave è lo slider Emit. Esso controlla la quantità di luce "emessa" dalla nostra volta. 0.020 è un buon default. Si ricordi che la volta è la parte più grande della scena! Non si vuole troppa luce! Ma si può sperimentare con questa impostazione per avere un risultato diverso. Il valore più basso si trasformerà successivamente in tempi più lunghi per "risolvere". (Figura 18-16). Figura 18-16. Il materiale della volta celeste.

284

Capitolo 17. Il Rendering A questo punto abbiamo creato tutto il necessario per la scena. Il prossimo passo consisterà nell'alterare la volta ed il piano da "doppia faccia " a "singola faccia". Per ottenere ciò, si seleziona la mesh della volta e si ritorna alla Pulsantiera di Edit (F9). Click sul pulsante Double Sided per disattivarlo (Figura 18-17). Si ripete questo procedimento per il piano. Figura 18-17. Impostazione della Volta e del piano a 'singola faccia'.

La soluzione della Radiosità I pochi passi successivi costituiscono il cuore e l'anima dell'Illuminazione globale. Si va nella vista laterale con NUM 3 e si usa AKEY per selezionare tutte le mesh della scena. Quindi, tenendo premuto SHIFT si esegue un doppio click sulla telecamera. Non la si vuole selezionare. Dovrebbe apparire come mostrato nella Figura 18-18. Figura 18-18. La Selezione di tutte le Mesh.

Dopo aver selezionato le mesh, si va nella Vista Telecamera con NUM 0 e quindi si cambia in Modo Ombreggiato con ZKEY, infine si potrà vedere dentro la volta. Si seleziona il Contesto Shading (F5) ed il Sub-contesto della Pulsantiera sella Radiosità ( ). Nel Pannello Radio Tool, si clicca sul pulsante Collect Meshes. Si dovrebbe notare un cambiamento dei colori nella vista. Dovrebbe apparire come la Figura 18-19. Figura 18-19. Preparazione per la soluzione di Radiosità.

285

Successivamente, per mantenere il Raider levigato come la mesh originale, si dovrà cambiare da Solid a Gour. Questo ridarà al nostro Raider le sue curve lisce, allo stesso modo Set Smooth nella Pulsantiera dell'Edit. Si dovrà cambiare anche Max Subdiv Shoot a 1 (Figura 18-20). Non si dimentichi questo passaggio! Figura 18-20. Le impostazioni della Radiosità.

Dopo aver impostato Gour e Max Subdiv Shoot, si clicca su Go e si aspetta. Blender comincerà a calcolare la parte emittente della volta, faccia per faccia, quindi passerà a "risolvere" il rendering. Appena fatto questo, si vedrà la scena cambiare e le viene aggiunta sempre più luce e le mesh vengono cambiate. Si noterà anche che il cursore si trasforma in un contatore come se stesse effettuando un'animazione. Si lasci Blender al lavoro, nel risolvere il problema della Radiosità. Si lasci andare Blender fino a qualcosa tra 50 e 500 a seconda della scena da fare, per la maggior parte dei casi. Il tempo di soluzione dipende da voi e da quanto tempo si lascia girare... ricordando che si può premere ESC in ogni momento per fermare il processo. Questa è un'area con cui si può sperimentare per avere dei risultati diversi. Può richiedere da 5 a 10 minuti e la durata dipende molto dalla velocità del sistema. La Figura 18-21 è il nostro Raider dopo 100 iterazioni. Figura 18-21. La soluzione di Radiosità.

Dopo aver premuto il tasto ESC e fermata la soluzione, si clicca su Replace Meshes (o Add New Meshes) e quindi su Free Radio Data. Questo completa la soluzione e sostituisce la scena precedente con la nuova scena della Radiosità risolta. Nota: Aggiungere anziché Sostituire le mesh è una forma di Undo. Si resta con le vecchie mesh e si può riavviare la ancora la Radiosità! Ma bisogna spostare queste nuove mesh su un nuovo livello e nascondere i vecchi livelli prima del rendering!

Ora siamo pronti per F12 ed effettuare il rendering (Figura 18-22).

286

Capitolo 17. Il Rendering Figura 18-22. Il Rendering della soluzione di radiosità.

Inserimento delle Texture È ora di andare gente! Ora abbiamo un chiarissimo rendering con illuminazione diffusa a 360 gradi tramite la Radiosità. Molto bello... Ma la prossima cosa che si vuol fare è aggiungere le textures alla mesh. Quindi si ritorna sullo schermo principale della scena. Provando a selezionare si noterà che si seleziona non solo il Raider ma anche il piano e la volta. Questo perché la Radiosità, col processo della soluzione, ha creato una nuova mesh singola. Tuttavia si vuol aggiungere una texture solo al Raider. Quindi, si seleziona la mesh e si va in Modo Edit. In Modo Edit si possono cancellare la volta ed il piano dato che non servono più. Si può usare LKEY per selezionare i vertici appropriati e premere XKEY per cancellarli. Continuando a selezionare e cancellare finché non si rimane solo col Raider. Dovrebbe apparire come in Figura 18-23. Se effettuiamo il rendering ora con F12, avremo solo un fondo nero ed il nostro Raider. Questo è bello... ma ancora, vogliamo le texture! Figura 18-23. La mesh del Raider.

Per aggiungere le textures alla mesh, si devono separare le aree su cui si andranno ad applicare i materiali e le textures. Per il Raider, si vogliono aggiungere delle textures alle ali e alla sezione intermedia. Per questo si seleziona la mesh del Raider, si torna in Modo Edit. Si seleziona un vertice vicino al bordo dell'ala e si preme LKEY per selezionare i vertici collegati. Si fa lo stesso dall'altro lato. Poi, si clicca sulla sezione intermedia della nave e si fa la stessa cosa. Si selezionano le aree mostrate in Figura 18-24. Una volta fatto si preme PKEY per separare i vertici selezionati.

287

Figura 18-24. Separazione delle parti del Raider per applicarvi le texture.

Ora abbiamo la nostra sezione dell'ala separata e siamo pronti per aggiungere materiali e textures. Per questa mesh si vuol creare un nuovo materiale. Per ottenere una bella apparenza metallica si possono usare le impostazioni in Figura 18-25. Figura 18-25. Il materiale "Metallico".

È ora di aggiungere le textures. Si vogliono ottenere dei risultati particolarmente elaborati. Avremo bisogno di due mappe di rugosità [bump-maps] per creare le scanalature e due maschere per disegnare le 'decalcomanie'. Ci sono quindi quattro textures da creare per le ali del Raider, come mostrato in Figura 18-26. Figura 18-26. Quattro textures, dall'angolo in alto a sinistra, in senso orario: RaiderBM, RaiderDI, Markings, Raider.

288

Capitolo 17. Il Rendering Le textures dovrebbero essere poste in quattro canali del materiale nella mesh in alto del raider. 'RaiderBM' e 'RaiderDI' dovrebbero essere impostate con un Nor negativo (Figura 18-27 in basso - un doppio click su Nor, e diventerà giallo). 'Raider' dovrebbe essere impostato come Ref negativo (Figura 18-27 al centro). Quale materiale?: Una Mesh proveniente da una soluzione di Radiosità solitamente ha più di un materiale su di essa. È importante operare sul materiale "originale" giusto.

Figura 18-27. Impostazioni della Texture.

Il risultato è il desiderato rivestimento metallico per lo scafo del Raider. Finalmente la quarta texture, 'Markings', è impostata a Col nella Pulsantiera dei Materiali (Figura 18-27 in alto). Questo darà al Raider le sue scanalature e le insegne. Il nostro Raider è molto piatto, quindi è giusta la proiezione Flat. Se ci fosse stata una forma più complessa sarebbe stata necessaria qualche mappatura UV per avere dei buoni risultati. L'anteprima del materiale per la mesh dovrebbe apparire come la Figura 18-28. Figura 18-28. L'anteprima del materiale completo.

Le nostre textures non appariranno nel rendering ora (eccetto le marcature) in quanto le texture di tipo Nor e Ref reagiscono all'illuminazione, e non ci sono sorgenti di luce nella scena! Quindi avremo bisogno di aggiungere una o due lampade, tenendo in mente che la nostra nave proviene da una bella soluzione di Radiosità, quindi l'energia delle lampade dovrebbe essere abbastanza debole. Una volta inserite le luci, si effettua qualche rendering di prova. Si sperimenti con le lampade fino ad ottenere il risultato desiderato.

Il rendering finale (Figura 18-11) mostra un Raider ben illuminato con delle morbide texture.

Capitolo 19. Raytracing TO BE WRITTEN

289

V. Strumenti Avanzati Ci sono strumenti e tecniche che non possono essere nettamente classificati nelle Sezioni della Modellazione o dell'Animazione in quanto usano l'insieme dei due metodi. Questa parte è quindi dedicata all'uso dell'Animazione come strumento di Modellazione ed agli Effetti Speciali forniti con Blender. La categoria degli Strumenti Speciali include un importantissimo strumento, l'Editor delle Sequenze, un editor video evoluto in grado di dare a tutte le animazioni una finitura professionale.

Capitolo 20. Particelle Introduzione A partire da Blender v2.31 TO BE UPDATED Ci sono tre tipi di effetti collegabili ad un Oggetto, idealmente funzionano durante l'animazione ma in pratica preziosi anche per le Diapositive. Gli effetti vengono aggiunti ad un Oggetto selezionandolo, spostandosi nel Contesto Oggetto e localizzando il Tab Effects nel Pannello Constraints (F7 o

). Premendo il pulsante New Effect di Figura 20-1 viene aggiunto un Effetto.

Figura 20-1. La Pulsantiera Animazione

Il pulsante Delete rimuove un effetto, se ce n'è uno, mentre la lista a discesa che appare sulla destra una volta aggiunto un effetto (Figura 21-1) seleziona il tipo di effetto. Ad un singolo Oggetto si possono collegare più effetti. Viene creata una fila di pulsantini, uno per ciascun effetto, sotto il pulsante New Effect, consentendo di saltare tra le impostazioni dell'uno o dell'altro. I tre effetti sono Costruzione [Build], Particelle e Onda [Wave], il secondo è il più versatile e merita un intero capitolo a parte.

Particelle Semplici A partire da Blender v2.31 Il sistema di particelle di Blender è veloce, flessibile e potente. Ogni oggetto Mesh può servire per emettere particelle. Come particelle si possono usare sia gli Aloni luminescenti [Halo] e sia altri oggetti con l'opzione della Duplicazione ai Vertici [DupliVert]. Qualunque tipo di oggetto di Blender può essere utilizzato per la Duplicazione ai Vertici, per esempio oggetti-Mesh, Curve, Metaballs, ed anche Lampade. Le particelle possono essere influenzate da una forza globale per simulare effetti fisici come la gravità o il vento. Con questa funzionalità si può generare fumo, fuoco, esplosioni, Fuochi d'artificio e persino stormi di uccelli. Con le particelle statiche si può generare pelle, erba ed anche piante.

290

Capitolo 17. Il Rendering

Un primo Sistema di Particelle Si azzeri Blender alla scena di default, o si crei una scena con un solo piano aggiunto dalla vista dall'alto. Questo piano sarà l'emittente di particelle. Si ruoti la vista in modo da avere una buona visione del piano e dello spazio sopra di esso (Figura 20-2). Figura 20-2. L'emittente.

Si vada nel Tab Effects nel Contesto Object (F7 o ) e click sul pulsante NEW Effect nella parte centrale del Pannello. Si cambi il Pulsante Menu da Build a Particles. Appariranno i Pulsanti delle Particelle (Figura 20-3). Figura 20-3. I Pulsanti delle Particelle.

Si imposti il Pulsante Numerico Norm: a 0.100 con un click sulla parte destra del pulsante o usando SHIFT-LMB per inserire il valore da tastiera. Si avvii l'animazione premendo ALT-A col mouse sulla Finestra 3D. Si vedrà un flusso di particelle salire verticalmente dai quattro vertici. Congratulazioni - avete appena generato il primo sistema di particelle in pochi semplici passi! Per rendere il sistema un po' più interessante, è necessaria una comprensione maggiore del sistema e dei suoi pulsanti (Figura 204): •

Il parametro Tot: controlla il conteggio totale delle particelle. Con la velocità delle moderne CPU si può aumentare il numero delle particelle senza accorgersi del rallentamento.



Tutte le particelle, il cui numero totale è indicato nel pulsante Tot:, vengono create uniformemente durante un intervallo di tempo. Quindi viene definito tale intervallo di tempo dai Pulsanti Numerici Sta: e End:, che controllano l'intervallo (in frames) in cui vengono generate le particelle.



Le particelle hanno un ciclo di vita, esse durano un dato numero di di fotogrammi [frames], da quello da cui sono prodotte in poi, quindi scompaiono. Si può cambiare la durata della vita delle particelle col pulsante numerico Life:.



Il Pulsante Numerico Norm: utilizzato prima, crea delle particelle inizialmente con una velocità costante di un certo valore (0.1) diretto lungo le normali ai vertici. Per rendere la cosa un po' più "casuale" si può impostare anche il Pulsante Numerico

291

Rand: a 0.1. Ciò rende l'inizio delle particelle con una variazione casuale della velocità. •

Il gruppo di pulsanti numerici Force: si usa per simulare una forza costante, come vento o gravità. Per esempio, un valore di Force: Z: di -0.1 farà cadere le particelle al suolo.

Figura 20-4. Impostazioni delle Particelle.

Questo dovrebbe essere abbastanza per partire, ma non ci si deve intimorire nel toccare gli altri parametri mentre si sperimenta. Li vedremo in dettaglio nelle seguenti sezioni.

Il Rendering di un sistema di particelle Può darsi che si abbia provato ad effettuare il rendering di un disegno dall'esempio sopra. Se la telecamera è stata allineata correttamente, sarà apparsa un'immagine nera con delle goccioline grigie puntiformi su di essa. Questo è il materiale standard Alone [Halo] che Blender assegna ai sistemi di particelle appena generati. Si posizioni la telecamera in modo da avere una buona visione del sistema di particelle. Volendo aggiungere un semplice ambiente, si ricordi di aggiungere delle luci. Gli Aloni possono partecipare al rendering senza luci, salvo indicazioni contrarie, ma gli altri oggetti necessitano di luci per essere visibili. Si vada nella Pulsantiera dei Materiali (F5) e si aggiunga un nuovo materiale per l'emittente se non se ne ha già uno. Click sul pulsante "Halo" dalla gruppo mediano (Figura 20-5). Figura 20-5. Le impostazioni dell'Alone [Halo].

La Pulsantiera del Materiale si trasforma in quella per gli Aloni. Si scelga Line, e si regoli Lines: ad un valore a scelta (si può vedere un effetto direttamente nell'Anteprima-Materiale). Si abbassi HaloSize: a 0.30, e si scelga un colore per l'Alone e per le linee (Figura 20-5). Ora si può effettuare il rendering di un disegno con F12, o di una completa animazione e vedere migliaia di stelle volare intorno (Figura 20-6).

292

Capitolo 17. Il Rendering Figura 20-6. Stelle cadenti

Oggetti come particelle Usare un oggetto reale come particelle è molto semplice, è esattamente simile alla tecnica descritta nel sezione Duplicazione ai Vertici [DupliVerts] nel Capitolo 22. Si parte creando un cubo, o qualunque altro oggetto a piacere, nella scena. Vale molto valutare la potenza del proprio computer nel decidere quanti oggetti si hanno indicati nel Tot: della scena. Questo vuol dire avere tanti vertici quanto il numero di vertici dell'oggetto scelto moltiplicato per Tot:! Si ridimensioni l'oggetto appena creato in modo da adeguarlo alla dimensione della scena. Ora si selezioni l'oggetto, quindi con SHIFT-RMB sull'emittente e lo si renda genitore del cubo usando CTRL-P. Si selezioni solo l'emittente e si segni l'opzione "DupliVerts" nel Pannello Anim Settings del Contesto Oggetto (F7). I cubi duplicati ai vertici appariranno subito nella Finestra 3D. Figura 20-7. Impostazioni delle Particelle Duplicate ai Vertici.

Prima di premere ALT-A si potrebbe voler abbassare il numero di particelle (Figura 20-7). Nell'animazione si noterà che tutti i cubi condividono lo stesso orientamento. Questo può essere interessante, ma può essere interessante anche avere dei cubi orientati casualmente. Lo si può fare segnando l'opzione Vect nei parametri della particella, facendo in modo che gli oggetti duplicati ai vertici seguano la rotazione delle particelle, col risultato di un moto più naturale (Figura 20-7). Un fotogramma dell'animazione appare in (Figura 20-8). L'Oggetto Originale: Si abbia cura di spostare l'oggetto originale fuori dell'inquadratura, in quanto, diversamente dalla Duplicazione ai vertici della Mesh normale, nelle particelle Duplicate ai vertici potrebbe anch'esso rientrare nel rendering!

293

Figura 20-8. Il rendering delle particelle Duplicate ai Vertici.

Fare il fuoco con le particelle Il sistema di particelle di Blender è molto utile per creare un fuoco realistico ed il fumo. Questo può essere una candela, un bivacco o una casa in fiamme. È utile considerare come il fuoco sia regolato dalla fisica. Le fiamme di un fuoco sono gas caldi. Esse si sollevano perché la loro densità è più bassa, in confronto all'aria circostante più fredda. Le fiamme sono calde e luminose al centro, mentre sbiadiscono e diventano più scure verso la periferia. Si prepari una semplice disposizione per il fuoco, con qualche pezzo di legno, e qualche sasso (Figura 20-9). Figura 20-9. Impostazione del bivacco.

Il sistema di particelle Si aggiunga un piano al centro del cerchio di sassi. Questo piano costituirà l'emittente delle particelle. Si suddivida il piano una volta. Ora si possono spostare i vertici in modo da posizionarli sul legname da dove si devono originarsi le fiamme (particelle). Ora si va nel Contesto Oggetto F7 e si aggiunge, al piano, un nuovo effetto di particelle. I numeri dati qui (Figura 20-10) dovrebbero creare un fuoco realistico ma potrebbero essere necessarie delle modifiche, a seconda della dimensione reale dell'emittente.

294

Capitolo 17. Il Rendering Figura 20-10. Le impostazioni del fuoco con le particelle.

Qualche nota: •

Per avere un fuoco che bruci dall'inizio dell'animazione si renda Sta: negativo. Per esempio, si provi -50. Il valore di End: dovrebbe riflettere la lunghezza desiderata per l'animazione.



Il valore Life: [vita] delle particelle è 30. Però può restare a 50 per adesso. Useremo in seguito questo parametro per regolare l'altezza delle fiamme.



Si renda il parametro Norm: un po' negativo (-0.008) con questo si avrà un maggior volume del fuoco alla base.



Si usi un valore di Force: Z: [forza] di circa 0.200. Se il fuoco appare troppo lento, questo è il parametro da regolare.



Si porti Damp: a 0.100 per rallentare le fiamme dopo un po'.



Si attivi il Pulsante Bspline. Con questo verrà usato un metodo di interpolazione che consente un movimento più fluido.



Per aggiungere un po' di casualità alle nostre particelle, si regoli il parametro Rand: a circa 0.014. Si usi il parametro Randlife: per aggiungere una casualità nel ciclo di vita delle particelle; qui un valore molto alto dà una fiamma vivace.



Si usino circa 600-1000 particelle in tutto per l'animazione (Tot:).

Nella Finestra 3D, si avrà ora la prima impressione di quanto realisticamente si muovono le fiamme. Ma la cosa più importante per il nostro fuoco sarà il materiale.

Il materiale del fuoco Con l'emittente di particelle selezionata, si va nel Contesto di Ombreggiatura [Shading] F5 e si aggiunge un nuovo Materiale. Si crea il nuovo materiale di tipo Alone attivando il pulsante Halo. Si attiva anche HaloTex, posizionato sotto questo pulsante. Questo consentirà in seguito di usare una texture. Figura 20-11. Il materiale delle Fiamme.

295

Si dia al materiale un colore rosso saturo con gli sliders RGB. Si diminuisca il valore di Alpha a 0.700; questo renderà le fiamme un po' trasparenti. Si aumenti lo slider Add fino a 0.700, in modo che gli Aloni si illumineranno a vicenda, dando una luminosità interna alle fiamme, e più scura all'esterno. (Figura 20-11). Figura 20-12. La Texture delle fiamme.

Se ora si effettua un rendering di prova, si vedrà solo una brillante fiamma rossa. Per aggiungere un tocco di ulteriore realismo, sarà necessaria una texture. Sempre con l'emittente selezionata, si Pannello Texture e si aggiunge una nuova Texture si seleziona il tipo Cloud per essa nella Pulsantiera della Texture (F6). Si regoli NoiseSize: a 0.600. (Figura 20-12). Si torna nella pulsantiera del Materiale F5 e si dà un colore giallo alla texture con gli sliders RGB sul lato destro dei pulsanti del materiale. Per stendere le macchie gialle della texture di tipo nube si diminuisce il valore SizeY fino a 0.30. Un rendering di prova ora mostrerà un bel fuoco. Ma avremo necessità di sbiadire le particelle sopra il fuoco. Questo si potrà fare con l'animazione del materiale di Alpha e di Halo Size. Ci si assicuri che l'animazione sia al frame 1 (SHIFT-FrecciaSinistra) e si sposti il mouse sulla finestra del Materiale. Ora si prema IKEY e si scelga Alpha dal menù che appare. Si avanzi lo slider del frame fino al fotogramma 100, si imposti "Alpha" a 0.0 e si inserisca un'altra chiave per "Alpha" con IKEY. Si trasformi una Finestra nel tipo IPO. Si attivi il Materiale Tipo IPO cliccando sulla Voce di Menù pertinente nell'Header della IPO. Si vedrà una curva per il canale Alfa del Materiale (Figura 2013). Nota: Un'animazione per un materiale di particelle viene sempre pianificato a partire dai primi 100 frames dell'animazione fino al ciclo di vita di una particella. Questo vuol dire che quando sbiadiremo un materiale dal frame 1 al 100, una particella con un ciclo di vita di 50 sbiadirà in questo periodo.

Figura 20-13. La IPO del Materiale per il fuoco.

Ora si può effettuare il rendering di un'animazione. Può darsi che si debbano ritoccare alcuni parametri come la durata della vita delle particelle. Si può aggiungere un grande tocco di realismo alla scena animando le luci (o usando faretti e ombre) ed aggiungendo al fuoco un sistema di particelle per le scintille. Si raccomanda anche di animare l'emittente per avere delle fiamme più vive, o usare più di un'emittente (Figura 20-14).

296

Capitolo 17. Il Rendering Figura 20-14. Il rendering finale..

Una semplice esplosione Questa esplosione è progettata per essere usata come una texture animata, per comporla nella scena attuale o per usarla come texture animata. Per il rendering di una diapositiva, o per un'esplosione al rallentatore, si dovrà fare un po' di lavoro aggiuntivo per renderla veramente ottimale. Ma si consideri che, un'esplosione, viene vista solo per mezzo secondo (Figura 20-15). Figura 20-15. L'esplosione.

Come emittente per l'esplosione si sceglie una IcoSfera. Per rendere l'esplosione un po' irregolare, si cancella la disposizione dei vertici con la funzione di selezione circolare in Modo Edit. Per una specifica scena si può preferire di usare un oggetto come emittente, che abbia una forma diversa, per esempio come l'oggetto che si vuol far esplodere. L'esplosione è composta da due sistemi di particelle, una per la nube di gas ed una per le scintille. Si prende una versione ruotata dell'emittente per generare le scintille. Inoltre, si effettua l'animazione della rotazione delle emittenti mentre si generano le particelle.

I materiali Le particelle per l'esplosione sono dei semplicissimi materiali aureolari [halo], cui viene applicata una texture nubiforme per aggiungervi della casualità, anche le scintille hanno un materiale molto simile, si veda dalla Figura 20-16 alla Figura 20-18. Figura 20-16. Il materiale per la nube dell'esplosione.

297

Figura 20-17. Il materiale per le scintille.

Figura 20-18. La Texture per entrambi.

Si effettui l'animazione del valore Alfa delle particelle aureolari da 1.0 a 0.0 per i primi 100 fotogrammi. Questo sarà mappato sul ciclo di vita delle particelle, come al solito. Si noti l'impostazione di Star nel materiale delle scintille (Figura 20-17). Questo dà un po' forma alle scintille. Avremmo potuto usare una speciale texture per questo, ma, in questo caso l'impostazione di Star è l'opzione più semplice.

I sistemi di particelle Figura 20-19. Il sistema di particelle per la nube

Figura 20-20. Il sistema di particelle per le scintille.

Come si può osservare in Figura 20-19 e in Figura 20-20, i parametri sono fondamentalmente gli stessi. La differenza sta nell'impostazione di Vect per le scintille, ed un valore più alto per Norm: per dare maggior velocità alle scintille. Ho anche messo

298

Capitolo 17. Il Rendering Randlife: a 2.000 per le scintille per dare loro un una forma irregolare.

Suggerisco di partire sperimentando, usando questi parametri per iniziare. Le impostazioni attuali dipendono da cosa si vuol raggiungere. Si provi ad aggiungere più emittenti per i detriti, il fumo, ecc.

Fuochi d'artificio Un pulsante non ancora usato è Mult:. L'intera terza linea di pulsanti nel Pannello è relativa a questo. Si prepara un piano e si aggiunge un sistema di particelle al piano. Si regolino i parametri in modo da avere alcune particelle che volano nel cielo, quindi si aumenta il valore di Mult: a 1.0. Questo farà sì che il 100% delle particelle genereranno particelle figlie alla fine del loro ciclo di vita. Solo adesso ogni particella genererà quattro figli. Quindi sarà necessario aumentare il valore di Child: portandolo a circa 90 (Figura 20-21). Si dovrebbero ora vedere dei fuochi artificiali convincenti creati dalle particelle, quando si effettua un'anteprima dell'animazione con ALT-A. Figura 20-21. I pulsanti della Moltiplicazione delle particelle.

Col rendering dei fuochi artificiali si avrà una visione molto impressionante. Questo per il materiale standard aureolare assegnato da Blender. Di conseguenza, il passo successivo consiste nell'assegnare un materiale migliore. Ci si assicura di avere l'emittente selezionato e si va Contesto di Shading e nella Pulsantiera del Materiale (F5). Si aggiunge un nuovo materiale col Pulsante menù, e si imposta il tipo ad Halo. Figura 20-22. Fuochi d'artificio, "Material 1".

Si è usato un bel materiale luminescente [halo] semplice; si possono vedere i parametri nella Figura 20-22. Il rendering dell'animazione appare molto migliorato, ma resta ancora qualcosa da fare. Mentre l'emittente è selezionato si va nel Contesto di Editing F9 e si aggiunge un nuovo indice del materiale cliccando sul pulsante New nel Pannello Link and Materials Panel (Figura 20-23). Figura 20-23. L'inserimento di un secondo materiale all'emittente.

299

Si torna nel Contesto di Shading. Si vedrà che il riquadro di anteprima dei dati del materiale è diventato blu. Il pulsate etichettato con 2 indica che questo materiale è usato da due utenze. Ora si clicca sul pulsante 2 e si conferma. Si rinomina il Materiale in "Material 2" e si cambia il colore della luminescenza [halo] e delle linee (Figura 20-24). Figura 20-24. "Material 2".

Ci si sposta nei parametri delle particelle e si cambia il pulsante Mat: in "2". Si effettui ancora il rendering e si vedrà che la prima generazione di particelle usa il primo materiale e la seconda generazione il secondo materiale. In questo modo si può arrivare fino a 16 (che è il massimo dell'indice del materiale) materiali per particelle. Ulteriori miglioramenti: Oltre al cambio dei materiali si possono usare le IPO dei materiali per animare le impostazioni di ciascun materiale diverso.

Controllo di Particelle con un Lattice Il sistema di particelle di Blender è estremamente potente, ed il corso delle particelle può essere determinato non solo da forze ma anche incanalato da un lattice. Si prepara una singola mesh quadrata e si aggiunge un sistema di particelle in essa con una forza z negativa ed i parametri generali di Figura 20-25. Figura 20-25. Impostazioni delle Particelle.

Questo potrebbe risultare buono per il fumo di quattro piccole fiammelle di fuoco in un giorno senza vento, ma le si vuole contorcere! Si aggiunge un lattice e lo si deforma come in Figura 20-26.

300

Capitolo 17. Il Rendering Figura 20-26. Impostazioni del lattice.

Si imparenta l'emettitore di particelle al lattice (CTRL-P). Se ora si seleziona l'emettitore di particelle, si cambiano i pulsanti dell'Animazione (F7) e si preme RecalcAll ci si accorgerà che le particelle seguono, più o meno, il lattice (Figura 20-27 sulla sinistra). Come ulteriore tocco, si ruota ciascuna sezione orizzontale del lattice di 60 gradi in senso orario nella vista dall'alto, in modo incrementale, come se si volesse creare un'elica. Dopo di ché, si ricalcolano ancora le particelle. Il risultato è in Figura 20-27 sulla destra. Figura 20-27. Effetti della deformazione del lattice.

L'avvitamento è evidente, ed ovviamente si può ottenere anche un effetto più stretto ruotando di più il lattice o usando un lattice con più suddivisioni. Se si dà all'emittente un materiale luminescente [halo] e si effettua il rendering si vedrà qualcosa di simile alla Figura 20-28 sulla sinistra.

301

Figura 20-28. Particelle normali, a sinistra; particelle Vettore, al centro; e oggetti Duplicati ai Vertici che seguono le particelle, a destra.

Se si seleziona l'emittente, si cambiano i pulsanti dell'animazione e si preme il Pulsante delle Particelle Vect le particelle cambieranno da punti a segmenti, con una lunghezza ed una direzione proporzionale alla velocità delle particelle. Effettuando un rendering ora si avrebbe il risultato di Figura 20-28 al centro. Se poi si Duplica un oggetto ai Vertici dell'emittente, imparentandolo e premendo il pulsante Duplivert, gli oggetti Duplicati ai Vertici avranno lo stesso orientamento dell'oggetto originale se le particelle sono normali particelle, ma ruoteranno e si allineeranno alla direzione delle particelle se le Particelle sono impostate come a vert. Selezionando l'Oggetto Originale e giocherellando con i pulsanti Track si può cambiare la rotazione (Figura 20-28 sulla destra).

Particelle Statiche Le particelle statiche sono utili per fare oggetti come fibre, erba, pellicce o piante. Si provi a creare un piccolo personaggio, o solo una palla, per provare le particelle statiche. Si provi a modellare una specie di 'palla pelosa'. Un emittente non viene visualizzato nel rendering, quindi si deve duplicare la mesh (o qualsiasi tipo di oggetto usato e convertirlo (ALT-C) in una mesh). Una suddivisione frattale della mesh per metterci un po' di casualità, è solitamente una buona idea. Se si finisce con una mesh troppo densa, si usa "Remove Doubles" con un limite aumentato. Si tagliano via delle parti con la selezione delimitata (circolare) dove non si vuole la peluria. Ora, si assegni il sistema di particelle e, si attiva Static. Figura 20-29. Impostazioni delle particelle statiche.

Si usano questi parametri in Figura 20-29. Con la combinazione di Life e di Norm si può controllare la lunghezza dei capelli. Si usi una forza negativa nella direzione z per piegare i capelli. Si attivi Face per generare le particelle, non solo sui vertici ma distribuite anche sulle facce. Si selezioni anche Vect; questo genererà particelle come fibre. Il valore Step definisce quante particelle per ciclo di vita si debbano generare. Si imposti questo ad un valore basso per avere delle curve più morbide per le particel-

302

Capitolo 17. Il Rendering le, e ci si assicuri di non dimenticare l'impostazione del valore Rand. Quando si effettuerà il rendering, si vedranno particelle molto sfocate. Il materiale usato per le particelle statiche è molto importante, quindi si aggiunga un materiale per l'emittente nella Contesto di Shading (F5). Figura 20-30. Impostazioni del Materiale.

Si è usato un piccolissimo HaloSize (0.001). Nel Pulsante Numerico si può vedere ciò, quindi per regolare click sul pulsante con LMB mentre si tiene premuto SHIFT. Si abilita l'opzione Shaded per far sì che le particelle siano influenzate dalle luci nella scena, e quindi si attivi HaloTex. Si userà una texture per dar forma ai capelli (Figura 20-30). Figura 20-31. Impostazioni della Banda di Colori [Colorband] della Texture.

Ci si sposti nella sub contesto Texture (F6) e si aggiunga una nuova texture di tipo Blend. Si scelga Lin come sotto-tipo. Si attivi l'opzione Colorband e si regoli il colore come in Figura 20-31. Si vedrà un bel miscuglio, dal trasparente al viola ed ancora al trasparente. Figura 20-32. Impostazione della Texture nei Pulsanti del Materiale.

Si torni nei Pulsanti del sub-contesto del Materiale e ci si assicuri che sia attivato Alpha nell'output della mappature della texture sulla destra dei Pulsanti del Materiale. Quindi si usino sizeX e sizeY per formare una luminescenza [halo] nell'anteprima del materiale per avere una piccola fibra (Figura 20-32). Se la peluria non è abbastanza densa, si incrementi il conteggio delle particelle con Tot o si aggiungano altre emittenti. Inoltre, si cambino un po' i parametri delle particelle per queste ulteriori emittenti in modo da avere delle variazioni nei capelli (Figura 2033).

303

Figura 20-33. Il risultato finale.

Particelle Interagenti TO BE WRITTEN

Capitolo 21. Altri Effetti Introduzione A partire da Blender v2.31 Ci sono altri due tipi di effetti, oltre alle particelle, che possono essere collegati ad un Oggetto, idealmente funzionante durante le animazioni ma in pratica prezioso anche per le Diapositive. Questi due effetti sono Build, e Wave, le successive sezioni descriveranno ciascuno in dettaglio.

Effetto Build (Costruzione progressiva) A partire da Blender v2.31 L'effetto Build funziona sulle Mesh e fa apparire le facce dell'Oggetto, una dopo l'altra, col passare del tempo. Se il Materiale della Mesh è un Materiale Halo [Alone], invece di uno standard, allora sono i vertici della Mesh, non le facce, ad apparire in sequenza. Figura 21-1. L'effetto Costruzione Progressiva [Build].

Facce, o vertici, appaiono nell'ordine in cui sono immagazzinate in memoria. Tale ordine può essere modificato selezionando l'Oggetto e premendo CTRL-F fuori dal Modo Edit. Questo fa sì che le facce vengano riordinate in funzione dei loro valori (la coordinata Z) nel riferimento locale della Mesh. Riordinamento: Se si crea un piano e vi si aggiungete l'effetto Build per vedere come funziona non si resterà soddisfatti. Prima, bisogna suddividerlo in modo da creare molte più facce, non una sola. Quindi premendo CTRL-F non si farà molto

304

Capitolo 17. Il Rendering perché l'asse Z è ortogonale al piano. Bisogna ruotare il piano in Modo Edit per avere qualche differenza numerica tra le coordinate delle facce, per essere in grado di riordinarle.

L'effetto Build ha solo due controlli numerici (Figura 21-1): Len - Definisce in quanti fotogrammi [frames] avrà luogo la costruzione. Sfra - Definisce il fotogramma di inizio del processo di costruzione.

Effetto Onda (Wave) A partire da Blender v2.31 L'effetto Onda (Wave) aggiunge un moto alla coordinata Z dell'Oggetto Mesh. Figura 21-2. Il pannello di controllo dell'effetto Wave (Onda).

L'effetto Onda viene generato da un dato punto iniziale definito dai Pulsanti Numerici Sta X e Sta Y. Queste coordinate sono in un riferimento locale alla Mesh (Figura 21-3). Figura 21-3. Origine dell'Onda.

La deformazione dell'effetto Onda ha origine da un dato punto iniziale e si propaga lungo la Mesh con un fronte circolare, o con un fronte d'onda rettilineo, parallelo agli assi X e Y. Questo viene controllato dai due interruttori X e Y. Se solo uno di questi è premuto i fronti sono lineari, se sono entrambi premuti, i fronti sono circolari (Figura 21-4). L'onda stessa ha un andamento gaussiano che può essere un singolo impulso o una serie di increspature, se è premuto il pulsante Cycl. Figura 21-4. Tipi di fronti d'Onda.

L'Onda è governata da due serie di controlli, la prima definisce la forma dell'Onda, la seconda la durata dell'effetto. Per quello che concerne la Forma d'Onda, i controlli sono Speed, Height, Width e Narrow (Figura 21-5). Figura 21-5. I controlli della forma d'Onda.

Il Pulsante Numerico Speed controlla la velocità, in Unità per Frame, dell'ondulazione. Il Pulsante Numerico Height controlla l'altezza, in Unità Blender e lungo l'asse Z, dell'ondulazione (Figura 21-6).

305

Se il pulsante Cycl è premuto, il Pulsante Numerico Width indica la distanza, in Unità Blender, tra i picchi di due onde successive, ed il totale dell'effetto Onda è dato dall'inclusione di tutti i singoli impulsi (Figura 21-6). Questo ha un effetto indiretto sull'ampiezza dell'onda. Avendo l'onda una forma Gaussiana, se gli impulsi sono troppo vicini tra loro l'inviluppo può non raggiungere più quota z=0. In questo caso Blender abbassa addirittura l'intera onda in modo che il minimo sia zero e, di conseguenza, il massimo è più basso di quello atteso dal valore dell'ampiezza, come mostrato in Figura 21-6 in fondo. La vera larghezza per ciascun impulso Gaussiano è controllata dal Pulsante Numerico Narrow, più alto è il valore più stretto è l'impulso. La vera larghezza dell'area in cui il singolo impulso è decisamente diverso da zero in Unità Blender è dato da 4 diviso il valore di Narrow. Vale a dire, se Narrow è 1 l'impulso è largo 4 Unità, e se Narrow è 4 l'impulso è largo 1 Unità. Figura 21-6. Caratteristiche del fronte d'Onda

Per ottenere un'Onda Sinusoidale: Per ottenere una bell'effetto Onda simile alle onde del mare e vicine all'onda sinusoidale è necessario che la distanza tra due increspature successive e la larghezza dell'increspatura siano uguali, vale a dire che il valore del Pulsante Numerico Width deve essere uguale a 4 diviso il valore di Narrow.

Gli ultimi controlli dell'Onda sono i controlli del tempo. I tre Pulsanti Numerici definiscono: Time sta il di Fotogrammi [Frame] in cui comincia l'Onda; Lifetime il numero di fotogrammi in cui l'effetto finisce; Damptime è un ulteriore numero di fotogrammi in cui l'onda si attenua dal valore dell'ampiezza a zero. L'attenuazione avviene per tutte le onde ed inizia nel primo frame successivo a Lifetime (Durata della vita). Le onde scompaiono entro Damptime fra-

me. Figura 21-7. I controllo del tempo dell'Onda.

306

Capitolo 22. Tecniche di modellazione speciali Claudio "malefico" Andaur

Introduzione A partire da Blender v2.31 Appena superata la “febbre della modellazione per estrusione” ed iniziato a guardare verso altre sfide di modellazione, si possono cercare metodi alternativi per fare un lavoro. In Blender c'è un gruppo di tecniche di modellazione che non solo semplificano il lavoro di modellazione ma talvolta lo rendono possibile. Queste tecniche di modellazioni dette “speciali” richiedono non solo un po' di manipolazione dei vertici ma l'uso di procedure non intuitive che richiedono una conoscenza più approfondita ed esperienza, da parte dell'utente, di quella di un principiante medio. In questo capitolo si descriveranno in dettaglio queste tecniche e sarà spiegata la loro utilità in diverse applicazioni di modellazione che non sarebbero state possibili altrimenti.

Duplicazione ai Vertici [DupliVerts] A partire da Blender v2.31 Il “DupliVerts” non è né un gruppo rock né una parola olandese per qualcosa di illegale (anche se potrebbe essere) ma l'abbreviazione di “DUPLIcation at VERTiceS” (Duplicazione ai Vertici), ed indica le duplicazioni di un Oggetto base ubicate su ciascun Vertice di una Mesh (o anche di un sistema di Particelle). In altre parole, quando si usa il DupliVerts su una mesh, viene posto un'istanza dell'oggetto base su ogni vertice della mesh. Attualmente ci sono due approcci alla modellazione coi DupliVerts. Possono essere usati come uno strumento per posizionare, consentendoci di modellare disposizioni geometriche di oggetti (p. es.: le colonne di un tempio Greco, gli alberi di un giardino, un esercito di soldati robot, i banchi in un'aula scolastica). L'oggetto può essere un qualsiasi tipo di oggetto supportato da Blender. Il secondo approccio consiste nell'usarlo per modellare un Oggetto partendo da una singola porzione (cioè: i chiodi di una mazza, le spine di un riccio di mare, i mattoni di un muro, i petali di un fiore).

DupliVerts come uno Strumento di Dislocazione Tutto ciò che serve è un oggetto base (p. es.: un “albero” o una “colonna”) ed una mesh coi suoi vertici disposti secondo la struttura che abbiamo in mente. Per la seguente parte, userò una semplice scena. Essa consiste in una telecamera, le luci, un piano (per il pavimento) ed uno strano uomo che ho modellato da un famoso personaggio di Magritte (Figura 22-1). Se non vi piace il surrealismo troverete questa parte estremamente noiosa.

307

Capitolo 22. Tecniche di modellazione speciali Figura 22-1. Una semplice scena con cui effettuare le prove.

Ad ogni modo l'uomo sarà il mio “Oggetto base”. È buona norma porlo al centro del sistema di coordinate, ripulito da tutte le rotazioni. Si sposta il cursore sul centro della base dell'oggetto e, dalla Vista dall'alto si aggiunge una mesh circolare, con 12 vertici o giù di lì (Figura 22-2). Figura 22-2. La mesh genitrice può essere una qualunque primitiva.

Si esce dal Modo Edit, si seleziona l'Oggetto base e si aggiunge il cerchio alla selezione (l'ordine qui è molto importante). Si imparenta l'oggetto base col cerchio premendo CTRL-P. Ora, il cerchio è il genitore del personaggio (Figura 22-3). Abbiamo quasi finito.

308

Figura 22-3. L'uomo è imparentato al cerchio.

Figura 22-4. I pulsanti dell'Animazione.

Ora si seleziona solo il cerchio, si cambia la Pulsantiera nel contesto Oggetto (tramite pliVerts nel Pannello Anim Settings (Figura 22-4).

o F7) e si seleziona il Pulsante Du-

Figura 22-5. In ogni vertice del cerchio viene posto un uomo.

309

Capitolo 22. Tecniche di modellazione speciali Wow, non è grande? Non vi preoccupate dell'oggetto al centro (Figura 22-5). Esso è visibile nelle viste 3D ma non ne sarà effettuato il rendering. Ora si può selezionare l'oggetto base, cambiarlo (ridimensionare, ruotare, in Modo Edit) 1 i cambiamenti si ripercuoteranno su di esso e su tutti gli oggetti Duplicati ai Vertici. Ma la cosa più interessante da notare è che si può modificare anche il cerchio genitore. Nota: L'Oggetto base non partecipa al rendering se è Duplicato ai Vertici di una Mesh ma lo è se è Duplicato ai Vertici di un Sistema di Particelle!

Si seleziona il cerchio e lo si ridimensiona. Si potrà vedere che gli uomini misteriosi si ridimensioneranno con esso. Si pone in Modo Edit il cerchio, si selezionano tutti i vertici con AKEY e si ingrandisce di circa tre volte. Uscendo dal Modo Edit gli oggetti Duplicati ai Vertici verranno aggiornati (Figura 22-6). Questa volta essi resteranno della loro dimensione originale ma la distanza tra di loro sarà cambiata. In Modo Edit, non solo si può ridimensionare, ma anche cancellare o aggiungere dei vertici per cambiare la disposizione degli uomini. Figura 22-6. Modifica della dimensione del cerchio in Modo Edit.

In Modo Edit si selezionano e si duplicano tutti i vertici (SHIFT-D). Ora si ingrandiscono i nuovi vertici verso l'esterno in modo da avere un secondo cerchio intorno all'originale. Lasciando il Modo Edit, apparirà un secondo cerchio di uomini (Figura 22-7). Figura 22-7. Una seconda fila di uomini di Magritte.

Finora tutti gli uomini di Magritte stanno di fronte alla telecamera, ignorandosi reciprocamente. Possiamo ottenere un risultato migliore usando il Pulsante Rot di seguito al pulsante DupliVerts nel Pannello Anim Settings. Con questo Pulsante attivo, possiamo ruotare gli oggetti Duplicati ai Vertici secondo le normali dell'Oggetto genitore. Più precisamente, gli assi degli Oggetti

310

Duplicati vengono allineati con la normale nella posizione del vertice. Quale sia l'asse allineato (X, Y o Z) con la normale della mesh genitore dipende da quale pulsante è indicato tra TrackX, Y, Z e tra i pulsanti UpX, Y, Z in alto nel Pannello Anim Settings. Provandoli con la nostra camerata surrealista, constateremo che gli strani risultati dipendono da queste impostazioni. Il modo migliore per capire cosa avverrà consiste prima di tutto nell'allineare gli assi dell'oggetto "base" e di quelli del "genitore" con gli assi del Mondo. Questo viene fatto selezionando entrambi gli oggetti e premendo CTRL-A, e cliccando sul menù Apply Size/Rot?. Figura 22-8. Si facciano apparire gli assi dell'oggetto per avere la disposizione che si vuole.

Quindi si rendono visibili gli assi dell'oggetto base e gli assi e le normali dell'oggetto genitore (Figura 22-8 - in questo caso, avendo un cerchio senza facce, deve essere prima definita una faccia affinché sia visibile la normale - in realtà non ne esistono affatto). Ora si seleziona l'oggetto base (il nostro uomo di Magritte) e si gioca un po' coi pulsanti Tracking. Si notino i diversi allineamenti degli assi con le diverse combinazioni di UpX, Y, Z e TrackX, Y, Z (Figura 22-9, Figura 22-10, Figura 22-11, Figura 22-12). Figura 22-9. L'asse Y negativo è allineato alla normale al vertice (che punta verso il centro del cerchio).

311

Capitolo 22. Tecniche di modellazione speciali Figura 22-10. L'asse Y positivo è allineato alla normale.

Figura 22-11. L'asse X positivo è allineato alla normale.

Figura 22-12. L'asse Z positivo è allineato alla normale.

DupliVerts per Modellare un Singolo Oggetto Con le Duplicazioni ai Vertici ed una primitiva standard si possono fare dei modelli molto interessanti. Partendo da un cubo in Vista Frontale, ed estrudendo un paio di volte ho modellato qualcosa che appare essere un tentacolo, una volta attivato il SubSurfs (Figura 22-13). Quindi ho aggiunto una Icosfera con 2 suddivisioni.

312

Figura 22-13. Lo strano tentacolo e la versione con SubSurfs.

Sono stato molto attento affinché il tentacolo fosse posizionato al centro della sfera, e che sia gli assi dei tentacoli che quelli della sfera fossero allineati con gli assi del Mondo [World] come sopra (Figura 22-14). Figura 22-14. Riferimento locale del tentacolo.

Poi, ho semplicemente reso la icosfera genitrice del tentacolo. Si seleziona la sola icosfera e la si rende DupliVert nel Pannello Anim Settings (Figura 22-15). Si preme il pulsante Rot per ruotare i tentacoli (Figura 22-16). Figura 22-15. Le Duplicazioni ai Vertici non ruotate.

313

Capitolo 22. Tecniche di modellazione speciali Figura 22-16. Le Duplicazioni ai Vertici ruotate.

Ancora una volta per fare in modo che i tentacoli puntino verso l'esterno bisogna guardare attentamente gli assi. Quando si applica Rot, Blender prova ad allineare uno degli assi del tentacolo col vettore normale al vertice della mesh genitore. Non ci si deve preoccupare del cerchio Genitore dell'uomo di Magritte, ma ci si deve preoccupare qui della Sfera, e si noterà che essa non partecipa al rendering. Probabilmente si vorrà aggiungere un'altra sfera per il rendering per completare il modello. Si può sperimentare un po' coi tentacoli in Modo Edit, spostandone i vertici lontano dal centro della sfera, ma il centro dell'oggetto dovrebbe sempre restare al centro della sfera per avere una figura simmetrica. Si faccia attenzione, però, a non ingrandire o ridurre lungo un asse nel Modo Oggetto dato che si potrebbero ottenere dei risultati imprevedibili negli oggetti Duplicati ai Vertici premendo il pulsante Rot. Figura 22-17. Il nostro modello completo.

Una volta finito il modello e sarete soddisfatti dei risultati, si potrà selezionare il tentacolo e premere SHIFT-CTRL-A e cliccare sulla voce di menù Make duplis real ? per trasformare le copie virtuali in mesh reali (Figura 22-17).

314

Duplicazione nei Fotogrammi [DupliFrame] A partire da Blender v2.31 I DupliFrame si possono considerare in due modi: uno strumento di disposizione o uno per la modellazione. In un modo, I DupliFrame sono molto simili alle Duplicazioni ai Vertici [DupliVerts]. La sola differenza è che coi DupliFrame gli oggetti si dispongono facendoli seguire una curva invece che i vertici di una mesh. DupliFrame sta per DUPLIcation at FRAMES (Duplicazione ai Fotogrammi) ed è una tecnica di modellazione molto utile per gli oggetti che devono essere ripetuti lungo un percorso, come le traversine di legno della ferrovia, le assi di un recinto o gli anelli di una catena, ma anche per modellare oggetti curva complessi come cavatappi, conchiglie e spirali.

Modellare coi DupliFrame Modelleremo una catena con i suoi anelli usando i DupliFrame. Le prime cose vengono prima. Per spiegare l'uso dei DupliFrame come tecnica di modellazione, inizieremo modellando un singolo anello. Per fare ciò, nella vista frontale si aggiunge una Curva Circolare [Curve Circe] (Bézier o NURBS, qualsiasi). In Modo Edit, la si suddivide una volta e si spostano un po' i vertici per fargli assumere il profilo di un anello di una catena (Figura 22-18). Figura 22-18. Il profilo dell'anello.

Si esce dal Modo Edit e si aggiunge un oggetto Superficie Circolare [Surface Circle] (Figura 22-19). Le superfici NURBS sono ideali per quest'uso, in quanto, dopo la creazione, gli si può cambiare facilmente la risoluzione, e se necessario, si possono convertire in un oggetto mesh. È molto importante non confondere Curve Circle con Surface Circle. La prima funzionerà come profilo dell'anello ma non ci consentirà di fare il rivestimento nel passaggio successivo. La seconda sarà la sezione trasversale per il rivestimento. Figura 22-19. La sezione trasversale dell'anello.

Si imparenta la superficie circolare alla curva circolare (il profilo dell'anello) come un Normale genitore (Non un vincolo Curve Follow). Si seleziona la curva e nel Contesto Object e nel Pannello Anim Settings si premono CurvePath e CurveFollow (Figura 22-20).

315

Capitolo 22. Tecniche di modellazione speciali Figura 22-20. Impostazioni della curva: Curve Path e Curve Follow.

Probabilmente la superficie circolare apparirà spostata. Basta selezionarla e premere ALT-O per cancellarne l'origine (Figura 2221). Figura 22-21. Rimozione dell'origine.

Se si preme ALT-A il cerchio seguirà la curva. Probabilmente, ora, si dovranno regolare i pulsanti dell'animazione TrackX, Y, Z e UpX, Y, Z, per fare in modo che il cerchio vada perpendicolarmente al percorso curvo (Figura 22-22). Figura 22-22. Puntamento degli assi giusti.

Ora si seleziona la Superficie Circolar [Surface Circle] e si va nel Pannello Anim Settings e si preme DupliFrames . Un numero di istanze della sezione circolare trasversale apparirà lungo la curva percorso (Figura 22-23).

316

Figura 22-23. DupliFrame!

Il numero di cerchi che si vogliono si può regolare coi pulsanti DupSta, DupEnd, DupOn e DupOff. Questi pulsanti controllano l'Inizio [Start] e la Fine [End] della duplicazione, il numero di duplicati di ogni volta ed anche la distanza [Offset] tra le duplicazioni. Se si vuole che l'anello sia aperto, si possono provare diverse valori per DupEnd (Figura 22-24). Figura 22-24. I valori per il DupliFrame. Nota "DupEnd: 35" termina l'anello prima che finisca la curva.

Per trasformare la struttura in un vero oggetto NURBS, si seleziona la Superficie Circolare e si preme CTRL-SHIFT-A. Apparirà un menù per la conferma OK? Make Dupli's Real (Figura 22-25). Figura 22-25. Rendere Reali i Duplicati.

Non si deselezioni niente. Ora si ha un insieme di NURBS che formano il profilo dell'oggetto, ma non è ancora rivestito, quindi non lo rivedrà in un'anteprima ombreggiata o in un rendering. Per farlo, si devono unire tutti gli anelli in un oggetto. Senza deselezionare alcun anello, si preme CTRL-J e si conferma il menù che apparirà. Ora, si entra in Modo Edit per l'oggetto appena creato e si preme AKEY per selezionare tutti i vertici (Figura 22-26). Siamo pronti per ricoprire il nostro oggetto. Si preme FKEY e Blender genererà automaticamente l'oggetto solido. Questa operazione è chiamata “Skinning” (Rivestimento) ed è com-

317

Capitolo 22. Tecniche di modellazione speciali pletamente descritta nella sezione Rivestimento nel Capitolo 9. Figura 22-26. Il rivestimento dell'anello.

Uscendo dal Modo Edit, si potrà vedere l'oggetto nella vista ombreggiata. Ma è molto nero. Per porvi rimedio, si entra in Modo Edit e si selezionano tutti i vertici, quindi si preme WKEY. Si sceglie Switch Direction dal menù e di esce dall'Edit. Ora l'oggetto apparirà correttamente (Figura 22-27). L'oggetto creato è un oggetto NURBS. Questo significa che lo si può continuare a modificare. Cosa più interessante, si può anche controllare la risoluzione dell'oggetto NURBS con la Pulsantiera di Edit. Qui si può impostare la risoluzione dell'oggetto usando ResolU e ResolV, in modo da poterlo modificare lavorando con l'oggetto in bassa risoluzione, e quindi impostarlo ad alta risoluzione per il rendering finale. Gli oggetti NURBS sono anche molto piccoli come dimensione del file delle scene salvate. Si confronti la dimensione di una scena NURBS con la stessa scena in cui tutte le NURBS sono state convertite (ALT-C) in mesh. Alla fine si può cancellare la curva usata per dare la forma all'anello, dato che non verrà più usata. Figura 22-27. L'anello rivestito.

Disposizione di oggetti col DupliFrame Ora continueremo modellando la catena stessa. Per questo si aggiunge una Curva-Percorso [Curve Path] (si può usare una curva diversa ma questa da risultati migliori). In Mode Edit, si spostano i suoi vertici fino ad avere la forma desiderata per la catena (Figura 22-28). Se non si usa una Curve Path, si dovrebbe attivare il pulsante 3D nella pulsantiera di Edit per fare in modo che la catena sia veramente 3D.

318

Figura 22-28. Uso di una Curva-Percorso [Curve Path] per modellare la catena.

Si seleziona l'oggetto "Link" modellato nel passo precedente e lo si imparenta alla curva della catena, ancora come genitore normale. Dato che si sta usando una Curve Path l'opzione CurvePath nella pulsantiera dell'Animazione sarà attivata automaticamente, non però l'opzione CurveFollow, quindi la si dovrà attivare (Figura 22-29). Figura 22-29. Le impostazioni della curva.

Se l'anello è spostato, lo si seleziona e si preme ALT-O per cancellare l'origine. Finora abbiamo fatto poco più che animare l'anello lungo la curva. Si può avere conferma avviando l'animazione con ALT-A. Ora, con l'anello selezionato ancora una volta, si va nel Contesto Object e nel Pannello Anim settings. Qui, si attiva l'opzione DupliFrames come prima. Si modificano i Pulsanti Numerici DupSta:, DupEnd: e DupOf:. Normalmente si userà DupOf: 0 ma per una catena, se usando DupOf: 0 gli anelli sono troppo vicini gli uni agli altri si dovrebbe ridurre il valore PathLen per la curva del percorso nel Contesto di Editing e nel Pannello Curve and Surface e cambiare di conseguenza il valore DupEnd: per l'anello inserendovi questo numero (Figura 22-30). Figura 22-30. Regolazione dei DupliFrame.

Si deve fare in modo che l'anello ruoti lungo la curva di animazione, quindi si deve ruotare ciascun anello di 90 gradi rispetto al

319

Capitolo 22. Tecniche di modellazione speciali precedente anello. Per fare ciò, si seleziona l'anello e si preme Axis nella pulsantiera di Edit per palesare gli assi dell'oggetto. Si inserisce un keyframe di rotazione nell'asse parallelo alla curva. Ci si sposta di 3 o 4 frames in avanti e si ruota lungo tale asse premendo RKEY seguito da XKEY-XKEY (due volte XKEY), YKEY-YKEY, o ZKEY-ZKEY per ruotare secondo l'asse locale X, Y o Z (Figura 22-31). Figura 22-31. La rotazione dell'anello.

Si apre una finestra IPO per modificare la rotazione dell'anello lungo il percorso. Si preme Extrapolation Mode in modo che l'anello ruoterà continuamente fino alla fine del percorso. Si può modificare la curva della IPO per far sì che l'anello ruoti esattamente di 90 gradi ogni uno, due o tre anelli (ciascun anello è un frame). Si usa NKEY per posizionare esattamente un nodo a X=2.0 e Y=9.0, che corrisponde a 90 gradi in un frame (dal frame 1 al 2). Ora abbiamo una bella catena (Figura 22-32)! Figura 22-32. La catena fatta col DupliFrame.

Ancora Animazione e Modellazione Non c'è un limite nell'uso della Curve Paths per modellare le cose. Queste vengono usate per la propria convenienza, ma in qualche caso non sono necessarie. Nella vista frontale si inserisce una superficie circolare [surface circe] (si dovrebbe sapere perché, ora Figura 22-33). La si suddivide una volta, per squadrarla un po'. Si spostano e si dimensionano un po' i vertici per dargli la forma di un trapezoide (Figura 22-34).

320

Figura 22-33. Una Superficie Circolare.

Figura 22-34. Una sezione trasversale trapezoidale.

Quindi si ruotano tutti i vertici di pochi gradi. Tutti i vertici si afferrano e si spostano di qualche unità più a destra o a sinistra in X (ma nella stessa posizione Z). Si può usare CTRL per farlo in modo preciso. Si esce dal Modo Edit (Figura 22-35). Figura 22-35. La sezione trasversale trapezoidale, ruotata e traslata.

Al momento la sola cosa da fare è modificare le curve IPO dell'animazione. Quindi questo si potrebbe intitolare "Modellazione con l'Animazione", volendo. Non andremo mai in Modo Edit per la superficie. Ci si sposta nella vista dall'alto. Si inserisce un Fotogramma Chiave [KeyFrame] per la rotazione nel frame 1, si va avanti di 10 frames e si ruota la superficie di 90 gradi sulla sua nuova origine. Si inserisce un altro KeyFrame. Si apre una finestra IPO, e si imposta la rotazione IPO in Modo Estrapolazione (Figura 22-36). Figura 22-36. La IPO della Rotazione per la sezione trasversale.

Si torna al frame 1 e si inserisce un keyframe per la posizione [Location]. Ci si sposta nella vista frontale. Si va al frame 11 (basta premere FrecciaSu) e si sposta la superficie in Z di un paio di unità. Si inserisce un nuovo keyframe per Location. Nella fine-

321

Capitolo 22. Tecniche di modellazione speciali stra IPO si imposta LocZ nel Modo Estrapolazione (Figura 22-37). Figura 22-37. La IPO di traslazione per la sezione trasversale.

Ora, ovviamente, si va nella pulsantiera dell'Animazione e si preme DupliFrames . Si potrà vedere come la superficie sale in una spirale nello spazio 3D formando qualcosa di simile ad una molla. È carina, ma si vuole di più. Si disattiva DupliFrames per continuare. Nel frame 1 si riduce la superficie fino a quasi zero e di inserisce un keyframe per la dimensione [Size]. Si va avanti al frame 41, e si cancella il dimensionamento con ALT-S. Si inserisce un nuovo keyframe per la dimensione. Questa IPO non starà in modo estrapolazione dato che non la si vuole dimensionare all'infinito, giusto (Figura 22-38)? Figura 22-38. La IPO Dimensione [Size] per la sezione trasversale.

Se ora si attiva il DupliFrame si vedrà un bellissimo profilo di un cavatappi (Figura 22-39). Ancora una volta gli ultimi passi sono: Rendere le duplicazioni reali, Unire le superfici, Selezionare tutti i vertici e rivestire, Cambiare la direzione delle normali se necessario e uscire dal Modo Edit (Figura 22-40).

322

Figura 22-39. Cavatappi coi DupliFrame attivati.

Figura 22-40. Cavatappi con i Duplicati resi reali.

Si può vedere questo che è stato un semplice esempio. Con ulteriori modifiche delle curve IPO si possono ottenere degli effetti molto interessanti e complessi. Basta usare la propria immaginazione.

Modellare con i Lattici A partire da Blender v2.31 Un Lattice è composto da una griglia tridimensionale di vertici non visualizzabile nel rendering. Il principale loro uso consiste nel deformare ulteriormente qualsiasi oggetto figlio che possano avere. Questi oggetti figli possono essere Mesh, Superfici ed anche Particelle. Perché utilizzare un Lattice per deformare una mesh invece di deformare la mesh stessa in Modo Edit? Ci sono un paio di motivi per questo: 1. Prima di tutto è più facile. Dato che la mesh può avere centinaia di vertici, dimensionarli, afferrarli e spostarli potrebbe essere un compito arduo. Invece, usando un semplice bel lattice il lavoro si riduce a dover spostare un paio di vertici. 2. È più piacevole. La deformazione appare molto meglio! 3. È più veloce! Si possono mettere tutti i diversi oggetti figli su uno strato nascosto e deformarli tutti in una volta. 4. È una buona pratica. Un lattice può essere utilizzato per avere diverse versioni di una mesh con un lavoro aggiuntivo e

323

Capitolo 22. Tecniche di modellazione speciali consumo di risorse minimi. Questo porta ad un progetto ottimale della scena, minimizzando il lavoro di modellazione. Un Lattice non modifica le coordinate della texture di una Mesh Superficie. In questo modo i piccoli cambiamenti agli oggetti mesh sono facilitati, e non cambiano la mesh stessa.

Come funziona? Un Lattice parte sempre come una griglia di 2 x 2 x 2 vertici (che appare come un semplice cubo). Lo si può ingrandire o ridurre in Modo Oggetto e cambiarne la risoluzione tramite il Pannello Lattice nel Contesto di Editing ed i Pulsanti U, V, W. Dopo questo passo iniziale è possibile deformare il Lattice in Modo Edit. Se c'è un Oggetto Figlio, la deformazione viene mostrata continuamente e modificata. Cambiando i valori U, V, W di un Lattice esso torna in una posizione uniforme iniziale. Ora andiamo a vedere un semplicissimo caso in cui un lattice semplificherà e velocizzerà il lavoro di modellazione. Ho modellato una semplicissima forchetta usando un piano suddiviso un paio di volte. Essa appare brutta ma è sufficiente. Ovviamente è una forma completamente piatta dalla Vista Laterale. Wow, è veramente brutta (Figura 22-41). Il solo dettaglio importante è che è stata suddivisa abbastanza per assicurare una bella deformazione nel passaggio con Lattice. Non si può piegare un segmento di due vertici! Figura 22-41. Una brutta forchetta.

Nella vista dall'alto, si aggiunge un Lattice. Prima di cambiarne la risoluzione, lo si ingrandisce fino a racchiudere completamente la larghezza della forchetta (Figura 22-42). Questo è molto importante. Dato che si vuol tenere basso il numero dei vertici (non avrebbe senso avere lo stesso numero di vertici della mesh, giusto?), si deve tenere bassa la risoluzione lasciando il lattice di una dimensione opportuna. Figura 22-42. Un Lattice 2x2x2.

Si regola la risoluzione del Lattice per completare la lunghezza della forchetta (Figura 22-43).

324

Figura 22-43. Si usa una risoluzione adatta, ma senza esagerare.

Ora, siamo pronti per la parte divertente. Si imparenta (affilia) la forchetta al lattice, selezionando la forchetta ed il lattice e premendo CTRL-P. Si entra in Modo Edit per il lattice e si inizia a selezionare e ridimensionare i vertici (Figura 22-44). Si può scalare separatamente lungo l'asse X o Y per avere maggior controllo sulla profondità del lattice (per evitare di fare una forchetta più spessa o più sottile). Figura 22-44. Deformare il lattice è un piacere!

Si noti che se si sposta la forchetta sopra o sotto all'interno del lattice, la deformazione si applica a parti diverse della mesh. Una volta completato nella vista frontale, ci si sposta in quella laterale. Si selezionano e si spostano i diversi vertici delle sezioni per dare una piega adatta alla forchetta (Figura 22-45).

325

Capitolo 22. Tecniche di modellazione speciali Figura 22-45. Piegare cose.

Ora ci si può sbarazzare del lattice se non ci sono altri oggetti figli. Ma prima di farlo, bisogna mantenere le deformazioni! Basta selezionare la forchetta e premere CTRL-SHIFT-A e cliccare sulla voce di menù Apply Lattice Deform?. Vertici impazziti: In rare occasioni, per mesh abbastanza complesse, l'applicazione di CTRL-SHIFT-A la farà apparire come se la mesh fosse completamente avvitata. Questo è falso. Basta entrare ed uscire dal Modo Edit (TAB) e la mesh tornerà ben deformata come voluto.

Figura 22-46. Una bella forchetta.

Si può usare un lattice per modellare un oggetto secondo la forma di un altro oggetto. Per esempio si dia uno sguardo alla scena seguente. Ho modellato una bottiglia, ed ora voglio rinchiudervi dentro un personaggio. Se lo merita (Figura 22-47). Figura 22-47. Un ragazzaccio...

326

Si aggiunge un lattice attorno al personaggio. Non uso una risoluzione troppo alta per il lattice. L'ho dimensionato lungo X ed Y per adattare il lattice al personaggio (Figura 22-48). Figura 22-48. Curvare le cose.

Si imparenta il personaggio al lattice, quindi si dimensiona ancora il lattice per adattarlo alle dimensioni della bottiglia (Figura 22-49). Figura 22-49. Si dimensiona il lattice per adattarlo alla bottiglia.

Ora si entra in Edit per il lattice. Si preme il pulsante Outside nel Pannello Lattice nel Contesto di Editing per disabilitare i vertici interni del lattice. Li riattiveremo in seguito. Si spostano e ridimensionano i vertici nelle viste frontale e laterale finché il personaggio non sia perfettamente adattato alla forma della bottiglia (Figura 22-50).

327

Capitolo 22. Tecniche di modellazione speciali Figura 22-50. Modifica del Lattice in modo che il ragazzaccio si accomodi nella sua bottiglia.

Si può selezionare il lattice e modellarlo in una finestra 3D usando la Vista Locale e vedere i risultati in un'altra finestra con una Vista Globale per rendere comoda la modellazione (Figura 22-51). Figura 22-51. Claustrofobico?

Se non avessimo usato un lattice avremmo dovuto selezionare e spostare molti più vertici per deformare il personaggio (Figura 22-52). Dato che i lattici supportano anche le RVK per l'animazione dei vertici, con questo strumento si possono ottenere degli effetti molto interessanti.

328

Figura 22-52. Il rendering finale. Credetemi, lo meritava!

I lattici possono essere utilizzati in molte applicazioni che richiedono una deformazione "liquida" della mesh. Si pensi ad un genio che esce fuori dalla sua lampada, o al personaggio di un cartone i cui occhi sporgono esageratamente. E divertitevi!

Note 1. Ed anche in Modo Oggetto, dove però il ridimensionamento può portare qualche problema quando si effettua la Rotazione delle Copie ai Vertici come vedremo in seguito.

Capitolo 23. Effetti Volumetrici A partire da Blender v2.31 Anche se Blender espone una bella opzione per la Nebbia [Mist] nelle impostazioni del Mondo [World] per dare alle proprie immagini un po' di profondità, si potrebbero voler creare dei veri effetti volumetrici; nebbia, nuvole e fumo che sembrano realmente occupare dello spazio. La Figura 23-1 mostra un'impostazione con qualche colonna disposta in circolo, con un bel materiale a scelta per le colonne ed il suolo ed un Mondo [World] per definire il colore del cielo. Figura 23-1. Colonne su un piano.

La Figura 23-2 ne mostra il rendering, mentre nella Figura 23-3 c'è un rendering con la Nebbia [Mist] incorporato in Blender. Le impostazione della Nebbia in questo particolare caso sono: Linear Mist, Sta=1, Di=20, Hig=5.

329

Figura 23-2. Un semplice rendering.

Figura 23-3. Un rendering con l'effetto Nebbia [Mist] di Blender.

Ma si vuol creare una nebbia verosimile fredda, con un turbinio, e, soprattutto, non-uniforme. Le textures procedurali incluse in Blender (le nubiforme [clouds] per esempio) sono intrinsecamente 3D, ma partecipano al rendering solo quando sono mappate su una superficie 2D. Otterremo un rendering simile al 'volumetrico', 'campionando' la texture su una serie di piani mutuamente paralleli. Ciascuno dei piani quindi esporrà una texture standard di Blender sulle loro superfici 2D, ma l'effetto globale sarà un oggetto 3D. Questo concetto sarà chiarito con l'esempio apposito. Con la telecamera in z=0, rivolta in avanti, si va nella vista frontale e si aggiunge un piano di fronte alla telecamera, col suo centro allineato alla direzione della vista della telecamera. Nella vista laterale si sposta il piano dove si vuole che finisca l'effetto volumetrico. Nel nostro caso da qualche parte oltre la colonna più lontana. Si dimensiona il piano in modo che comprenda l'intero campo visivo della telecamera (Figura 23-4). È importante avere una telecamera che punti lungo l'asse y dato che i piani devono essere ortogonali alla direzione della vista. Ad ogni modo, li potremo comunque spostare in seguito.

330

Capitolo 23. Effetti Volumetrici Figura 23-4. L'impostazione del piano.

Dopo aver verificato di stare nel frame 1, si pone un Fotogramma Chiave [KeyFrame] (IKEY) di tipo Loc. Ora dovremmo spostarci al fotogramma 100, spostare il piano più vicino alla telecamera, ed inserire un altro KeyFrame Loc. Nel Contesto Oggetto Pannello Anim Settings (F7) si preme il pulsante DupliFrame . Nella finestra 3D, nella vista laterale, vedremo qualcosa di simile alla Figura 23-5. Questo non è buono in quanto i piani sono troppo addensati all'inizio ed alla fine della spazzolata [sweep]. Col piano ancora selezionato si cambia una finestra in una finestra IPO (SHIFT-F6). Ci saranno tre IPO Loc, delle quali solo una non-costante. La si seleziona, si cambia in Modo Edit (TAB) e si selezionano entrambi i punti. Ora la si cambia da curva a retta con (VKEY) (Figura 23-6). Figura 23-5. Il piano Duplicato ai Frame.

331

Figura 23-6. Riconformazione della IPO del piano Duplicato ai Frame.

I piani ora appariranno come in Figura 23-7. Si imparentano i piani ottenuti col DupliFrame alla telecamera (si seleziona il piano, SHIFT si seleziona la telecamera, CTRL-P). Ora si ha una serie di piani che seguono automaticamente la telecamera, orientati sempre perpendicolarmente ad essa. Da adesso, volendo, possiamo spostare la telecamera. Figura 23-7. Riconformazione della IPO del piano Duplicato ai Frame.

Figura 23-8. Impostazione del Materiale base.

Ora si aggiunge la Nebbia [Mist] allo materiale stesso. Il materiale dovrebbe essere Shadeless (senza ombre) e non proiettare ombre per evitare effetti indesiderati. Si dovrebbe avere un valore piccolo di Alpha (Figura 23-8). Un materiale come questo dovrebbe fondamentalmente agire come la nebbia inclusa in Blender, quindi non si dovrebbero avere vantaggi nell'immagine risultante. Lo svantaggio è che il calcolo di 100 strati trasparenti richiede molta CPU, specie se quelli desiderati sono i risultati migliori del Rendering Unificato. Una rapida anteprima: Si può usare il Pulsante Numerico DupOff: nel Pannello Anim Settings per disattivare dei piani e quindi ottenere un'anteprima più veloce, a più bassa qualità di quello che si sta facendo. Per il rendering finale si rimetterà DupOff a 0. Si faccia attenzione al valore di Alfa! Meno piani si useranno più sottile sarà la nebbia, quindi il rendering finale sarà più 'Nebbioso' dell'anteprima!

332

Capitolo 23. Effetti Volumetrici La cosa veramente interessante viene quando si aggiungono le textures. Ne avremo bisogno di almeno due: Una per limitare la Nebbia nella dimensione verticale e tenerla al suolo; La seconda per renderla non uniforme e con qualche variazione della tinta. Come prima texture si aggiunge una texture Blend di tipo "lineare", con una semplicissima banda di colore, andando dal bianco puro, Alpha=1 nella posizione 0.1 al bianco puro, Alpha=0 nella posizione 0.9 (Figura 23-9). Questa si aggiunge solo al canale Alfa e come texture di moltiplicazione (Pulsante Mul) (Figura 23-10). Per rendere consistente la nebbia col movimento della Telecamera, ed i piani che la seguono, bisogna impostarla a Global. Questo sarà vero anche per tutte le altre textures e renderà i piani una texture volumetrica 3D. Se si prevede di fare un'animazione si vedrà una nebbia statica, rispetto alla scena, mentre la camera si muove. Qualsiasi altra impostazione della texture mostrerebbe una Nebbia che sia statica rispetto alla telecamera, quindi sarà sempre la stessa mentre la telecamera si sposta, il che è poco realistico. Figura 23-9. Texture limitata in altezza.

Figura 23-10. Impostazioni del Materiale base per la texture della nebbia [cloud].

Ad ogni modo, se si vuole avere un movimento, un turbinio, bisogna fare delle modifiche alla nebbia in modo da animare la texture, come sarà spiegato in seguito. La texture Blend opera nelle direzioni X e Y, quindi se si vuole che si sposti verticalmente nelle coordinate Globali bisogna rimapparla (Figura 23-10). Si noti che la miscelazione da Alpha=1 ad Alpha=0 avverrà dalla coordinata globale z=0 alla z=1 a meno di ulteriori spostamenti e dimensionamenti aggiunti. Per i nostri scopi le impostazioni standard vanno bene. Se si effettua un rendering, non importa dove sia la telecamera, ed i piani. La nebbia sarà spessa sotto z=0, inesistente sopra z=1 e sfumata nel frattempo. Se si è confusi da questa apparente complessità, si pensi a quello che si otterrebbe con una normale texture Orco (ORiginal COordinate) e dei piani non imparentati. Spostando la telecamera, specialmente nelle animazioni, il risultato diventerà sempre più mediocre man mano che i piani non sono più perpendicolari alla telecamera. Alla fine non si avrà affatto nebbia se la telecamera è parallela ai piani! La seconda texture è quella che da il vero lato della nebbia incorporata. Si aggiunge una texture Nubiforme [Cloud], la si crea con Noise Size=2, Noise Depth=6 e Hard Noise Attivato (Figura 23-11). Vi si aggiunge anche una banda di colore, che va dal bianco puro con Alpha=1 alla Posizione 0, al grigio pallido bluescente con Alpha=0.8 in una posizione prossima a 0.15, ad una tinta rosea con Alpha=0.5 intorno alla posizione 0.2, finendo al bianco puro, Alpha=0 colore nella posizione 0.3. Ovviamente, si dovrebbe andare dal verdognolo al giallo per le nebbie di palude ecc.

333

Figura 23-11. Le impostazioni della texture Nubiforme [Cloud].

Questa texture si usa su Col e su Alpha come una texture Mul, tenendo tutte le altre impostazioni come default. Se si effettua il rendering della scena la base delle colonne risulterà mascherata da una fitta nebbia (Figura 23-12). Da notare che col Rendering Unificato si ottengono dei risultati migliori in questo caso. Figura 23-12. Il rendering finale.

Nota: Se si prevede un'animazione e si vuole che la nebbia sia animata come se fosse mossa dal vento, è su quest'ultima texture che si dovrà lavorare. Si aggiunge una IPO del Materiale della texture, ci si assicura di aver selezionato il canale della texture corretta e si aggiunge qualche IPO alle proprietà OfsX, OfsY e OfsZ.

Capitolo 24. Editor di Sequenze Una funzione di Blender spesso sottovalutata è l'Editor di Sequenze. Questo è un sistema completo di video editing che consente di combinare più canali video ed aggiungervi degli effetti. Anche se ha un limitato numero di operazioni, si possono usare per creare degli arrangiamenti video fortissimi (specialmente in combinazione con la potente animazione di Blender!) E, inoltre, è estensibile tramite il sistema di Plugin molto simile ai plugin della Texture.

Imparare ad usare l'Editor di Sequenze A partire da Blender v2.31 Questa sezione illustra un esempio pratico di editing video esponendo la maggior parte delle funzionalità intrinseche dell'Editor di Sequenze. Verranno messe assieme diverse animazioni fatte con Blender per ottenere degli effetti sbalorditivi. Uno dei fotogrammi dell'animazione risultante è riprodotto in Figura 24-1.

334

Figura 24-1. Il risultato finale.

Prima Animazione: due cubi Iniziamo con qualcosa di semplice e vediamo dove porta. Si inizia con Blender pulito e si rimuove il piano di default. Si divide la finestra 3D e se ne cambia una in vista telecamera con NUM0. Nella vista dall'alto, si aggiunge un cubo e lo si sposta appena fuori il rettangolo tratteggiato che indica la vista telecamera (Figura 24-2). Figura 24-2. Rimozione del cubo dalla vista della telecamera.

Si vuole creare una semplice animazione del cubo in movimento nel campo visivo, ruota una volta e quindi scompare. Si imposta la fine dell'animazione a 61 (si imposta il valore di End: nel Pannello Anim del Contesto della Scena, Pulsantiera del Rendering F10) e si inserisce un Fotogramma Chiave [KeyFrame] LocRot sul frame 1 con IKEY e selezionando LocRot dal menù che appare - questo memorizzerà sia la posizione che la rotazione del cubo in questo fotogramma. Si va al frame 21 (si preme FrecciaSu due volte) e si sposta il cubo più vicino alla telecamera. Si inserisce un altro KeyFrame. Sul Frame 41, si mantiene il cubo nella stessa posizione ma ruotato di 180 gradi e si inserisce un altro KeyFrame. Infine sul frame 61 si sposta il cubo fuori dalla vista, sulla destra e si inserisce l'ultimo KeyFrame. Si avrà necessità di due versioni dell'animazione: una con un materiale pieno ed una a 'Fil-di-Ferro'. Per il materiale, ho usato un semplice bianco a cui ho aggiunto due lampade luminose - una bianca ed una blu col valore di energia di due (Figura 24-3). Per il cubo a 'Fil-di-Ferro' [WireFrame], si imposta il tipo di materiale a 'Wire' e si cambia il colore in verde (Figura 24-4).

335

Capitolo 24. Editor di Sequenze Figura 24-3. Un rendering del cubo pieno...

Figura 24-4. ...ed un rendering del cubo a Fil-di-Ferro.

Si inserisce un nome appropriato per il file (per esempio 'cube_solid.avi'), nel campo Pics (il primo pulsante testo in alto) del Contesto Scena sub-contesto Render Pannello Output (F10) (Figura 24-5). Figura 24-5. Imposizione del nome del file di output dell'animazione.

Si esegue il rendering del cubo pieno bianco. Questo verrà salvato sul disco. Lo si salva come file AVI. Si usi possibilmente AVI Raw per la qualità più alta - la compressione dovrebbe essere l'ultima cosa nel processo di editino - altrimenti, se manca spazio sul disco su usa AVI Jpeg o AVI Codec, il primo è meno compresso e quindi spesso con una qualità maggiore. Si cambia il materiale in Fil-di-Ferro verde, si effettua ancora il rendering dell'animazione e salvando il risultato come cube_wire.avi. Ora sull'hard disk si hanno 'cube_solid.avi' e 'cube_wire.avi'. Questo basta per il nostro primo editing di sequenza.

Prima Sequenza: Cubo a Fil-di-Ferro ritardato La prima sequenza userà solo l'animazioni a 'Fil-di-Ferro' - due volte - per creare un effetto interessante. Si creeranno più strati sul video, dando ad essi una piccola differenza di tempo e mettendoli insieme. Questo simulerà l'effetto 'cometa' che si vede sugli schermi di un radar.

336

Si avvia un file Blender nuovo e si cambia la finestra 3D in una finestra dell'Editor di Sequenze premendo SHIFT-F8 o selezionando l'icona dell'Editor di Sequenze dall'header della finestra il Menù del Tipo di Finestra. Si aggiunge un filmato alla finestra premendo SHIFT-A e selezionando Movie (Figura 24-6) o utilizzando la voce di Menù Add>>Movie . Dalla Finestra per la Selezione di Files che appare, si seleziona l'animazione a 'Fil-di-Ferro' del cubo creata precedentemente. Figura 24-6. L'inserimento di una striscia video

Dopo aver selezionato e caricato il file del filmato, si vedrà una striscia blu che lo rappresenta. Dopo aver aggiunto una striscia, si andrà automaticamente in modalità traslazione [grab] e la striscia segue il mouse. Sulla barra appare sia il fotogramma iniziale che quello finale. Si guardi meglio lo schermo dell'Editor di Sequenze. Orizzontalmente si vede il valore del tempo. Verticalmente, si vedono i 'canali' video. Ciascun canale può contenere un'immagine, un filmato o un effetto. Stratificando i diversi canali uno sull'altro, ed applicando gli effetti, si possono miscelare assieme diverse sorgenti. Se si seleziona la striscia di un video, il suo tipo, lunghezza, ed il nome del file, saranno stampati in fondo alla finestra. Si sposti la striscia video e la si faccia partire al frame 1. La si ponga sul canale 1, quello sulla fila in basso e si preme LMB per completare (Figura 24-7). Figura 24-7. Disposizione della striscia.

Fotogrammi iniziali e finali: Si possono aggiungere diapositive iniziali e finali selezionando i triangoli all'inizio ed alla fine della striscia (questi appariranno viola) e trascinandoli via. Allo stesso modo, si può definire la 'lunghezza' in frames di una diapositiva.

Si duplica la striscia del filmato con SHIFT-D, si pone il duplicato nel canale 2 e lo si sposta di un frame sulla destra. Ora si hanno due strati di video uno sull'altro, ma solo uno sarà mostrato. Per miscelare i due strati si dovrà applicare loro un effetto.

337

Capitolo 24. Editor di Sequenze Si selezionano entrambi le strisce e si preme SHIFT-A. Si seleziona ADD dal menù che appare (Figura 24-8). Altrimenti si usa Add>>Effect>>Add . Figura 24-8. Miscelazione delle due strisce video.

Per vedere cos'è avvenuto si divide la finestra dell'editor e si seleziona il pulsante nell'header (Figura 24-9). Questo attiverà l'anteprima automatica (Figura 24-10). Se si seleziona un frame nella finestra dell'editor di sequenze con le strisce, automaticamente sarà aggiornata l'anteprima (con tutti gli effetti applicati!). Figura 24-9. Il pulsante per l'anteprima dell'Editor di Sequenze.

Se si preme ALT-A nella finestra dell'anteprima, Blender avvierà l'animazione. (Il rendering degli effetti la prima volta richiede molto tempo di elaborazione, quindi non ci si aspetti un'anteprima in tempo reale!). Figura 24-10. Inserimento della finestra di anteprima.

Anteprima senza finestra: Se non si vuol suddividere la finestra del rendering, si va nella Pulsantiera del Rendering (F10) e si seleziona DispView in basso a sinistra.

Ora è il momento di aggiungere più cagnara a questa animazione! Si duplica un altro strato del film e lo si pone nel canale 4. Lo si aggiunge ad un effetto ADD esistente nel canale video 3 con un nuovo effetto ADD. Si ripete ciò una volta e si avranno quattro cubi a 'Fil-di-Ferro' nella finestra di anteprima (Figura 24-11).

338

Figura 24-11. La sequenza con 4 strisce del cubo a Fil-di-Ferro messe assieme.

Tutti i cubi hanno la stessa luminosità, ma io voglio ottenere come una attenuazione della luminosità. Questo si prepara facilmente aprendo una finestra IPO da qualche parte (F6) e selezionando l'icona della sequenza nel suo Menù del Tipo di IPO (Figura 2412). Figura 24-12. Il pulsante della IPO della sequenza.

Si seleziona la prima striscia aggiunta (quella nel canale 3), si tiene premuto CTRL e click con LMB nella Finestra IPO su un valore di 1. Questo imposta la luminosità di quest'operazione add al massimo. Si ripete questo per altre due strisce, ma, per ciascuno di essi, si diminuisce un po' il valore, diciamo circa 0.6 e 0.3 (Figura 24-13). Figura 24-13. Definizione della luminosità di uno strato con una IPO.

A seconda dei valori di ADD che si sono appena impostati, il risultato dovrebbe assomigliare a quello mostrato in Figura 24-14.

339

Capitolo 24. Editor di Sequenze Figura 24-14. Quattro cubi a 'Fil-di-Ferro' combinati con gli effetti di dissolvenza [fading].

Ora si hanno già 7 strisce e si deve solo avviare la sequenza! Si può immaginare come lo schermo diventi ben presto sovraffollato! Per rendere il progetto più gestibile, si selezionano tutte le strisce (anche qui funzionano AKEY e BKEY), si preme MKEY, e quindi ENTER o click sulla voce Make Meta del menù che appare. Altrimenti si può usare la voce di Menù Strip>>Make Meta Strip. Le strisce saranno combinate in una meta-striscia, e possono essere copiate e spostate tutte assieme. Con la meta-striscia selezionata, si preme NKEY e si immette un nome, per esempio 'Wire/Delay', per ricordare meglio cosa sia (Figura 24-15). Figura 24-15. Una META striscia con nome.

Seconda Animazione: Un cubo pieno in ritardo Ora è il momento di usare delle maschere. Si vogliono creare due aree in cui l'animazione giri con la differenza di un frame di tempo. Questo crea un interessantissimo effetto simile alla visione attraverso un vetro. Si comincia creando un'immagine bianco e nero simile a quella in Figura 24-16. Si può usare un programma di disegno, o lo si può fare in Blender. Il modo più semplice per farlo in Blender consiste nel creare un materiale bianco con un valore di emissione [emit] a 1 o un materiale bianco senza ombre [shadeless] su qualche curva Circolare smussata [beveled]. In questo modo, non si deve sistemare alcuna lampada. Si salvi l'immagine come mask.tga.

340

Figura 24-16. La maschera dell'animazione.

Ci si sposti nell'editor di sequenza e si metta da una parte la meta-striscia creata prima (la riposizioneremo in seguito). Si aggiunge l'animazione del cubo pieno (SHIFT-A>>Movie). Quindi, si aggiunge l'immagine della maschera. Per default, nell'editor della sequenza, un'immagine ferma avrà una lunghezza di 50 frames. La si cambi in modo da farla combaciare con la lunghezza dell'animazione del cubo con RMB e GKEY per trascinare le frecce ai lati della striscia dell'immagine col tasto destro del mouse. Ora si selezionino entrambe le strisce (tenendo premuto SHIFT), si preme SHIFT-A e aggiungendo un effetto SUB (sottrazione) (Figura 24-17). Figura 24-17. Sottrazione della maschera dal video.

Ora nella finestra di anteprima si potrà vedere l'effetto; le aree dove la maschera è bianca sono state rimosse dal disegno (Figura 24-18). Figura 24-18. La maschera sottratta.

341

Capitolo 24. Editor di Sequenze Questo effetto ora è pronto; si selezionano tutte e tre le strisce e le si converte in una META striscia premendo MKEY. Ora si ripetono i passaggi precedenti, però questa volta non si userà l'effetto SUB ma l'effetto MUL (moltiplicazione) (Figura 2419). Si vedrà l'immagine originale dove la maschera è bianca. Ancora una volta si trasformano le tre strisce di questo effetto in una meta-striscia. Figura 24-19. La maschera moltiplicata.

Per il passo finale ho combinato assieme i due effetti. Si sposta una delle meta strisce sopra l'altra e le si da una differenza di tempo di un frame. Si selezionano entrambe le strisce e si aggiunge un effetto ADD (Figura 24-20). Figura 24-20. Inserimento dei due effetti.

Nella finestra di anteprima, si può ora vedere il risultato della combinazione dell'animazione e della maschera (Figura 24-21). Quando pronti, si selezionano le due meta-strisce e l'effetto ADD e si converte il tutto in una nuova meta-striscia. (Esatto! Si possono creare delle meta-strisce dentro meta-strisce!) Entrare in una Meta Striscia: Per editare il contenuto di una meta-striscia, la si seleziona e si preme TAB. La meta striscia 'esploderà' mostrando le sue componenti e lo sfondo diventerà verde giallognolo ad indicare che si sta lavorando all'interno di una meta striscia. Si prema ancora TAB per tornare al normale editing.

342

Figura 24-21. Gli strati traslati due volte.

Terza Animazione: un tunnel Si vuole un terzo 'effetto' per arricchire ulteriormente l'animazione, un 'tunnel' 3D da usare come effetto di sottofondo. Questo è molto semplice da fare. Primo, si salvi il lavoro attuale - se ne avrà bisogno in seguito! Si inizia una nuova scena (CTRL-X) e si cancella il piano di default. Si va in vista frontale (NUM1). Si aggiunge un cerchio di 20 vertici a circa 10 unità sotto la linea di z=0 (la linea rosa sul proprio schermo) (Figura 24-22). Figura 24-22. Inserimento di un cerchio di 20 vertici.

Stando in Modo Edit, ci si sposta nella vista laterale (NUM3), si accosta il cursore nell'origine ponendolo decisamente al punto x,y,z=0 e si preme SHIFT-S. Si seleziona Curs>>Grid . Si vuol trasformare il cerchio in un tubo circolare, o toro. Per farlo, userò la funzione Spin. Si va nel Contesto di Editing (F9) e si immette il valore 180 nel Pulsante Numerico Degr e '10' nel Pulsante Numerico Steps nel Pannello Mesh Tools. Premendo Spin i vertici selezionati ruoteranno intorno al cursore di 180 gradi ed in 10 passi (Figura 24-23). Figura 24-23. Ribaltamento del cerchio attorno al cursore.

343

Capitolo 24. Editor di Sequenze Si esce dal Modo Edit (TAB). Con le impostazioni di default, Blender ruoterà e scalerà attorno al centro dell'oggetto, mostrato come un piccolo punto. Tale punto è giallo quando l'oggetto è deselezionato e rosa quando è selezionato. Col cursore ancora nell'origine, si preme il pulsante Center Cursor nella pulsantiera di Edit per spostare il centro dell'oggetto all'attuale posizione del cursore. Si preme RKEY e si ruota il tubo di 180 gradi attorno al cursore. Ora è il momento di muovere la telecamera nel tunnel. Si apra un'altra finestra 3D e la porti in vista telecamera (NUM0). Si posizioni la telecamera nella finestra con la vista laterale in modo da combaciare con la Figura 24-24, la vista-telecamera dovrebbe coincidere con la Figura 24-25. I bordi scomparsi: Se non appaiono tutti i bordi del tunnel, si può forzare Blender a disegnarli selezionando il Pulsante Commutatore All Edges nel Pannello Mesh Tools 1 del Contesto di Editing (F9).

Figura 24-24. La telecamera dentro il tunnel.

Figura 24-25. La vista telecamera dell'interno del tunnel.

Per evitare errori, si effettua questo rendering come un'animazione ripetitiva. Se ne posso quindi aggiungere tante copie quante se ne voglio nella compilation video finale. Ci sono due cose da tenere in mente nel creare un'animazione ripetuta. Primo, ci si assicuri che non ci siano 'salti' nell'animazione quando ricomincia. Per questo, si deve porre cura nella creazione dei KeyFrames e nell'impostazione della lunghezza dell'animazione. Si creano due KeyFrames: uno con la rotazione attuale del tubo sul frame 1, ed un altro ruotato di 90 gradi (si prema CTRL mentre si ruota!) sul frame 51. Nell'animazione, il frame 51 è ora uguale al frame 1, quando, quindi, si effettua il rendering si dovrà omettere il frame 51 ed effettuare il rendering dall' 1 al 50. Si noti che la rotazione di 90 gradi non è scelta a caso, ma perché il tunnel è periodico con un periodo di 18, quindi bisogna ruotarlo do un multiplo di 18, e 90 lo è, per garantire che il frame 51 sia esattamente lo stesso del frame 1. Secondo, per avere un moto lineare bisogna rimuovere le variazioni della rotazione. Questo lo si può vedere nella finestra IPO del tubo dopo l'inserimento dei KeyFrames della rotazione. La morbidezza della IPO comincia e finisce con una funzione coseno. Si vuole che sia dritta. Per farlo si seleziona la curva di rotazione, si entra in Modo Edit (TAB), si selezionano tutti i vertici (AKEY) e si preme VKEY ('Vettore') per trasformare la curva in una retta (Figura 24-26).

344

Figura 24-26. La IPO di rotazione del tunnel senza variazioni d'inizio e di fine.

Per creare un effetto più spettacolare, si seleziona la telecamera stando nella Vista Telecamera (Figura 24-27). La telecamera stessa viene mostrata come un riquadro non punteggiato. Si preme RKEY e la si ruota un po'. Se ora si avvia l'animazione la si vedrà senza cuciture. Figura 24-27. La rotazione della telecamera per un effetto più spettacolare.

Come tocco finale, si aggiunge al tubo un materiale a 'Fil-di-Ferro' blu e si aggiunge una piccola lampada dove è posta la telecamera. Tirando il valore Dist della lampada (distanza di attenuazione) si può fare in modo che la fine del tubo scompaia nel buio senza dover lavorare con la foschia (Figura 24-28). Una volta soddisfatti del risultato, si effettua il rendering dell'animazione e la si salva come 'tunnel.avi'. Figura 24-28. Un tunnel scavato.

345

Capitolo 24. Editor di Sequenze

Seconda Sequenza: Utilizzo del tunnel come sfondo Si ricarichi il file Blender della compilation video. Il tunnel creato nell'ultimo passo verrà usato come fondale per l'intera animazione. Per renderlo più interessante si modifica un effetto ADD per cambiare il tunnel in un fondale pulsante. Si prepara un disegno completamente nero e lo si chiami 'black.tga' (si provi a premere F12 in un file Blender vuoto. Lo si salvi con F3, ma ci si assicuri di aver selezionato TGA come formato del file nella pulsantiera del Rendering). Si aggiunga sia black.tga che l'animazione del tunnel combinandoli con l'effetto ADD (Figura 24-29). Figura 24-29. Impostazione dell'effetto per il fondale.

Con l'effetto ADD selezionato, si apra una finestra IPO e si selezioni il pulsante Sequence Editor nel suo header. Dai frame 1-50, si disegni una linea irregolare usando CTRL e click destro. Ci si assicuri che i valori stiano tra 0 e 1 (Figura 24-30). Figura 24-30. Inserimento di casualità con una IPO irregolare.

Quando pronti, si dia uno sguardo al risultato nell'anteprima e si trasformi l'animazioni in una meta striscia. Salvare il lavoro!

Quarta Animazione: un logo saltellante Andiamo a creare un po' di casualità e del caos! Si prenda il logo (basta aggiungere un oggetto testo) e facciamolo saltellare sullo schermo. Ancora, il modo più facile per fare questo consiste nell'aggiungere i vertici direttamente nella finestra IPO (si seleziona prima un canale LocX, LocY o LocZ), ma questa volta si dovrà essere un po' più accurati coi valori di minimo e di massimo per ciascun canale. Non ci si preoccupi del fatto che appaia troppo - nel passo successivo sarà comunque difficilmente riconoscibile (Figura 24-31).

346

Figura 24-31. Il logo saltellante.

Si salvi l'animazione come 'jumpylogo.avi'.

Quinta Animazione: barre di particelle L'ultimo effetto userà una maschera animata. Combinando questo col logo del passo precedente, otterrò un effetto strisciante che introduce il logo all'animazione. Questa maschera è fatta usando un sistema di particelle. Per impostarne uno, si cambia in vista laterale, si aggiunge un piano alla scena e, mentre questo è selezionato, si va nella Contesto Oggetto (F7) nel Tab Effects del Pannello Constraints. Si seleziona New effect e quindi si cambia l'effetto di default build in Particles . Si cambiano le impostazioni del sistema come indicato in Figura 24-32. Figura 24-32. Le impostazioni del sistema di particelle.

Si preme TAB per entrare in Modo Edit, si selezionano tutti i vertici e si suddivide il piano due volte premendo WKEY e selezionando Subdivide quando richiesto. Quindi ci si sposta in una vista frontale e si aggiunga un altro piano. Lo si scali lungo l'asse X per trasformarlo in un rettangolo (si preme SKEY e si sposta il mouse orizzontalmente. Quindi si preme XKEY o MMB per ridimensionarlo solo lungo l'asse indicato). Si dia al rettangolo un materiale bianco con un valore di emissione [emit] di uno. Ora bisogna cambiare le particelle in rettangoli usando la funzione dupliverts. Si seleziona il rettangolo, quindi l'emittente delle particelle e li si imparenta. Si seleziona solo il piano e nel Contesto Oggetto e nel Pannello Anim Settings, si seleziona il Pulsante DupliVerts. Ciascuna particella viene sostituita da un rettangolo (Figura 24-33).

347

Capitolo 24. Editor di Sequenze Figura 24-33. I rettangoli Duplicati ai Vertici (le particelle)

Ora aggiungo un po' di nebbia come taglio netto per dare a ciascun rettangolo una diversa tonalità di grigio. Si va nella pulsantiera del Mondo [World] con F5 per spostarsi nel Contesto Shading, quindi click sul pulsante e si seleziona Add New nel Pannello World. Ora appaiono le impostazioni del mondo. Per default, il cielo sarà visto come gradazione tra il blu ed il nero. Si cambi il colore dell'orizzonte (HoR, HoG, HoB) in nero puro (Figura 24-34). Figura 24-34. L'impostazione della nebbia.

Per attivare il rendering della nebbia, si attiva il pulsante Mist al centro dello schermo. Utilizzando la nebbia, bisognerà indicare la distanza dalla telecamera alla quale si vedrà. Si seleziona la telecamera, si va nella Contesto di Editing e si abilita ShowMist nel Pannello Camera. Ora si va in una vista dall'alto e si ritorna nel Contesto di Shading (F5) e nella Pulsantiera del Mondo [World]. Si spostano i valori dei parametri Sta: e Di: (Start e Distance rispettivamente) in modo che la foschia copra tutta l'ampiezza del flusso di particelle (Figura 24-34 e Figura 24-35). Figura 24-35. Impostazione dei parametri della nebbia.

348

Si imposti lunghezza dell'animazione a 100 frames e se ne effettui il rendering su disco. Il file lo si chiami 'particles.avi' (Figura 24-36). Figura 24-36. Il rendering delle particelle rettangolari.

Terza Sequenza: Combinazione del logo e delle barre di particelle Ormai conoscete il trucco: Si ricarichi il file del progetto della compilation, si vada nella finestra dell'Editor della Sequenza e si aggiunga al progetto sia "particles.avi" sia "logo.avi". Si combinino assieme con un effetto MUL. Dato che l'animazione del logo è di 50 frames e quella delle particelle è 100 frames, bisognerà duplicare una volta l'animazione del logo ed applicarvi un secondo effetto MUL (Figura 24-37 and Figura 24-37). Figura 24-37. Il doppio uso dell'animazione del logo.

Si combinano queste tre strisce in una meta-striscia. Se si ha coraggio si possono fare un paio di copie dando loro una piccola differenza di tempo, proprio come il cubo a 'Fil-di-Ferro'.

349

Capitolo 24. Editor di Sequenze Figura 24-38. L'animazione delle particelle combinata con l'animazione del logo.

Sesta Animazione: ingrandimento del logo Se si decide di mettere assieme tutte le animazioni appena completate si otterrà una compilation video veramente caotica. Ma se deve essere la presentazione della propria azienda, allora è forse meglio presentare il logo in un modo più riconoscibile. La parte finale della compilation sarà quindi concentrata sulla produzione di un'animazione del logo che si ingrandisce molto lentamente. Lo si prepari e lo si salvi come 'zoomlogo.avi'. Si prepari anche un disegno bianco e lo si salvi come 'white.tga'. Ora useremo l'effetto CROSS (incrocio) per avere una rapida transizione tra il nero e il bianco, quindi fra il bianco e l'animazione del logo. Infine, una transizione al nero concluderà la compilation. Si parte ponendo black.tga nel canale 1 e white.tga nel canale 2. Si rendano entrambi lunghi 20 frames. Si selezionino entrambi e vi si applichi un effetto di incrocio [cross]. L'incrocio cambierà gradualmente l'immagine risultante dallo strato 1 allo strato 2. In questo caso, il risultato sarà una transizione dal nero al bianco (Figura 24-39). Figura 24-39. La transizione dal nero al bianco.

Quindi si aggiunge un duplicato di white.tga allo strato 1 e lo si pone direttamente a destra di black.tga. Lo si renda lungo circa la metà dell'originale. Si ponga l'animazione del logo ingrandito nello strato 2 e si aggiunga un effetto di incrocio tra i due. A questo punto, l'animazione appare come un flash bianco seguito dall'animazione del logo ingrandito (Figura 24-40).

350

Figura 24-40. La transizione dal bianco al video.

L'ultima cosa da fare è quella di assicurarsi che l'animazione abbia una bella transizione finale verso il nero. Si aggiunge un duplicato di black.tga e vi si applica un altro effetto incrocio. Quando pronti, si trasforma tutto in una meta-striscia (Figura 24-41). Figura 24-41. La transizione da video a nero.

Assemblaggio di tutto quanto creato finora Siamo alla fine del lavoro! È ora di aggiungere alla compilation quello che abbiamo appena creato e vedere come funziona. La cosa più importante da considerare mentre si crea la compilation finale, è che quando si effettua il rendering dell'animazione, l'editor di sequenza 'vede' solo lo strato superiore del video. Questo vuol dire che ci si deve assicurare o che ci sia una striscia pronta da utilizzarsi, oppure che ci sia un effetto come l'ADD che combini le diverse strisce evidenziate. Il fondale della compilation sarà il tunnel oscillante. Si aggiungano alcuni duplicati della meta striscia del tunnel e la si ponga nel canale uno. Quindi si mettano assieme in una meta striscia. Non ci si preoccupi ancora della esatta durata dell'animazione; si possono sempre duplicare ulteriori strisce del tunnel. Sopra questo, si ponga il cubo ritardato a 'Fil-di-Ferro' nel canale 2. Si aggiunga il canale 1 al canale 2 e si metta l'effetto add nel canale 3 (Figura 24-42).

351

Capitolo 24. Editor di Sequenze Figura 24-42. Combinazione del tunnel e del cubo a Fil-di-Ferro.

Ora si può aggiungere l'animazione del cubo pieno. Lo si pone nel canale 4, sovrapponendo l'animazione a Fil-di-Ferro nel canale 2. Vi si aggiunge l'animazione del tunnel nello strato uno. Qui le cose cominciano a farsi più difficili; se si decide di lasciarlo così com'è, l'animazione nel canale 5 (il cubo pieno assieme al tubo) si sovrapporrà all'animazione nel canale 2 (il cubo a Fil-diFerro) ed il cubo a Fil-di-Ferro diverrà invisibile all'apparire del cubo solido. Per risolvere la questione, si aggiunge il canale 3 al canale 5 (Figura 24-43). Figura 24-43. Combinazione del tunnel, del cubo a Fil-di-Ferro e di quello pieno.

Si avrà spesso necessità di fare ulteriori operazioni per rimediare alla perdita di parti video. Questo diverrà più evidente dopo il rendering della sequenza finale. Si sposti leggermente a sinistra la finestra dell'Editor della Sequenza e si aggiunga la meta striscia con l'animazione delle particelle/logo. Si piazzi tale striscia nello strato 2 e si metta un effetto add nello strato 3. Per qualche variazione, si duplichi l'animazione a Fil-di-Ferro e la si combini con l'effetto add nello strato 3 (Figura 24-44). Figura 24-44. Inserimento dell'animazione particelle/logo.

352

Ora si vada alla fine della striscia dell'animazione del tunnel. Ci dovrebbe essere abbastanza spazio da mettere l'animazione dell'ingrandimento del logo alla fine lasciando prima un po' di spazio libero (Figura 24-45). Se no, si seleziona la striscia del tunnel, si preme TAB e si aggiunge un duplicato dell'animazione alla fine. Si Preme TAB ancora per uscire dall'edit della meta striscia. Figura 24-45. Inserimento dell'animazione dell'ingrandimento del logo.

Avendo dello spazio libero, si potrà aggiungerà una copia dell'animazione del cubo pieno. Per far sì che appaia correttamente, bisognerà dargli due canali add: uno per combinarlo con l'animazione delle particelle del logo, ed una per combinarla con l'animazione dell'ingrandimento del logo (Figura 24-46). Figura 24-46. Inserimento di un ultimo dettaglio.

La Figura 24-47 mostra la sequenza completa. Figura 24-47. La sequenza completa.

353

Capitolo 24. Editor di Sequenze

Conclusione Ora si è pronti per il rendering finale della composizione video! Per dire a Blender di usare le informazioni dell'Editor della Sequenza mentre effettua il rendering, si seleziona il pulsante Do Sequence dalla pulsantiera del Rendering. Dopo di che, si effettua il rendering e si salva l'animazione come in precedenza (assicurandosi di non sovrascrivere alcun AVI della sequenza!).

Editor delle Sequenze di Suono A partire da Blender v2.31 Fin da Blender 2.28 c'è un (ancora limitato) strumento per la messa in sequenza dell'Audio. Si possono aggiungere file WAV col menù SHIFT-A e selezionando la voce Sound. Verrà creata una striscia audio verde. Attualmente non sono presenti funzioni da mixer ad 'alto livello'. Si possono avere quante strisce Audio si vogliono ed il risultato sarà la miscelazione di tutte loro. Si può dare a ciascuna striscia un nome ed una amplificazione [Gain] (in dB) col menù NKEY. Si può ammutolire una striscia o spostarla nel tempo [Pan]; -1 è tutto a sinistra, +1 è tutto a destra. Come fatto per gli effetti delle strisce, nella Finestra IPO si può aggiungere una IPO 'Volume' alla striscia. Qui il canale Fac è il volume. I fotogrammi [frames] IPO 1-100 corrispondono all'intera lunghezza del campione, 1.0 è a tutto volume, 0.0 è totalmente muto. Blender non può ancora miscelare il suono nel prodotto finale dell'Editor di Sequenze. Il risultato dell'Editor di Sequenze è quindi un file video, se il pulsante ANIM nel Pannello Anim del Contesto Scene, Sub-contesto Render è usato come descritto in precedenza, o un file WAV separato, contenente tutta la sequenza audio, nella stessa directory del file video e con lo stesso nome ma estensione .WAV. Questo file audio viene creato tramite il pulsante MIXDOWN nel pulsante Sequencer del Contesto Scene, Sub-contesto Sound. In seguito si possono mixare Video ed Audio con un programma esterno. Il vantaggio di usare l'Editor di Sequenze di Blender consiste nella facile sincronizzazione raggiungibile dalla sequenza di fotogrammi e del suono nella stessa applicazione.

Plugin dell'Editor di Sequenze A partire da Blender v2.31 Come detto in precedenza Blender è estensibile tramite il sistema dei plugin, e si possono trovare due tipi di plugin: di Texture e di Sequenze. I plugin di sequenze funzionano sulle strisce in modo simile alle operazioni convenzionali ADD, CROSS ecc. Si deve avere almeno una striscia selezionata e si preme SHIFT-A>>Plugin o la voce di Menù Add>>Effect>>Plugin . Con questo si apre una Finestra per la Selezione di File in cui si seleziona il plugin desiderato. Le funzionalità del plugin variano tanto che non è possibile descriverle qui. Diversamente dai Plugin Texture i Plugin di Sequenza non hanno Pulsanti in alcuna Pulsantiera, ma ai parametri vi si accede solitamente tramite NKEY.

354

VI. Estendere Blender Diversamente da molti altri programmi, con cui si può familiarizzare, Blender non è monolitico e statico. Le sue funzionalità si possono estendere anche senza dover modificare il codice sorgente e ricompilarlo. Ci sono due tipi di estensioni: Script in Python e Plugin Binari, il primo è il preferito ed il più usato. Questa parte le descrive entrambe.

Capitolo 25. Programmazione di Script Python A partire da Blender v2.31 Blender ha una caratteristica molto potente ma spesso trascurata. Dispone di un interprete Python interno pienamente equipaggiato. Questo permette agli utenti di aggiungere funzionalità scrivendo script in Python. Python è un linguaggio di programmazione interpretato, interattivo e orientato agli oggetti. Comprende moduli, eccezioni, gestione dinamica dei tipi, tipi dinamici di alto livello e classi. Python combina una notevole potenza con una sintassi molto chiara. È stato espressamente progettato per essere usato come linguaggio di estensione per applicazioni che richiedono un'interfaccia programmabile, e per questo Blender ne fa uso. Dei due modi di estendere Blender, l'altra usa plugin binari, Gli script Python sono più potenti, versatili e più facili da capire oltre che robusti. È generalmente preferibile usare gli script Python anziché scrivere un plugin. Attualmente la programmazione Python ha avuto delle funzionalità limitate fino a Blender 2.25, l'ultimo rilascio della NaN. Quando Blender è diventato Open Source molti dei nuovi sviluppatori si sono radunati attorno alla Fondazione decidendo di lavorarci e, con la modifica alla UI (Interfaccia Utente), l'API di Python è probabilmente la sola parte di Blender che ha usufruito dello sviluppo maggiore. È stato riorganizzato tutto l'esistente e vi sono stati aggiunti molti moduli nuovi. Tale evoluzione continua e ci si deve aspettare una migliore integrazione nelle prossime versioni di Blender. Tra i vari tipi di finestre, Blender ha una Finestra Testo accessibile tramite il pulsante Finestra o tramite SHIFT-F11.

del Menù dei Tipi di

La finestra Testo appena aperta è grigia e vuota, con una barra degli strumenti molto semplice (Figura 25-1). Da sinistra a destra ci sono il pulsante standard di selezione del Tipo di Finestra ed il menù Finestra. Il pulsante per ingrandirla a tutto schermo, seguiti da un pulsante che mostra/nasconde i numeri di riga per il testo e il normale pulsante Menù. Figura 25-1. La barra degli strumenti del testo.

Il Pulsante Menù ( ) permette di selezionare quale buffer di testo visualizzare, oltre a permettere di creare un nuovo buffer o caricare un file di testo. Se si sceglie di caricare un file la Finestra Testo diventa temporaneamente una Finestra per la Selezione di File, con le solite funzioni. Una volta che un buffer di testo è in una finestra testo, questa si comporta come un editor molto semplice. Scrivendo sulla tastiera si genera un testo nel buffer. Come al solito premendo LMB trascinando e rilasciando LMB si seleziona il testo. Sono disponibili i seguenti comandi da tastiera: •

ALT-C o CTRL-C - Copia il testo selezionato in un raccoglitore di testo;



ALT-X o CTRL-X - Taglia il testo selezionato in un raccoglitore di testo;



ALT-V o CTRL-V - Incolla il testo dal raccoglitore alla posizione del cursore nella Finestra di Testo;



ALT-S - Salva il testo come un file di testo, appare una Finestra di Selezione File;



ALT-O - Carica un testo, appare una Finestra di Selezione File;



ALT-F - Fa comparire la toolbox per la Ricerca [Find];



SHIFT-ALT-F o RMB - Fa comparire il menu File per la Finestra Testo;



ALT-J - Fa comparire un Pulsante Numerico in cui specificare il numero di linea a cui far saltare il cursore;



ALT-P - Esegue il testo come script Python;



ALT-U - Undo (Annulla);



ALT-R - Redo (Ripeti);



CTRL-R - Riapre (ricarica) il buffer corrente;



ALT-M - Converte il contenuto della finestra di testo in un testo 3D (massimo 100 caratteri);

Il raccoglitore di taglia/copia/incolla di Blender è separato dal raccoglitore [clipboard] di Window. Quindi normalmente non si può tagliare/copiare/incollare da/verso Blender. Per accedere alla clipboard di Windows si usa SHIFT-CTRL-C SHIFTCTRL-V Per cancellare un buffer di testo semplicemente premere il pulsante 'X' vicino al nome del buffer, proprio come si fa per i materiali ecc. La combinazione di tasti più importante è ALT-P che fa interpretare il contenuto del buffer dall'interprete Python incluso in Blender. La prossima sezione presenterà un esempio di script in Python. Prima di proseguire occorre notare che Blender è fornito solo del semplice interprete Python incorporato, e di alcuni moduli specifici di Blender, quelli descritti in sezione Riferimento [Reference] di Python. Altri usi della finestra Testo: La finestra testo è comoda anche quando si vuol condividere i propri file .blend con la comunità o con amici. Una finestra Testo può essere usata per scriverci un README (Leggimi) che spieghi il contenuto del file Blender. Molto più pratico che avere un'applicazione separata aperta. Ci si assicuri di averla visibile durante il salvataggio! Se si condivide il file con la comunità e lo si vuol condividere con qualche licenza si può scrivere la licenza in una finestra testo.

Per accedere ai moduli standard di Python occorre un'installazione completa e funzionante di Python. La si può scaricare da http://www.python.org. Accertarsi di verificare su http://www.blender.org qual è l'esatta versione di Python incorporata in Blender per evitare problemi di compatibilità. Blender deve anche sapere dove è stato completamente installato Python. Questo si ottiene definendo una variabile d'ambiente chiamata PYTHONPATH. Impostazione di PYTHONPATH su Win95,98,Me. Dopo aver installato Python in, ad esempio, C:\PYTHON22 occorre aprire il file C:\AUTOEXEC.BAT con un editor di testo ed aggiungere una linea: SET PYTHONPATH=C:\PYTHON22;C:\PYTHON22\DLLS;C:\PYTHON22\LIB;C:\PYTHON22\LIB\LIB-TK

e riavviare il sistema. Impostazione di PYTHONPATH su WinNT,2000,XP. Dopo aver installato Python in, ad esempio, C:\PYTHON22 andare sull'icona "Risorse del computer" ["My Computer"] sul desktop, RMB e selezionare Proprietà. Selezionare il tab Avanzate e cliccare sul pulsante Variabili d'Ambiente. Sotto alla casella Variabili di sistema (la seconda casella), cliccare su Nuovo. Se non si è un amministratore si potrebbe non avere il permesso di farlo. In quel caso cliccare su Nuovo nella casella in alto. Ora, nella casella Nome variabile, inserire PYTHONPATH, nella casella Valore variabile inserire: C:\PYTHON22;C:\PYTHON22\DLLS;C:\PYTHON22\LIB;C:\PYTHON22\LIB\LIB-TK

Cliccare ripetutamente su OK per uscire da tutte le finestre. Può essere necessario riavviare il sistema, dipende dal Sistema Operativo. Impostazione di PYTHONPATH su Linux e altri UNIX. Normalmente Python dovrebbe essere già installato. Se no, occorre installarlo. Occorre scoprire dove si trova. È semplice, basta avviare una console di Python aprendo una shell e scrivendo

python. Inserire i seguenti comandi:

>>> import sys >>> print sys.path

e annotare l'output, dovrebbe assomigliare a ['', '/usr/local/lib/python2.2', '/usr/local/lib/python2.2 /plat-linux2', '/usr/local/lib/python2.0/lib-tk', '/usr/lo cal/lib/python2.0/lib-dynload', '/usr/local/lib/python2.0/ site-packages']

Aggiungere questa al proprio file rc preferito come impostazione di variabile d'ambiente. Ad esempio, aggiungere nel proprio . bashrc la linea export PYTHONPATH=/usr/local/lib/python2.2:/usr/local/lib/python2.2/platlinux2:/usr/local/lib/python2.2/lib-tk:/usr/local/lib/python2.2/lib-dynload:/usr/local/lib/python2.0/site-packages

tutto su una sola riga. Aprire una nuova shell di login, oppure effettuare il logoff e di nuovo il login.

Un esempio di Python in funzione A partire da Blender v2.31 Ora che abbiamo visto che Blender si può estendere con Python e che abbiamo le basi per maneggiare gli script e per eseguirli, e prima di arrovellarsi il cervello con la guida di riferimento sull'API Python contenuta nella prossima lezione, diamo un'occhiata a un veloce esempio funzionante. Presenteremo un piccolo script per generare poligoni. Questo duplica in qualche modo l'opzione della toolbox SPAZIOAdd>>Mesh>>Circle, ma creerà poligoni 'pieni', non solo il contorno. Per rendere lo script semplice ma completo conterrà un'Interfaccia Utente Grafica (GUI) interamente scritta con le API di Blender.

Intestazioni, importazione di moduli e variabili globali. Le prime 32 linee di codice sono riportate nella Esempio 25-1. Esempio 25-1. Intestazione dello script. 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015

###################################################### # # Script di esempio per il manuale di Blender # ###################################################S68 # Questo script genera poligoni. E' abbastanza inutile # perché si possono creare con ADD->Mesh->Circle # ma e' un bell'esempio di script completo, e i # poligoni sono 'pieni' ###################################################### ###################################################### # Importazione dei moduli ######################################################

016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032

import Blender from Blender import NMesh from Blender.BGL import * from Blender.Draw import * import math from math import * # Parametri dei poligoni T_NumberOfSides = Create(3) T_Radius = Create(1.0) # Eventi EVENT_NOEVENT = 1 EVENT_DRAW = 2 EVENT_EXIT = 3

Dopo i necessari commenti con la descrizione di cosa fa lo script (linee 016-022) ci sono le importazioni dei moduli Python. Blender è il modulo principale dell'API Python di Blender. NMesh è il modulo che fornisce l'accesso alle mesh di Blender, mentre BGL e Draw danno accesso rispettivamente alle costanti e funzioni di OpenGL e all'interfaccia a finestre di Blender. Il modulo math è il modulo matematico di Python, ma dato che sia il modulo 'math' che il modulo 'os' sono incorporati in Blender

non è necessario una completa installazione di Python per questo! I poligoni sono definiti dal numero di lati che hanno e dal loro raggio. Questi parametri hanno valori che devono essere definiti dall'utente tramite la GUI per questo le linee (025-026) creano due oggetti 'pulsante generico', con i loro valori iniziali di default. Infine, gli oggetti della GUI lavorano con eventi e generano eventi. Gli identificatori di evento sono interi definiti dal programmatore. Normalmente è buona abitudine definire nomi facili da ricordare, come è stato fatto nelle linee (029-031).

Disegno della GUI.. Il codice responsabile del disegno della GUI deve risiedere in una funzione draw (Esempio 25-2). Esempio 25-2. Disegno della GUI 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057

###################################################### # Disegno della GUI ###################################################### def draw(): global T_NumberOfSides global T_Radius global EVENT_NOEVENT,EVENT_DRAW,EVENT_EXIT ########## Titoli glClear(GL_COLOR_BUFFER_BIT) glRasterPos2d(8, 103) Text("Esempio di script sui poligoni") ######### Pulsanti GUI per i parametri glRasterPos2d(8, 83) Text("Parametri:") T_NumberOfSides = Number("Numero di lati: ", EVENT_NOEVENT, 10, 55, 210, 18, T_NumberOfSides.val, 3, 20, "Numero di lati del poligono"); T_Radius = Slider("Rggios: ", EVENT_NOEVENT, 10, 35, 210, 18, T_Radius.val, 0.001, 20.0, 1, "Raggio del poligono"); ######### Pulsanti Disegna [Draw] ed Esci [Exit] Button("Draw",EVENT_DRAW , 10, 10, 80, 18) Button("Exit",EVENT_EXIT , 140, 10, 80, 18)

Le linee (037-039) semplicemente garantiscono l'accesso ai dati globali. La cosa veramente interessante inizia dalle linee (042044). La finestra OpenGL è inizializzata e la posizione corrente è impostata a x=8, y=103. L'origine di riferimento è l'angolo in basso a sinistra della finestra di testi. Poi è stampato il titolo Demo Polygon Script. Viene scritta un'ulteriore stringa (linee 047-048), poi sono creati i pulsanti di input per i parametri. Il primo (linee 049-050) è un Pulsante Numerico, esattamente uguale a quelli delle varie finestre pulsanti di Blender. Per il significato dei tutti i parametri vedere la guida di riferimento dell'API. Brevemente ci sono l'etichetta del pulsante, l'evento generato, la posizione (x, y) e le dimensioni (larghezza, altezza), il valore, i valori minimo e massimo permessi e una stringa di testo che appare come aiuto quando si passa col mouse sopra il pulsante. Le linee (051-052) definiscono uno slider, con una sintassi molto simile. Le linee (055-056) infine creano un pulsante Disegna [Draw] che genererà il poligono e un pulsante Exit.

Gestione degli eventi La GUI non sarà disegnata, e non funzionerà, finché non sarà scritto e registrato un opportuno gestore di eventi (Esempio 25-3). Esempio 25-3. Gestione degli eventi 058 def event(evt, val): 059 if (evt == QKEY and not val): 060 Exit() 061 062 def bevent(evt): 063 global T_NumberOfSides 064 global T_Radius 065 global EVENT_NOEVENT,EVENT_DRAW,EVENT_EXIT 066 067 ######### Gestisce gli eventi della GUI 068 if (evt == EVENT_EXIT): 069 Exit() 070 elif (evt== EVENT_DRAW): 071 Polygon(T_NumberOfSides.val, T_Radius.val) 072 Blender.Redraw() 073 074 Register(draw, event, bevent) 075

Le linee (058-060) definiscono il gestore degli eventi da tastiera, in questo caso risponde al tasto QKEY con una semplice chiamata a Exit(). Più interessanti sono le linee (062-072), incaricate di gestire gli eventi della GUI. Ogni volta che si usa un pulsante della GUI questa funzione viene chiamata, con il numero di evento definito per il pulsante passato come parametro. Il nucleo di questa funzione è quindi una struttura "select" che esegue codice differente a seconda del numero dell'evento. Alla fine viene chiamata la funzione Register. Questa effettivamente disegna la GUI ed avvia il ciclo di cattura degli eventi.

Gestione delle Mesh Infine, l'Esempio 25-4 mostra la funzione principale, quella che crea il poligono. È un editing di mesh abbastanza semplice, ma illustra molti punti importanti della struttura dati interna di Blender. Esempio 25-4. Intestazione dello script 076 077 078 079 080 081

###################################################### # Corpo principale ###################################################### def Polygon(NumberOfSides,Radius): ######### Crea una nuova mesh

082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109

poly = NMesh.GetRaw() ######### La popola con i vertici for i in range(0,NumberOfSides): phi = 3.141592653589 * 2 * i / NumberOfSides x = Radius * cos(phi) y = Radius * sin(phi) z = 0 v = NMesh.Vert(x,y,z) poly.verts.append(v) ######### Aggiunge un nuovo vertice al centro v = NMesh.Vert(0.,0.,0.) poly.verts.append(v) ######### Connette i vertici per formare le facce for i in range(0,NumberOfSides): f = NMesh.Face() f.v.append(poly.verts[i]) f.v.append(poly.verts[(i+1)%NumberOfSides]) f.v.append(poly.verts[NumberOfSides]) poly.faces.append(f) ######### Crea un nuovo Oggetto con la nuova Mesh polyObj = NMesh.PutRaw(poly) Blender.Redraw()

La prima linea importante è la (082). Qui è creato un nuovo oggetto mesh, poly. L'oggetto mesh è costituito da una lista di vertici e una lista di facce, più alcune altre cose interessanti. Per i nostri scopi sono sufficienti la lista di vertici e quella delle facce. Ovviamente la nuova mesh creata è vuota. Il primo ciclo (linee 085-092) calcola le posizioni x, y, z dei NumberOfSides vertici necessari per definire il poligono. Essendo una figura piatta z=0 per tutti. La linea (091) chiama il metodo Vert di NMesh per creare un nuovo oggetto vertice di coordinate (x,y,z). Tale oggetto viene poi aggiunto (linea 096) nella lista verts della Mesh poly. Infine (linee 095-096) un ultimo vertice viene aggiunto nel centro. Le linee (099-104) ora connettono questi vertici per creare le facce. Non è necessario creare prima tutti i vertici e poi le facce. Si può tranquillamente creare una nuova faccia non appena tutti i suoi vertici sono disponibili. La linea (100) crea un nuovo oggetto faccia. Un oggetto faccia ha la sua lista di vertici v (fino a 4) che lo definiscono. Le linee (101-103) aggiungono tre vertici alla lista inizialmente vuota f.v. I vertici sono due vertici consecutivi del poligono e il vertice centrale. Questi vertici devono essere presi dalla lista verts della Mesh. Infine la linea (104) aggiunge la faccia appena creata alla lista faces della nostra mesh poly.

Conclusioni Se si crea un file polygon.py contenente il codice sopra descritto, lo si carica in una finestra testo di Blender come abbiamo imparato nella sezione precedente e si preme ALT-P in quella finestra per eseguirlo, si vedrà che lo script scompare e la finestra diventa grigia. Nell'angolo in basso a sinistra sarà disegnata la GUI (Figura 25-2).

Figura 25-2. La GUI del nostro esempio.

Selezionando, per esempio, 5 vertici e un raggio di 0.5, e premendo il pulsante Draw apparirà un pentagono nel piano xy della finestra 3D (Figura 25-3). Figura 25-3. Il risultato del nostro script di esempio.

Riferimento [Reference] di Python A partire da Blender v2.31 Tutta l'Interfaccia di Programmazione per l'Applicazione [API, Application Programmer Interface] Python di Blender ha una documentazione di riferimento che è essa stessa un libro. Per ragioni di spazio non è stata inclusa qui. Ecco dov'è :) (http://www.blender.org/modules/documentation/228PythonDoc/Blender-module.html)

Script Python A partire da Blender v2.31 Ci sono più di cento diversi scripts per Blender disponibili sulla rete. Come con i plugin, gli scripts sono molto dinamici, hanno un'interfaccia variabile, funzionalità e indirizzo web molto fugace, quindi per una lista aggiornata e per un collegamento attivo ci faccia riferimento ad uno dei due siti principali di Blender, www.blender.org (http://www.blender.org/) e www.elysiun.com (http://www.elysiun.com/).

Capitolo 26. Il Sistema di Plugin di Blender di Kent Mein Questa sezione riporta un approfondito riferimento alla codifica dei plugin di Texture e Sequenze di Blender.

Scrivere un Plugin Texture A partire da Blender v2.31 In questa Sezione scriveremo un plugin di texture base e quindi percorreremo i passi per usarlo. La base dietro un plugin texture è che si stanno fornendo alcuni input; posizione e valori delle normali così come qualche altra informazione. Viene quindi restituita l'intensità, il colore e/o l'informazione sulla normale a seconda del tipo di plugin texture. Tutti i file necessari per lo sviluppo dei plugin così come qualche plugin di esempio si possono trovare in blender/plugins. In alternativa si possono prendere un mucchio di plugin da http://www.cs.umn.edu/~mein/blender/plugins (http://www.cs.umn.edu/~mein/blender/plugins) I plugin sono supportati (caricati/chiamati) in Blender usando la famiglia di chiamate dlopen(). Per quelli che non hanno familiarità con il sistema dlopen esso consente ad un programma (Blender) di usare un oggetto compilato come se facesse parte del programma stesso, un po' come le librerie dinamiche eccetto che gli oggetti da caricare vengono determinati in fase di esecuzione. Il vantaggio di usare il sistema dlopen per i plugin è che consente un accesso molto veloce alle funzioni, e quindi non c'è un sovralavoro nell'interfacciare un plugin, fatto critico quando (come nel caso dei plugin texture) il plugin può essere chiamato diversi milioni di volte in un solo rendering. Lo svantaggio del sistema è che il codice del plugin funziona proprio come se facesse parte di Blender stesso, se il plugin fallisce, fallisce Blender. I file include che si trovano nella subdirectory plugin/include/ dell'installazione di Blender documentano le funzionalità di Blender per i plugin. Queste includono le funzioni di libreria Imbuf per il caricamento e la gestione di immagini e buffer di immagini, e funzioni di rumore e turbolenza per la coerenza delle texture.

Specifiche: A partire da Blender v2.31 •

#include Ogni plugin di Blender dovrebbe includere questa file di intestazione, che contiene tutte le strutture e definizioni necessarie per lavorare in modo appropriato con Blender.



char name[]="Tiles"; Una stringa di caratteri contenente il nome del plugin, questo valore apparirà nel titolo della texture nella Pulsantiera della Texture.



#define NR_TYPES 2 char stnames[NR_TYPES][16]= {"Square", "Deformed"}; Ai plugin è consentito avere un sottotipo diverso per piccole variazioni dell'algoritmo - per esempio la texture di default della nebbia in Blender ha i sotto tipi "Default"e "Color". NR_STYPES dovrebbe essere definito come il numero di sottotipi richiesti dal plugin, e si dovrebbe fornire un nome per ciascun sottotipo. Ogni plugin dovrebbe avere almeno 1 sottotipo col relativo nome.



VarStruct varstr[]= {...}; varstr contiene tutte le informazioni necessarie a Blender per mostrare i pulsanti per il plugin. I pulsanti per i plugin possono essere numerici per dati in ingresso o testo per i commenti o altre informazioni. I plugin sono limitati ad un massimo di 32 variabili. Ciascuna voce della struttura VarStruct consiste in un tipo, un nome, l'informazione di un intervallo ed un 'tool tip'. Il tipo definisce il tipo per ciascuna voce del pulsante, ed il modo di mostrare il pulsante. Per i pulsanti numerici tale valore dovrebbe essere una combinazione (OR) di INT o FLO per il formato del numero e NUM, NUMSLI, o TOG, per il tipo di pul-

362

Capitolo 26. Il Sistema di Plugin di Blender sante. I pulsanti testo dovrebbero avere un tipo LABEL. Il nome è quello che apparirà sul (o accanto al) pulsante. Il limite è 15 caratteri. L'informazione dell'intervallo consiste di tre numeri a virgola mobile che definiscono i valori di default, del minimo ed il massimo del pulsante. Per pulsanti TOG il minimo è lo stato di premuto ed il massimo è lo stato di non-premuto. Il 'tool tip' è una stringa che apparirà (se l'utente ha i 'tool tip' attivati) quando il mouse è sopra tale pulsante. Ha un limite di 80 caratteri, e se non utilizzato, dovrebbe essere una stringa NULLA (""). •

typedef struct Cast {...}; La struttura Cast viene usata nella chiamata alla funzione doit, ed è un modo per semplificare l'accesso ai dati di ciascun plugin. Cast dovrebbe contenere, nell'ordine, un intero o un float per ogni pulsante definito nella varstr, inclusi i pulsanti testo. Di solito questi dovrebbero avere lo stesso nome dei pulsanti per semplificare i riferimenti.



float result[8]; L'array result viene usato per passare informazioni e riceverle dal plugin. i valori di result sono mappati come segue: Indice di Result

Significato

Intervallo

result[0]

valore dell'Intensità [Intensity]

da 0.0 a 1.0

result[1]

valore del colore Rosso [Red]

da 0.0 a 1.0

result[2]

valore del colore Verde [Green]

da 0.0 a 1.0

result[3]

valore del colore Blu [Blue]

da 0.0 a 1.0

result[4]

valore del colore Alfa [Alpha]

da 0.0 a 1.0

result[5]

valore dello scostamento della normale X

da -1.0 a 1.0

result[6]

valore dello scostamento della normale Y

da -1.0 a 1.0

result[7]

valore dello scostamento della normale Z

da -1.0 a 1.0

Il plugin dovrebbe sempre restituire un valore di intensità. La restituzione dell'RGB o della normale sono facoltative e dovrebbero essere indicate dal flag di ritorno doit() "1" (RGB) o "2" (Normale). Prima che venga chiamato il plugin, Blender include la normale del rendering attuale in result[5], result[6] e result[7]. •

float cfra Il valore cfra viene impostato da Blender al valore attuale prima di qualsiasi passo del rendering. Tale valore è un numero di frame +/- .5 a seconda delle impostazioni del campo.



plugin_tex_doit prototype La funzione plugin_tex_doit dovrebbe essere prototipizzata per essere utilizzata dalla funzione getinfo. Non è necessario cambiare questa linea.



plugin_tex_getversion Questa funzione deve essere presente in ciascun plugin affinché sia caricato correttamente. Non la si dovrebbe cambiare.



plugin_but_changed Questa funzione viene usata per passare le informazioni sui pulsanti dell'interfaccia che l'utente modifica. La maggior parte dei plugin non dovrebbe aver necessità di usare tale funzione, solo quando l'interfaccia consente all'utente di modificare qualche variabile che forza il plugin a rifare il calcolo (per esempio una tabella hash random ).



plugin_init Se necessario i plugin possono utilizzare questa funzione per inizializzare i dati interni. NOTA: Questa funzione di init può essere chiamata più volte se viene copiato lo stesso plugin di texture. In questa funzione non inizializza i dati globali specifici di una singola istanza di plugin.

363



plugin_getinfo Questa funzione viene chiamata per comunicare delle informazioni a Blender. Non dovrebbe essere necessario modificarla.



plugin_tex_doit La funzione doit è responsabile della restituzione delle informazioni sul pixel richiesto a Blender. Gli Argomenti •

int stype Questo è il numero del sottotipo selezionato, vedere le voci precedenti NR_TYPES e char stypes.



Cast *cast La struttura Cast che contiene i dati del plugin, vedere la voce precedente Cast.



float *texvec Questo è un puntatore a 3 float, che sono le coordinate per cui si deve restituire un valore della texture.



float *dxt float *dyt Se questi puntatori sono non-NULL essi puntano a due vettori (due array di tre float) che definiscono la dimensione del valore della texture richiesto nello spazio del pixel. Essi sono non-NULL solo quando è attivato l'OSA, e vengono usati per calcolare l'antiscalettatura [anti aliasing] appropriata.

La funzione doit dovrebbe riempire l'array del risultato e restituire 0, 1, 2, o 3 a seconda di quali valori siano stati inseriti. La funzione doit dovrebbe sempre inserire un valore di intensità. Se la funzione inserisce il valore di un colore dovrebbe restituire 1, se la funzione inserisce il valore di una normale dovrebbe restituire 2, se la funzione inserisce tutto dovrebbe restituire 3. Interazione tra Texture e Materiale Blender è piuttosto diverso dalla maggior parte dei pacchetti 3D nella separazione logica tra texture e materiali. In Blender le texture sono oggetti che restituiscono certi valori, generatori di segnali infatti. I materiali controllano la mappatura delle texture negli oggetti, riguarda chi, quanto, in che modo, ecc. I plugin ben progettati dovrebbero includere solo le variabili che riguardano il segnale restituito non la sua mappatura. I pulsanti per controllare il dimensionamento, la gamma di valori, gli assi, ecc. è meglio includerli solo quando rendono la texture più facile da usare (nel caso del pulsante del dimensionamento nel plugin Tiles) o quando velocizzano il calcolo (i sottotipi Intensity/Color/Bump nel plugin Clouds2). Altrimenti la Pulsantiera del Materiale rende ridondanti tali pulsanti, e l'interfaccia diventa inutilmente complessa.

Plugin di Texture Generico: A partire da Blender v2.31 #include "plugin.h" /* Nome della texture*/ char name[24]= ""; #define NR_TYPES 3 char stnames[NR_TYPES][16]= {"Intens","Color", "Bump"}; /* Struttura per i pulsanti, * butcode name default min max 0 */ VarStruct varstr[]= { {NUM|FLO, "Const 1", 1.7, -1.0, 1.0, ""}, };

typedef struct Cast { float a; } Cast; float result[8];

364

Capitolo 26. Il Sistema di Plugin di Blender float cfra; int plugin_tex_doit(int, Cast*, float*, float*, float*); /* Fixed Functions */ int plugin_tex_getversion(void) { return B_PLUGIN_VERSION; } void plugin_but_changed(int but) { } void plugin_init(void) { } void plugin_getinfo(PluginInfo *info) { info->name= name; info->stypes= NR_TYPES; info->nvars= sizeof(varstr)/sizeof(VarStruct); info->snames= stnames[0]; info->result= result; info->cfra= &cfra; info->varstr= varstr; info->init= plugin_init; info->tex_doit= (TexDoit) plugin_tex_doit; info->callback= plugin_but_changed; } int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt) { if (stype == 1) { return 1; } if (stype == 2) { return 2; } return 0; }

Le nostre Modifiche: A partire da Blender v2.31 Il primo passo inizia col progetto di un gioco. Cosa deve fare questo plugin, come l'utente deve interagire con esso. Per questo esempio si creerà una semplice texture che crea una semplice disposizione di blocchi di mattoni. Ora si copierà il nostro plugin generico cube.c e si faranno le aggiunte. Aggiungere dei commenti è sempre una buona idea. Prima si dice agli utenti cosa fa il plugin, dove si può prenderne una copia, chi contattare per modifiche/bug, e qualsiasi limitazione di licenza del codice. Quando si usano commenti ci si assicuri di usare lo stile /* */. I plugin sono in C e qualche compilatore C non accetta lo stile //. /* Descrizione: Questo plugin è un esempio di plugin di texture con cui si crea una semplice disposizione a blocchi di mattone. Esso prende due valori la dimensione di un mattone e la dimensione della malta. La dimensione del mattone è la dimensione per ciascun mattone. La dimensione della malta è la dimensione della malta tra ciascun mattone. Autor: Kent Mein ([email protected]) Website: http://www.cs.umn.edu/~mein/blender/plugins Licensing: Public Domain

365

Last Modified: Tue Oct 21 05:57:13 CDT 2003 */

Successivamente si inserisce il nome [Name], in realtà dovrebbe essere lo stesso del file .c, preferibilmente descrittivo, con meno di 23 caratteri, senza spazi e tutto in minuscolo. char name[24]= "cube.c";

Manterremo semplice questo plugin, ed avrà un solo tipo che riguarda l'intensità. Quindi c'è bisogno di ciò che segue: #define NR_TYPES 1 char stnames[NR_TYPES][16]= {"Default"};

Per l'interfaccia utente si consentirà alle persone di cambiare la dimensione del mattone e della malta, così come i valori di intensità restituiti dal mattone e dalla malta. Per questo bisogna modificare varstr e Cast. Cast dovrebbe avere una variabile per ciascuna voce in varstr. /* Struttura per i pulsanti, * codice pulsante nome */ VarStruct varstr[]= { {NUM|FLO, "Brick", .8, {NUM|FLO, "Mortar", .1, {NUM|FLO, "Brick Int", 1, {NUM|FLO, "Mortar Int", 0, };

default

0.1, 0.0, 0.0, 0.0,

1.0, 0.4, 1.0, 1.0,

min

max

Tool tip

"Dimensione della Cella"}, "Dimensione del contenuto nella cella"}, "Colore del Mattone"}, "Colore della Malta"},

typedef struct Cast { float brick,mortar, bricki, mortari; } Cast;

Ora si deve riempire plugin_tex_doit, fondamentalmente si deve dividere la texture in "celle" che consisteranno di un mattone e della malta assieme al bordo inferiore del mattone. Quindi si determina se si è nel mattone o nella malta. Il codice che segue dovrebbe fare ciò.

int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt) { int c[3]; float pos[3], cube; /* impostazione della dimensione della cella */ cube = cast->brick + cast->mortar; /* bisogna determinare c[0] = (int)(texvec[0] c[1] = (int)(texvec[1] c[2] = (int)(texvec[2]

dov'è l'interno del mattone attuale. */ / cube); / cube); / cube);

pos[0] = ABS(texvec[0] - (c[0] * cube)); pos[1] = ABS(texvec[1] - (c[1] * cube)); pos[2] = ABS(texvec[2] - (c[2] * cube)); /* Si cerca di capire se si è nella posizione della malta all'interno del mattone o no. */ if ((pos[0] <= cast-mortar) || (pos[1] <= cast->mortar) || (pos[2] <= cast->mortar)) {

366

Capitolo 26. Il Sistema di Plugin di Blender result[0] = cast->mortari; } else { result[0] = cast->bricki; } return 0; }

Una cosa da notare, la funzione ABS è definita in un header in plugins/include. Lì ci sono altre funzioni comuni si dia uno sguardo.

Compilazione: A partire da Blender v2.31 bmake è una semplice utility (uno script shell) di aiuto alla compilazione e sviluppo dei plugin e la si può trovare nella sub-directory plugins/ della directory di installazione di Blender. Viene richiamato con: bmake (plugin_name.c) e proverà a linkare le librerie giuste e compilare il file C indicato in modo appropriato al proprio sistema. Se si prova a sviluppare dei plugin su una macchina Windows bmake potrebbe non funzionare nel qual caso si deve vedere di usare lcc. Per compilare un plugin con lcc si può usare: Si assume che si abbiano i plugin c:\blender\plugins. Qui c'è un esempio di come si dovrebbe compilare il plugin di texture sinus.c. Si apre una finestra dos e si digita: (Nota: Ci si dovrà assicurare che nel path ci sia la directory lcc\bin) cd c:\blender\plugins\texture\sinus lcc -Ic:\blender\plugins\include sinus.c lcclnk -DLL sinus.obj c:\blender\plugins\include\tex.def implib sinus.dll

Scrittura di un Plugin di Sequenza [Sequence Plugin] A partire da Blender v2.31 In questa sezione si scriverà un plugin di sequenza elementare e quindi si percorreranno i passi per usare un plugin di sequenza. Le basi dietro un plugin di sequenza sono degli input: da 1 a 3buffer di immagini in ingresso così come qualche altra informazione e restituisce il buffer dell'immagine risultante. Tutti i file necessari allo sviluppo dei plugin così come un paio di plugin di esempio si trovano nella directory blender/plugins. In alternativa si possono prendere un bel po' di plugin da http://www.cs.umn.edu/~mein/blender/plugins (http://www.cs.umn.edu/% 7Emein/blender/plugins)

Specifiche: A partire da Blender v2.31 •

#include Ogni plugin di Blender dovrebbe includere questo file di intestazione, che contiene tutte le strutture e definizioni per lavorare appropriatamente con Blender.



char name[]="Blur"; Una stringa di caratteri contenente il nome del plugin, questo valore apparirà come titolo della texture nella Pulsantiera della Texture.



VarStruct varstr[]= {...}; varstr contiene tutte le informazioni necessarie a Blender per mostrare i pulsanti del plugin. I pulsanti del plugin possono essere numerici per l'immissione di dati, o testuali per commenti ed altre informazioni. I plugin sono limitati ad un massimo di 32 variabili. Ciascuna voce di VarStruct consiste in un tipo, un nome, un l'informazione sull'intervallo ed un tool tip.

367

Il tipo [type] definisce il tipo di dati per ciascuna voce del pulsante, ed il modo di mostrare il pulsante. Per pulsanti numerici tale valore dovrebbe essere una combinazione (OR) di INT e FLO per il formato numerico, e NUM, NUMSLI, e TOG, per il tipo di pulsante. I pulsanti testo dovrebbero essere di tipo LABEL. Il nome [name] è quello che apparirà sul (a accanto al) pulsante. Questo è limitato a 15 caratteri. L'informazione sull'intervallo [range] consiste in tre float che definiscono il default, il minimo ed massimo dei valori del pulsante. Per i pulsanti interruttori [TOG] il minimo è impostato allo stato premuto, il massimo allo stato di non premuto. Il tool tip è la stringa che apparirà quando il mouse è sopra il pulsante( se l'utente ha i tool tip attivati). Questo è limitato ad 80 caratteri, e dovrebbe essere posto ad una stringa NULL ("") se inutilizzato. •

typedef struct Cast {...}; La struttura cast viene utilizzata nella chiamata alla funzione doit e serve per semplificare l'accesso ai dati di ogni plugin. cast dovrebbe contenere, nell'ordine, un intero o un float per ogni pulsante definito in varstr, inclusi i pulsanti testo. Di solito dovrebbero avere lo stesso nome del pulsante per semplificare i riferimenti.



float cfra Il valore cfra è impostato da Blender al valore attuale prima di ogni passo del rendering. Questo valore è un numero di frame +/- .5 a seconda delle impostazioni del campo.



plugin_seq_doit prototype La funzione plugin_seq_doit dovrebbe essere prototipizzata per essere usata dalla funzione getinfo. Non è necessario cambiare questa linea.



plugin_seq_getversion Questa funzione deve stare in ciascun plugin affinché sia caricato correttamente. Non si dovrebbe cambiare questa funzione.



plugin_but_changed Questa funzione viene usata per passare le informazioni su quali pulsanti l'utente cambia nell'interfaccia. La maggior parte dei plugin non ha bisogno di usare questa funzione, solo quando l'interfaccia consente all'utente di cambiare qualche variabile che obbliga il plugin a rifare il calcolo (per esempio una tabella hash random ).



plugin_init Se necessario i plugin possono utilizzare questa funzione per inizializzare i dati interni. NOTA: Questa funzione di init può essere chiamata più volte se viene copiato lo stesso plugin di sequenza. In questa funzione non inizializza i dati globali specifici di una singola istanza di plugin.



plugin_getinfo Questa funzione viene chiamata per comunicare delle informazioni a Blender. Non dovrebbe essere necessario modificarla.



plugin_seq_doit La funzione doit di sequenza è responsabile di applicare l'effetto del plugin e copiare il dato finale nel buffer di uscita. Gli Argomenti •

Cast *cast La struttura Cast che contiene i dati del plugin, vedere la voce precedente Cast.



float facf0 Il valore della curva IPO del plugin per lo spostamento [offset] del primo campo. Se l'utente non ha creato una curva IPO questo spazia da 0 a 1 per la durata del plugin.



float facf1 Il valore della curva IPO del plugin per lo spostamento [offset] del secondo campo. Se l'utente non ha creato una curva IPO questo spazia da 0 a 1 per la durata del plugin.



int x int y La larghezza e l'altezza, rispettivamente, del buffer dell'immagine.



Imbuf *ibuf1 Un puntatore al primo buffer dell'immagine con cui è collegato il plugin. Sarà sempre un buffer di immagine valido.

368

Capitolo 26. Il Sistema di Plugin di Blender •

Imbuf *ibuf2 Un puntatore al secondo buffer dell'immagine con cui è collegato il plugin. I plugin che usano questo buffer dovrebbero verificare che non sia un buffer NULL, nel caso l'utente potrebbe non aver collegato il plugin a due buffer.



Imbuf *out Il buffer immagine per l'uscita del plugin.



Imbuf *use Un puntatore al terzo buffer dell'immagine con cui è collegato il plugin. I plugin che usano questo buffer dovrebbero verificare che non sia un buffer NULL, nel caso l'utente potrebbe non aver collegato il plugin a tre buffer.

Struttura immagine ImBuf La struttura ImBuf contiene sempre 32 bit ABGR di dati sul pixel. La struttura ImBuf ha sempre le dimensioni uguali, indicate valori passati di x e y. Interazione con l'Utente Non c'è modo per blender di sapere quanti input si aspetta un plugin, così è possibile per un utente includere solo un input ad un plugin che ne aspetta due. Per questa ragione è importante verificare sempre i buffer che usa il plugin per essere sicuri che siano sempre validi. I plugin di sequenza dovrebbero includere anche un'etichetta di testo con la descrizione degli input richiesti nell'interfaccia dei pulsanti.

Plugin di Sequenza Generico: #include "plugin.h" char name[24]= ""; /* struttura per i pulsanti, * codice pulsante nome default min max 0 */ VarStruct varstr[]= { { LABEL, "In: X strips", 0.0, 0.0, 0.0, ""}, };

/* La struttura cast è per l'input nella funzione principale doit Varstr e Cast devono avere le stesse variabili nello stesso ordine */ typedef struct Cast { int dummy; /* a causa del pulsante 'label' */ } Cast; /* cfra: il frame corrente */ float cfra; void plugin_seq_doit(Cast *, float, float, int, int, ImBuf *, ImBuf *, ImBuf *, ImBuf *); int plugin_seq_getversion(void) { return B_PLUGIN_VERSION; } void plugin_but_changed(int but) { } void plugin_init() { } void plugin_getinfo(PluginInfo *info) {

369

info->name= name; info->nvars= sizeof(varstr)/sizeof(VarStruct); info->cfra= &cfra; info->varstr= varstr; info->init= plugin_init; info->seq_doit= (SeqDoit) plugin_seq_doit; info->callback= plugin_but_changed; } void plugin_seq_doit(Cast *cast, float facf0, float facf1, int xo, int yo, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *outbuf, ImBuf *use) { char *in1= (char *)ibuf1->rect; char *out=(char *)outbuf->rect; }

Le nostre Modifiche: Il primo passo inizia col progetto di un gioco. Cosa deve fare questo plugin, come l'utente deve interagire con esso. Per questo esempio si creerà una semplice filtro che avrà uno slider per l'intensità da 0 a 255. Se ciascuna delle componenti R,G, e B di un pixel nell'immagine sorgente è inferiore all'intensità scelta, ritornerà nero ed alfa, altrimenti tornerà quello che era nell'immagine. Ora si copierà il plugin generico in simpfilt.c e si faranno le aggiunte. Aggiungere dei commenti è sempre una buona idea. Prima si dice agli utenti cosa fa il plugin, dove si può prenderne una copia, chi contattare per modifiche/bug, e qualsiasi limitazione di licenza del codice. Quando si usano commenti ci si assicuri di usare lo stile /* */. I plugin sono in C e qualche compilatore C non accetta lo stile //. /* Description: This plugin is a sample sequence plugin that filters out lower intensity pixels. I works on one strip as input. Author: Kent Mein ([email protected]) Website: http://www.cs.umn.edu/~mein/blender/plugins Licensing: Public Domain Last Modified: Sun Sep 7 23:41:35 CDT 2003 */

Successivamente si inserisce il nome [Name], in realtà dovrebbe essere lo stesso del file .c. Preferibilmente descrittivo, con meno di 23 caratteri, senza spazi e tutto in minuscolo. char name[24]= "simpfilt.c";

Cast e varstr devono essere sincronizzate. Si vuole un solo slider quindi si fa ciò che segue: varStruct varstr[]= { { LABEL, "In: 1 strips", 0.0, 0.0, 0.0, ""}, { NUM|INT, "Intensity", 10.0, 0.0, 255.0, "Our threshold value"}, }; typedef struct Cast { int dummy; int intensity; } Cast;

/* per il pulsante 'label' */

Ora si deve riempire plugin_seq_doit. Fondamentalmente si vuol fare un loop per ciascun pixel e se RGB sono inferiori dell'intensità imposta l'output a: 0,0,0,255 altrimenti lo imposta al valore dell'input per quella posizione. int x,y; for(y=0;y cast->intensity) &&

370

Capitolo 26. Il Sistema di Plugin di Blender (in1[1] (in1[2] out[0] = out[3] = } else { out[0] = out[1] = out[2] = out[3] = }

> cast->intensity) && > cast->intensity)) { out[1] = out[2] = 0; 255; in1[0]; in1[1]; in1[2]; in1[3];

} }

Quindi si deve concludere con simpfilt.c

Compilazione: bmake è una semplice utility (uno script shell) di aiuto alla compilazione e sviluppo dei plugin e la si può trovare nella sub-directory plugins/ della directory di installazione di Blender. Viene richiamato con: bmake (plugin_name.c) e proverà a linkare le

librerie giuste e compilare il file C indicato in modo appropriato al proprio sistema. Se si prova a sviluppare dei plugin su una macchina Windows, bmake potrebbe non funzionare. Nel qual caso si deve vedere di usare lcc. Per compilare un plugin con lcc si può usare: Si assume che si abbiano i plugin c:\blender\plugins. Qui c'è un esempio di come si dovrebbe compilare il plugin di texture sweep.c. Si apre una finestra dos e si digita: (Nota: Ci si dovrà assicurare che nel path ci sia la directory lcc\bin) cd c:\blender\plugins\sequence\sweep lcc -Ic:\blender\plugins\include sweep.c lcclnk -DLL sweep.obj c:\blender\plugins\include\seq.def implib sweep.dll

371

VII. Oltre Blender Dato che Blender è espandibile, sono stati scritti una serie di scripts da utenti entusiasti per esportare modelli in altri motori di rendering. In questa Parte ci si concentrerà su uno script di estensione, Yable, e su un motore di rendering esterno, Yafray. Yafray è stato scelto fra gli altri perché è nuovo, molto promettente, ed è attivamente sviluppato da un gruppo di veterani di utenti Blender.

Capitolo 27. Da Blender a YafRay usando YableX A partire da Blender v2.31 di Manuel Bastioni

Che cos'è Yable? Yable è uno script Python, concepito originalmente da Andrea Carbone, consente di esportare la scena di Blender nel formato XML di YafRay, quindi per essere in grado di sfruttare tale motore di rendering molto fotorealistici. D'altra parte Yable non è un semplice "convertitore di formato", ma è un vero e proprio laboratorio di elaborazione della scena che consente di assegnare e cambiare le luci, i materiali e le impostazioni ambientali sfruttando appieno le funzionalità di YafRay. Da un altro punti di vista lo script Yable si può considerare come una GUI, in grado di visualizzare e gestire con gran semplicità la grande quantità di parametri utilizzati da YafRay.

Quale Yable? La prima versione di Yable (fine 2002) è stata realizzata interamente da Andrea e, successivamente, come risultato del successo dello script tra gli utenti, sono state emesse molte versioni diverse dello script, per correggere i bug ed aggiungere nuove funzionalità. È importante evidenziare il contributo di Alejandro Conty Estévez, Alfredo "Eeshlo" de Greef, Christoffer Green, Leope, Johnny "guitargeek" Matthews, Jean-Michel "jms" Soler. Dopo il rilascio ufficiale di Yable 0.30 sono state emesse molte patch non ufficiali, chiamate genericamente YableX, e pubblicate nel forum di Yable su www.Kino3d.com. Per l'uso di questo Capitolo si sono esaminate tutte queste versioni per formare una nuova versione "ufficiale" e si è deciso in basarla sull'ultimo rilascio di YableX che, grazie alle modifiche apportate da Jms, funziona con l'ultimo rilascio di Blender.

Dove prelevare YableX? I due siti principali di Blender, che si dovrebbero a questo punto conoscere, hanno dei link ad esso, ad ogni modo l'ultima versione è stata realizzata da Jms e può essere scaricata dal suo sito Zoo-Blender (http://www.zoo-logique.org/3D.Blender (http://www.zoo-logique.org/3D.Blender/)). Si raccomanda, però, di dare uno sguardo al forum ufficiale di YafRay, nella sezione exporters: http://www.YafRay.org (http://www.yafray.org/)

Installazione dello script A partire da Blender v2.31 Yable è uno script, ovvero un semplice file di testo che può essere caricato in Blender, quindi non si deve parlare propriamente di una installazione. In verità è sufficiente caricarlo in nella Finestra di Testo di Blender e premere ALT-P per lanciarlo. Prima di iniziare si deve ad ogni modo fare attenzione a due punti fondamentali: •

C'è bisogno di un'installazione completa di Python (quella giusta per la propria versione di Blender), scaricabile da www.python.org;



Si deve modificare la riga 81 dello script Yable.

La prima è una condizione necessaria affinché lo script possa trovare i moduli Python richiesti, mentre la seconda è necessaria

per impostare la directory in cui si salveranno le impostazioni e l'XML generato da Yable. Impostando, per esempio, la linea 81 a: YABLEROOT = "C:/"

Implica che ogni volta che si esporta una scena da un file foo.blend, verrà creata una nuova cartella chiamata foo in C:/ contenente tutti gli elementi della scena. In questo modo, anche se si chiude Blender, e poi si riapre il file e si riavvia lo script, Yable sarà in grado di recuperare le impostazioni, dato che le cerca in una cartella che ha lo stesso nome del file .blend corrente. Nota: Questa nomenclatura automatica è molto pratica, ma sfortunatamente implica anche se si vuol salvare il file .blend con un nome diverso, lo si deve ri-esportare da Yable almeno una volta, in modo che le impostazioni vengano scritte di nuovo. Altrimenti si può copiare il contenuto della vecchia cartella in quella nuova.

Volendo, si può impostare un viewer esterno che si avvia automaticamente per mostrare il risultato del rendering. Se lo si desidera si deve modificare la linea 90, impostando la variabile VIEWERAPP col percorso dell'applicazione scelta. Come detto in precedenza, tutti i dati verranno salvati nella directory definita in YABLEROOT, tutti ad eccezione delle texture. È importante che tutte le immagini usate per la scena stiano nella stessa , e che tale directory sarà correttamente indicata a Yable, ma questo viene fatto durante l'esecuzione nella Pulsante Testo pertinente che appare appena lo script viene lanciato (Figura 271). È richiesto il path completo alle texture. Figura 27-1. Impostazione della Dir della Texture ed il pulsante di avvio.

L'interfaccia A partire da Blender v2.31 Le funzioni di Yable sono state divise in tre schermi principali, accessibili premendo i tre pulsanti in alto che si possono vedere in Figura 27-2. Figura 27-2. I pulsanti nell'intestazione di Yable.

Filosofia del flusso di lavoro [Workflow]. Una volta creata una scena Blender, con gli oggetti, i materiali e le luci, si può caricare ed avviare lo script, possibilmente dividendo in due l'inquadratura 3D principale e cambiando una delle due metà in una Finestra Testo. In questo modo si sarà in grado di vedere contemporaneamente la scena e la GUI di Yable. Il Flusso di lavoro di Yable è come segue: •

Si seleziona un oggetto della scena;



Si va nella parte Materiali o Luci dell'interfaccia, a seconda da cosa si sta definendo, e si preme il pulsante Get Selected. In questo modo Yable recupera le informazioni dell'oggetto (se ce ne sono);



Si modificano gli attributi. Questi sono completamente indipendenti da quelli di Blender!



Si preme il pulsante Assign per assegnare i parametri immessi all'oggetto. Questo è un passo da non dimenticare! Si può usare un pulsante Assign All per assegnare i dati a tutti gli oggetti selezionati.

Impostazioni Globali Questa parte della GUI permette l'accesso alle funzioni delle impostazioni generali della scena Figura 27-3.

Figura 27-3. Pulsantiera delle Impostazioni Globali [Global Settings].



Path della Texture (Figura 27-3#5) - Il path della texture può essere ridefinito in qualsiasi momento.



Illuminazione Globale (Figura 27-3#6) - Aggiunge l'illuminazione globale alla scena, questa è la simulazione della luce diffusa, originata in natura come un effetto delle infinite reciproche riflessioni e diffusioni tra gli oggetti. Il suo effetto si aggiunge a quello di ogni luce diretta. Path light ed Hemi light sono finalizzati per lo stesso effetto, ma usando due algoritmi diversi con dei vantaggi e svantaggi, per la descrizione dei quali ci si riferisca al Capitolo specifico di YafRay. Figura 27-4. Impostazioni dell'Illuminazione Globale.

La Figura 27-4 mostra le varie opzioni per la luce Hemi e Path. Nel primo caso si può impostare il colore con i Pulsanti Numerici Red, Green e Blue, o prendere il colore dal fondo col pulsante Use Back Ground Color. È possibile usare quest'ultima caratteristica quando si usano degli sfondi basati su immagini, anche se il pulsante Use Back Ground Color scompare impostando tutti e tre gli slider RGB a 0. Nel caso della Luce Path, però, l'immagine di sottofondo viene usata per default. Un'altra differenza tra le luci Hemi e Path è il parametro Depth, che si riferisce al numero di rimbalzi considerati nel calcolo dello scambio di riflessioni tra gli oggetti. Per avere un minimo di effetto radiosità è necessario avere almeno due scambi di luce. Dato che il calcolo del Path Light è piuttosto complesso viene fornita un'opzione Cache, che consente di ottimizzare e diminuire il tempo di rendering. Fondamentalmente agisce come una pre-elaborazione usata per determinare le zone dell'immagine che necessitano di più campionamenti; come un esempio su un'ampia superficie piatta si può presupporre che l'illuminazione diffusa sia particolarmente uniforme, e quindi si possono effettuare meno calcoli. I parametri condivisi da entrambe le luci globali sono Power (Potenza), il QMC, e Samples (Campioni). Power indica la potenza dell'emissione luminosa, mentre Samples indica l'accuratezza del campionamento durante il rendering: valori alti migliorano la pulizia della luce (la luce Hemi ha la tendenza a diventare granulosa) ma questo aumenta di molto il tempo richiesto per il calcolo. QMC si riferisce all'uso del metodo Quasi Monte Carlo per determinare le zone da calcolare: esso è basato su sequenze di numeri quasi casuali, ed accelera il rendering, anche se, talvolta, genera dei motivi [pattern] granulari sull'immagine. •

Sfondo [Background] (Figura 27-3#7) - Ci sono quattro opzioni. A seconda delle scelte effettuate appare qualche altro

pulsante, quasi tutti sono di immediata comprensione (Figura 27-5). Figura 27-5. Impostazioni dello Sfondo [Background].

Const BkGd, è il più facile da usare (Figura 27-5 in alto a sinistra): esso è un colore omogeneo definito dati dai suoi valori

RGB. Normal BkGd (Figura 27-5 in basso a destra) permette l'uso di un'immagine (l'ultima versione di YafRay supporta JPG e TGA); il solo parametro è Power, che indica la luminosità dell'immagine. HDRI BkGd (Figura 27-5 in basso a sinistra) è, forse, quello che consente il massimo realismo. Le immagini HDR (High Dy-

namic Range) , per immagazzinare i colori dei pixel come numeri a virgola mobile contengono molti più dati che gli altri formati. Inoltre, sono solitamente disponibili come probes (esplorazioni), vale a dire sfondi completi a 360 gradi in orizzontale e 180 in verticale. Dopo aver ottenuto le giuste immagini, è necessario porle nella stessa cartella delle texture, scriverne il nome nel pulsante Probe Name, ed impostarne l'esposizione che si vuol usare (positivo vuol dire più chiaro). Infine SunSky BkGd (Figura 27-5 in alto a destra) usa un sofisticato algoritmo per la simulazione delle condizioni della luce del sole. La posizione del sole può essere impostata selezionando un oggetto nella scena di Blender (di solito una empty), premere il pulsante Set Sun Pos e confermare. È importante notare che la dimensione del sole dipenderà anche dalla distanza tra l'oggetto scelto e la telecamera. Un parametro particolarmente importante per la costruzione della scena è Turbid, questo consente di regolare il valore della densità degli strati atmosferici che circondano il pianeta: strati densi consentono il passaggio di determinate lunghezze d'onda della luce solare, quindi cambia sia il colore che la potenza della luce. Gli altri pulsanti controllano l'aureola [halo] e la distribuzione [spread] dei raggi. Lo sfondo SunSky, se usato con la Path Light o la Hemi Light, è in grado di emettere luce in un modo estremamente realistico. Nel caso in cui non si voglia usare l'Illuminazione Globale si può premere il pulante Sun e Yable aggiungerà una luce di tipo Sun nella scena esportata, questo simulerà, più grossolanamente ma più velocemente, l'effetto della luce solare. •

Fog (Figura 27-3#8) - Con lo slider Fog (nebbia o foschia) si sceglie la quantità di nebbia presente nella scena (zero per default), mentre il colore viene scelto selezionando uno dei tre pulsanti Red, Green o Blue ed usando il singolo slider sotto di essi (Figura 27-6). Figura 27-6. Impostazioni della nebbia [Fog].



Depth of field (Profondità di Campo) (Figura 27-3#9) - Questo è necessario per simulare una vera sfocatura focale [focal blur] della telecamera. Questa è una caratteristica che YafRay aggiungerà al rendering in molto meno tempo degli altri motori di rendering, dato che però viene eseguito come operazione di post-elaborazione, questo significa che qualche difetto nel tenere in conto in modo preciso delle riflessioni. La regolazione viene effettuata selezionando un oggetto qualsiasi nella scena di Blender e premendo il pulsante Set Focus (Figura 27-7). Il punto scelto in questo modo sarà perfettamente netto (messo a fuoco). Con gli altri due Pulsanti Numerici si regola l'ampiezza della profondità del campo: Near Blur influenza quanto gli oggetti che sono tra la telecamera ed il punto del fuoco siano sfocati, mentre Far Blur influisce sugli oggetti oltre il fuoco a partire dalla telecamera.

Figura 27-7. Impostazioni della Profondità di Campo [Depth of Field].



Anti-noise Filter (Figura 27-3#10) - (Filtro Anti-rumore) Anche questo è un filtro applicato come post-elaborazione. Funziona in modo iterativo prendendo qualche punto all'interno di un'area circolare ed assegnandogli lo stesso colore se i loro colori differiscono più di una data soglia. Figura 27-8. Impostazioni del Filtro Anti-rumore [Anti Noise].

L'ampiezza dell'area circolare viene determinata dal parametro Radius (Figura 27-8), mentre la soglia è data da Max Delta. Questo è un filtro molto utile, ma da usare con cura, in quanto ha anche un effetto di sfocatura [blurring] che può compromettere la qualità del risultato. Valori alti di delta tendono ad unificare tutto. •

Correzione Gamma, exposure, resolution (Figura 27-3#11) - Un semplice gruppo di pulsanti che consente di impostare la luminosità ed il valore gamma di tutto il rendering. Il Pulsante No esclude completamente entrambe le post-elaborazioni. Il Pulsante Default che riporta il Pulsante Numerico expos al valore di default. Il Pulsante Numerico Gamma permette la regolazione del valore gamma (Figura 27-9). Figura 27-9. Impostazioni della Risoluzione.

Il pulsante Menù resolution (risoluzione) consente di scegliere la dimensione dell'immagine del rendering. Premendolo, si possono scegliere i formati più comuni: 320x240, 480x320, 640x480, 640x512, 768x470, 1024x576, 1024x768 e 1280x960. Scegliendo la voce Custom, appaiono due nuovi pulsanti che consentono di impostare qualsiasi risoluzione. •

Impostazione del Rendering (Figura 27-3#12) - Questo gruppo di pulsanti consente di impostare i dettagli del file esportato permettendo di lanciare YafRay direttamente da Blender (Figura 27-10). Figura 27-10. Impostazioni del Rendering.

Le chiavi fondamentali sono Export, Render, Filename e Image. Gli ultimi due sono necessari per scegliere il nome che avrà il file XML e l'immagine del rendering. Export produce solo, all'interno della directory YABLEROOT tutti i file XML necessari mentre, se usato con Render, eseguirà anche YafRay e produrrà l'immagine finale; infine, se viene selezionato anche il pulsante View Output, alla fine rendering Yable lancerà anche l'applicazione indicata in VIEWERAPP, per vedere il risultato. Si noti che si deve avere YafRay nel proprio path per essere in grado di lanciarlo da Blender. Il pulsante Layers apre un nuovo pannello per la scelta del livello da esportare (Figura 27-11).

Figura 27-11. Selezione del Livello [Layer].

Il pulsante Path impone che la descrizione della scena venga esportata usando file separati (un file principale, e dei files secondari da salvarsi nelle cartelle appropriate, suddivise per materiali e mesh). La locazione di tali file verrà indicata a YafRay usando un path completo. Al contrario, il Pulsante !INC imporrà Yable a produrre un file "monolitico". Se al momento dell'esportazione non sono usati né Path né !INC, Yable userà automaticamente l'opzione Path. Problemi del Rendering: Talvolta, usando diversi file, Yable incorre in qualche problema e può mischiare gli oggetti creati in un rendering precedente. In questo caso è utile usare il file singolo, che viene sicuramente sovrascritto ogni volta, o cancellare i vecchi XML.

Il Pulsante Anim fa sì che vengano esportati diversi XML per ciascun fotogramma [frame] della scena di Blender. Una volta ottenuti i fotogrammi dal rendering si possono comporre in un'animazione usando l'Editor di Sequenze di blender. Il pulsante Anim implica anche la pressione del pulsante Fr (frame), questo accoda al nome scelto per l'XML e le immagini anche un suffisso numerico che indica il fotogramma del rendering. Tutti gli XML vengono salvati in una subdirectory separata chiamata come il file blender col suffisso _MOVIE. Un esempio: Si supponga che YABLEROOT sia C:/bar/ e si stia lavorando col file robot.blend, quando si preme Export, Yable creerà, prima di tutto, una cartella C:/bar/robot/; quindi, se si è usata l'opzione Path, all'interno di tale directory verrà creato un file XML principale (chiamato robot.xml) e due sotto-cartelle: Materials e Meshes, da cui YafRay, leggendo i percorsi in robot.xml, disegnerà i dati per i materiali e gli oggetti. Nel caso in cui si sceglie di usare il pulsante !INC, non verrà creata alcuna cartella in C:/bar/robot/, ma solo un unico file robot.xml, che contiene tutti i dati. Infine, se è stato utilizzato il pulsante Anim, verrà creata un'altra cartella, C:/foo/robot/robot_MOVIE/ contenenti tanti XML robot.001.xml, robot.002.xml, robot.003.xml,... quanti sono i fotogrammi [frame] dell'animazione. Si noti che se i file dell'animazione si ottengono con l'opzione Path, sarà necessario copiare le cartelle Meshes e Materials nella cartella robot_MOVIE. Se l'animazione non include trasformazioni o deformazioni [morphing] (come un esempio RVK), è sicuro lasciare disattivato il pulsante Update Mesh. Altrimenti per ogni fotogramma esportato verrà esportata anche ogni mesh della scena.

Gli ultimi tre pulsanti sono GZ, Time, e alphaTGA: il primo consente la creazione di files gzipped, il secondo fa apparire il tempo impiegato dal rendering sulla console YafRay ed il terzo modifica l'XML in modo che YafRay salvi le immagini TGA col canale alfa. •

Antialiasing setting (Figura 27-3#13) - Il Pulsante Numerico AAP indica il numero di passaggi dell'anti-scalettatura [antialiasing]; mettendolo uguale a zero indica nessun antialias. AAMS regola il numero di campionamenti da usarsi per ogni passaggio AA. AAPW riadatta il parametro dell'ampiezza del pixel, ossia la sovrapposizione dei pixel; l'intervallo varia tra 0 e 2, ed usando valori alti, si può ottenere una maggiore omogeneità, anche se talvolta è troppo accentuata. AAT stabilisce il valore della soglia (AA_threshold) oltre cui il pixel verrà elaborato dall'anti-scalettatura [antialiasing]: il valore può variare tra 0 (vengono elaborati tutti i punti) ed 1 (non viene elaborato nessun punto). CPU indica, se ci sono più CPU, quante se ne dovranno usare per il rendering.

Impostazione del Materiale Il secondo pannello della GUI contiene le impostazioni del Materiale [Material Settings]. Qui è possibile assegnare ad ogni oggetto il materiale che verrà usato nel rendering di YafRay. I Materiali assegnati con Yable ed i materiali di Blender sono due cose diverse: lo script estrae dalla scena solo alcuni valori, come le coordinate UV ed il colore diffuso. Quest'ultimo solo su richiesta dell'utente. Il resto è tutto indipendente; da questo punto di vista Yable è una specie di laboratorio: non solo esporta passivamente la scena, ma consente di studiare ed applicare dei nuovi materiali. Una volta selezionato un oggetto si deve premere il Pulsante Get Selected: appariranno dei nuovi pulsanti contenenti le impostazioni di YafRay se l'Oggetto ne aveva già, o altrimenti vuoti (Figura 27-12).

Figura 27-12. I Pulsanti del Materiale.



Shader Type (Figura 27-12#14) - Questo pulsante permette di scegliere il Tipo di Materiale di Ombreggiatura [Material Shader] da applicare. Lo shader [ombreggiatore] Constant è il più semplice, caratterizzato dai soli Pulsanti Numerici Red, Green e Blu . Il Crafter è un caso diverso: è un'interfaccia usata per caricare lo shader Crafter, che è un programma a parte per la composizione visuale dei materiali. Il Generic è il materiale più versatile, ed include anche le caratteristiche degli altri, quindi lo si descriverà in dettaglio, usandolo come un paradigma per la comprensione generale.



Object Attributes (Figura 27-12#14) - Premendo questo pulsante appaiono dei nuovi pulsanti (Figura 27-12 sulla destra). Questi sono caratteristiche importantissime, collegate all'Oggetto e non al Materiale stesso. Il Cast Shadow indica se l'oggetto proietta ombre o no. Il pulsante Caustic IOR consente il calcolo delle caustiche [caustics] per i raggi di luce che passeranno attraverso l'oggetto; questi verranno deflessi secondo il valore dell'indice di rifrazione indicato dal Pulsante Numerico CausIOR. Valori alti di IOR producono caustiche più nette (si pensi, per averne un'idea, alle lenti che concentrano i raggi solari in un punto). I pulsanti Receive Radio e Emit Radio, se premuti, obbligheranno l'oggetto a partecipare al calcolo dell'illuminazione globale, ricevendo e ri-emettendo energia. Il Pulsante Numerico Caustic Tcolor consente di indicare il colore trasmesso, che è il colore assunto dalla luce che passa attraverso L'Oggetto. Il Pulsante Numerico Caustic Rcolor, d'altra parte, si riferisce alla luce riflessa dall'Oggetto. Nota: Si noti che anche se si imposta correttamente un materiale, esso parteciperà agli effetti delle caustiche e della radiosità solo se è illuminato con luci appropriate, come la Luce Path o la Luce Photon.



Diffuse Colour (Figura 27-12#16) - È il colore base e corrisponde al Colore Diffuso nei materiali Blender. Il pulsante Bl affianco viene usato per prendere i valori RGB direttamente dal Materiale Blender. Premendo il pulsante Add Specular Color appaiono dei nuovi pulsanti simili a quelli appena visti, usati per impostare il colore speculare. Anche in questo caso il significato di questo Colore è lo stesso di quello di Blender.



Colori Reflection e Transmission (Figura 27-12#17 e #18) - È possibile impostare i colori di Riflessione e Trasparenza del materiale. Da notare che anche la trasparenza viene impostata usando i Pulsanti Numerici RGB per definire un Colore, non solo un semplice valore "alfa". Il parametro Transmit non decide il grado di trasparenza, ma solo quale colore della luce passa attraverso il (o venga bloccato dal) materiale. Per fare qualche esempio, usando il colore nero si vuole che nessun colore attraversi il materiale usando quello rosso, si vuole che l'oggetto sia trasparente solo per la componente rossa della luce, usando il bianco consentiamo che passi tutta la luce. Premendo anche i pulsanti Refl2 e Transm2 che appaiono si può (e vengono creati dei nuovi Pulsanti RGB) definire un diverso comportamento del materiale quando viene sfiorato dalla luce incidente.



Hardness, Index of Refraction (Figura 27-12#19) - Il parametro hard gestisce la nitidezza dei riflessi [highlights] speculari esattamente come in Blender. L'indice di rifrazione IOR è fondamentale negli oggetti trasparenti, e viene usato per calcolare la deviazione dei raggi di luce che incrociano il materiale. Come risultato di tale effetto, i corpi immersi in un mezzo trasparente appaiono distorti (si pensi ad un remo immerso nell'acqua limpida). La Tabella 27-1 mostra degli IOR di materiali comuni: Tabella 27-1. Campioni di IOR Materiale

IOR

Vuoto

1.0

Materiale

IOR

Aria

1.00029

Ghiaccio

1.31

Acqua (a 20°C)

1.33

Alcol Etilico

1.36

Glicerina

1.473

Vetro

1.52

Zaffiro

1.77

Diamante

2.417



Get Selected (Figura 27-12#20) - L'Acquisire la Selezione , da premere ogni volta dopo aver selezionato l'oggetto e prima di cominciare a modificare il materiale.



Get Selected, Loading e saving the materials (Figura 27-12#21) - I pulsanti Load Material e Save Material consentono di salvare le impostazioni del materiale e di richiamarli rapidamente. A ciascun materiale può essere dato un nome.



Preview of the material, autosmooth e modulators (Figura 27-12#22) - Il Pulsante AutoSmooth viene usato per regolare l'apparenza della superficie. Premendolo appare un altro Pulsante Numerico che regola l'angolo al di sotto del quale lo spigolo delle due facce è considerato liscio, esattamente come in Blender. Il pulsante Mat preview crea un'anteprima del materiale usando una scena campione. Il tga viene salvata nella directory corrente (per esempio, sotto Windows, viene salvata nella cartella in cui risiede l'eseguibile di Blender). Il pulsante phlightprv indica "Photon Light Preview" e viene usato per porre una Luce fotonica nell'anteprima dei materiali. Il Pulsante Modulators consente l'accesso ad un pannello separato per la composizione di ombreggiatori [shaders] avanzati formati da livelli sovrapposti. Ogni livello può essere una texture immagine o procedurale. Ovviamente è possibile impostare la modalità in cui gli strati devono essere mischiati ed anche la percentuale di trasparenza. Il pannello all'inizio si riferisce ai modulatori di default, che vengono usati automaticamente se l'Oggetto ha coordinate UV ed è mappato con un'immagine in Blender. Sfortunatamente, a causa di un bug, queste formulazioni non vengono mantenute da Yable, che continua ad usare le impostazioni di default. D'altra parte tutti i successivi livelli di modulatori che sono aggiunti funzionano correttamente. Per aggiungere un nuovo componente è sufficiente cliccare sul pulsante Others, e scegliere il tipo di modulatore che si vuole. In Figura 27-13 si vede (partendo dall'alto a sinistra, in senso orario) il pannello principale, il pannello che aggiunge nuovi membri, il menù Others, prima e dopo l'aggiunta del nuovo membro: Figura 27-13. I Modulatori del Materiale.

È possibile aggiungere un livello Image, un livello Clouds ed uno Marble. La prima cosa da fare è assegnare un nome al modulatore creato, per fare questo sarà sufficiente scrivere qualcosa di significativo al posto di GIVE_ME_A_NAME .

Se il Modulatore è un'immagine è necessario inserire il nome dell'immagine stessa: solo il nome e l'estensione, senza il path, che è stato definito prima una volta per tutte! Il parametro si riferisce, per default, alla mappatura bump, che è l'effetto rilievo che sarà dato all'oggetto: Usando valori positivi si sollevano le zone più chiare e si abbassano le più scure. Le varie dimensioni si riferiscono al ridimensionamento delle coordinate UV(i tre assi X, Y, possono essere scalati indipendentemente, o tutti assieme) mentre i vari pulsanti Col, Spec, Ref, Hard e Trans hanno il significato solito ed indicano quali caratteristiche, ed in che quantità, sia modificato. Alla fine delle impostazioni si preme il pulsante Ok! per tornare al pannello principale Material. Alla fine della procedura il modulatore appena aggiunto starà nel Menù e può essere selezionato o cancellato in ogni momento, usando il pulsante Del che appare appresso a Ok! i pulsanti Canc e Back. Nota: Il solo tipo di mappatura supportato finora è il tipo UV. Esso segue quello che l'oggetto deve possedere queste coordinate, per le quali si rispedisce alle Sezioni di pertinenza di questa Guida. Se tutto viene eseguito correttamente, Yable esporterà automaticamente (senza l'aggiunta di un modulatore tipo immagine) sia le coordinate UV che l'immagine utilizzata. Riguardo a tale immagine si deve porre attenzione a questo: Yable non usa l'immagine caricata nella texture dei materiali di Blender, ma quella caricata nella Finestra Immagine (che è quella su cui vengono effettuati i calcoli per il posizionamento UV). Ovviamente, le immagini devono tutte essere nella solita cartella indicata all'avvio dello script.

L'inserimento di Modulatori Clouds (Nubi) e Marble (Marmo) è simile a quello per le Immagini, eccetto che questi pannelli hanno un paio di aggiunte, auto esplicative, specifiche per questi due tipi di texture procedurali. •

Assign (Figura 27-12#23) - Il pulsante Assign mette a punto il materiale e lo assegna all'oggetto. Non ci si dimentichi di questo! Il pulsante Assign All consente di assegnare le impostazioni a più oggetti selezionati. Nota: Salvare un materiale ed Assegnare un materiale sono due azioni separate. Se lo si assegna l'Oggetto acquisisce il materiale, se lo si salva, sarà disponibile in seguito.

Impostazioni delle Luci L'impostazione delle luci in Yable viene fatta con le stesse modalità delle assegnazioni dei materiali: viene selezionata una luce in Blender, si preme Get Selected e le caratteristiche che si vogliono esportare in YafRay vengono scelte ed assegnate definitivamente con Assign. Il tipo di luce usata nella scena di Blender non ha alcuna relazione col tipo di luce che sarà esportato: i soli parametri che saranno sicuramente conservati sono le coordinate posizionali della luce, tutto il resto, inclusa la direzione di puntamento, possono essere assegnate indipendentemente con Yable. In Figura 27-14 c'è rappresentato un punto luce con i pulsanti Diffuse e Caustic attivati, quindi per avere un esempio che include la gran parte delle opzioni disponibili. Figura 27-14. Il Pannello della GUI per la Luce.



Light Types (Figura 27-12#24) - Il menù consente di scegliere tra vari tipi di luce diretta: Point Light, Spot Ligth, Soft

Light, Area Light e Photon Light. Secondo il tipo di luce variano le opzioni immediatamente sotto. La Figura 27-15 le

mostra tutte. Figura 27-15. Opzioni della Luce Diretta.

Il Punto luce è una sorgente puntiforme che emette luce in tutte le direzioni. La potenza della lampada viene scelta col Pulsante Numerico Power, mentre il suo colore viene impostato con i Pulsanti Numerici RGB ed è possibile scegliere se deve proiettare o meno ombre col Pulsante Cast Shadow. La luce Spot è molto simile al faretto di Blender: i parametri Blend e Falloff hanno lo stesso significato, mentre Width rappresenta l'ampiezza angolare del cono di luce. Halo indica la presenza di luminescenza(luce volumetrica), premendolo si aggiungono alcuni nuovi pulsanti: tre Pulsanti Numerici per il colore dell'Halo, Res = risoluzione della mappa dell'ombra, Density = quantità di nebbia contenuta nella luminescenza [halo], Blur = foschia applicata alla mappa dell'ombra, Samples = numero di campioni utilizzati nel rendering.

La direzione dello Spot viene data tramite un bersaglio. Si deve premere il pulsante Select Target , selezionare un Oggetto da usare come target del faretto nella scena di Blender ed infine premere il Pulsante Confirm per completare l'operazione. Sia il Punto Luce che lo Spot (faretto) diminuiscono seguendo la legge fisica dell'inverso del quadrato della distanza. La luce Soft è simile al Punto luce, con la differenza ce produce delle ombre sfumate [soft]. Le ombre che sembrano essere troppo "nette" sono uno degli svantaggi dei motori di raytracing, ma questo tipo di luce, usando una mappa di ombra, sicuramente risolve il problema. Oltre i soliti parametri, il parametro Radius, definisce l'ampiezza della transizione tra ombra e luce. Il parametro Bias controlla la prossimità dell'ombra all'oggetto che la produce, mentre il parametro Resol controlla la risoluzione della mappa dell'ombra: più è alto questo parametro migliore è l'accuratezza dell'ombra. La luce Sun simula le caratteristiche della luce solare, essa sembra non attenuarsi con l'aumentare della distanza (questa è un'impressione dovuta all'enorme potenza del sole). Essa, però, è una luce molto semplice, in cui si può solo impostare il colore, e quindi l'intensità resta costante. La luce Area è una sorgente estremamente luminosa. Mentre tutte quelle già viste emettono luce da un punto (in realtà esso corrisponde, per esempio, al piccolo filamento di una lampadina), l'area luminosa viene prodotta da un'intera superficie. YafRay ammette anche superfici rettangolari ma Yable è limitato ad usare solo quadrati. I parametri specifici sono Samples, Psamples e Side, essi sono il numero dei campionamenti generali, il numero dei campionamenti nella zona di penombra, e la lunghezza del lato del quadrato luminoso. •

Photon Lights (Diffuse e Caustic) (Figura 27-12#25 e #26) - La Luce di Fotoni è un tipo di lampada molto particolare: funziona in modo molto realistico, riferendosi alla teoria della luce composta da un fascio li fotoni. Questi fotoni devono letteralmente essere "sparati" verso gli Oggetti, in modo da calcolare il loro comportamento quando viaggiano attraverso corpi trasparenti o diffusi da quelli opachi. È un calcolo molto complesso, per cui non è sempre desiderabile che venga eseguito su tutti gli elementi della scena; perciò lo si può specificare materiale per materiale e oggetto per oggetto tramite i parametri Receive ed Emit. Diffuse light: Abilitando questo pulsante verrà aggiunta alla scena esportata una Luce di Fotoni di tipo Diffusa, sovrapponendo la corrispondente luce Diretta. I fotoni di questa luce hanno la capacità di essere riflessi su una superficie diffusa. In questo modo verrà aggiunto al rendering il calcolo della radiosità a 'perdita di colore', per creare un effetto realistico dell'Illuminazione Globale. Ciò può essere fatto anche con la Luce Path, ma una Luce di Fotoni ben regolata è più veloce. Caustic light: Le caustiche sono concentrazioni di luce provocate dalla rifrazione di un oggetto trasparente. La Luce Fotonica di tipo Caustica consente di tenere correttamente in conto tale fenomeno. Prima di andare avanti, è necessario dire che se si bersagliano oggetti con un materiale inadeguato, questa luce non genera alcun effetto. Infatti la scena, per avere caustiche, deve contenere una sorgente di luce A, un oggetto opaco C ricevente le caustiche ed un oggetto trasparente B posto tra questi due per generare the le caustiche (Figura 27-16).

Figura 27-16. Impostazione delle Caustiche.



A deve essere una Luce Fotonica Caustica;



B deve avere un Materiale in grado di produrre Caustiche (esponendo almeno l'assegnazione di almeno Caustic IOR o Caustic Tcolor);



C deve avere un materiale in grado di ricevere gli effetti della radiosità (per questo il materiale di default può andar bene, dato che tale materiale esporta un semplice shader (ombreggiatore) che, senza indicare i valori ricevuti ed emessi della radiosità lasciano la scelta a YafRay, che di solito tiene tali valori attivati. Se, invece, viene usato un materiale generico, bisogna ricordare di attivare il Pulsante Interruttore Reiceve Radio).

Le Luci Fotoniche di tipo Caustico e Diffusa hanno gli stessi parametri. Il pulsante freccia viene usato per imporre lo stesso valore a più di una variabile (per esempio lo stesso colore). Il pulsante Photons imposta il numero di fotoni che verranno sparati dalla lampada, nelle scene comuni qualche migliaio di fotoni è sufficiente ma, per ottenere un risultato migliore in termini di qualità è raccomandato impostare a 500000 fotoni o più. Il pulsante Depth definisce il numero di rimbalzi/trasmissioni che i fotoni devono effettuare prima che il ray tracing di YafRay smetta di gestirli, ed è un dato particolarmente importante, per lo più nel calcolo dell'Illuminazione Globale. 3 è un buon valore per dei risultati accettabili. Search indica il numero di fotoni utilizzabili per illuminare un singolo punto della superficie dell'Oggetto, i valori più alti vengono usati per prendere in considerazione anche zone che ricevono pochi fotoni, con un effetto ombreggiato dell'illuminazione, mentre valori bassi vengono usati per dare luce solo a punti veramente colpiti completamente da fotoni, con confini più definiti e "duri". Angle è l'angolo del cono di proiezione con cui viene sparato il fotone: valori alti vengono usati per coprire ampie zone, ma con attenuazione della potenza quando ci si allontana dal centro. Fixed è l'abbreviazione di fixedradius (raggio fisso), e rappresenta il raggio entro cui il numero di fotoni definiti da Search devono ricadere per considerare illuminato il punto della superficie. cluster è la porzione più piccola di superficie illuminata in grado di contenere un fotone. Più è alto questo numero più è ampio il gruppo [cluster] e, di conseguenza, meno definito è l'effetto dell'illuminazione. QMC è, ancora, il metodo Quasi-MonteCarlo.

Un dettagliato esempio Yable A partire da Blender v2.31 Figura 27-17. Impostazione delle Caustiche.

Quello che si vede in Figura 27-17 è un'immagine completamente realizzata da Xavier 'richie' Ligey, modellata con Blender ed il rendering effettuato con YafRay. L'export è stato fatto con Yable. Non ci sono affatto luci nella scena, solo una Luce Hemi con un HDRI in sottofondo. Xavier è stato così gentile da fornirci le schermate delle impostazioni usate in Yable. La Figura 27-18 mostra la vernice dell'auto, la Figura 27-19 mostra il materiale cromato e la Figura 27-20 mostra il materiale del vetro. Figura 27-18. Vernice dell'auto.

Figura 27-19. Le parti cromate.

Figura 27-20. Parabrezza e gli altri vetri.

Un ringraziamento speciale va ad Alessandro Braccili, che mi ha aiutato nella comprensione di Yable/YafRay, e nella scrittura di questo capitolo.

Capitolo 28. YafRay di Alejandro Conty Estévez, Chris Williamson, Johnny Matthews.

Introduzione A partire da Blender v2.31 di Alejandro Conty Estévez, Nel periodo in cui ho cominciato a lavorare con YafRay, ho controllato qualche exporter come BMRT e Lightflow. Mentre scrivevo del codice per esportare ed ombreggiare, ho cominciato ad interessarmi di come si potesse scrivere un raytracer. Quindi quando il periodo degli esami era in pieno andirivieni, ho cominciato ad annoiarmi (può apparire strano) ed iniziato a scrivere la struttura del programma principale. Appena effettuato qualche rendering di prova, ho messo tutto via per un anno, fino all'estate successiva. Quindi ho scritto il caricatore XML e YafRay, chiamato "noname" per il momento, iniziando ad essere un programma utilizzabile. Alfredo si è unito nello sviluppo quasi nello stesso periodo. Questo è stato di grande aiuto. Un mese dopo molte delle cose necessarie, come l'accelerazione, erano finite ed Alfredo ha portato molto del suo codice in YafRay come la famosa Luce Hemi. Quindi Luis Fernando Ruiz, un mio amico e compagno di studi si è unito per darci un buon sito web. Quindi abbiamo detto addio al sito web nato come semplice testo. Abbiamo anche avuto la possibilità di vedere i rendering di YafRay su diversi computer concorrenti quando Luciano Campal ha scritto il suo pezzo per rendere YafRay in grado di lavorare in modo distribuito grazie a Mosix. È stato molto eccitante quando abbiamo avuto accesso ad una sala con 20 computer per le prove. Le cose hanno iniziato ad apparire promettenti quando Andrea è venuto con Yable. Uno script di esportazione sperimentale per un motore di rendering sperimentale da cui ne è risultato in un lungo thread di belle immagini su elYsiun. Abbiamo visto le prime belle immagini fatte con Blender e col rendering effettuato con YafRay grazie a lui. Non ci aspettavamo questo successo. Né Alfredo né me. Ovviamente è stato il grande script di esportazione che ha contagiato le persone, esportando facilmente da Blender ad un raytracer. Siamo entusiasti di tutto il supporto fornito dalla comunità. Resto impressionato da quello che la gente può fare con un semplice strumento come questo. Ora si sono unite molte persone e ci aiutano. Cominciamo ad avere una buona sezione di documentazione e risorse, la maggior parte delle quali sono state scritte da Chris Williamson. Fondamentalmente, è quello che si vedrà in questo capitolo. Ma non è la sola. YafRay è diventato molto facile da usare da Blender grazie a Johnny Matthews. Penso che abbia passato ogni minuto a scri-

vere Extractor: un nuovo script di esportazione per Blender. Esso rende l'esportazione molto più semplice prendendo tutti i dati direttamente da Blender senza quasi alcuna interazione. L'attuale potenza di Extractor ed il suo rapido sviluppo indicano che può essere il futuro schema ufficiale di esportazione da Blender. Ad ogni modo, sono stati fatti degli sforzi per scrivere un exporter incorporato in Blender. Alfredo ha contribuito con un sacco di codice per la compatibilità con l'ombreggiatura [shading] e fatto qualche esperimento. Quindi pare che sarà in grado di confrontare sia la soluzione Python che quella incorporata nello stesso momento. YafRay è iniziato come un esperimento e resta tale. Non è finito e mancano molte funzionalità se lo si confronta con gli altri motori di rendering. Ho sempre pensato che non fosse buono abbastanza e che è difficile da immaginare cosa ci veda la gente. Dato che alle persone per qualche ragione piace, vogliamo veramente convertirlo in un motore di rendering completo che meriti di essere chiamato "renderer". Ci vorrà un po' di tempo per avere una codifica decente. Vogliamo aggiungere quello che manca in YafRay (particelle, effetti, ecc.) e migliorare l'Illuminazione Globale. Ma in questo momento su YafRay stiamo codificando solo io e Alfredo De Greef, quindi per mantenere un accettabile andamento dello sviluppo, dovremmo avere più gente per il codice, più sviluppatori. Spero che questo avvenga prima o poi. Infine, voglio ringraziare tutta la comunità di Blender che ha supportato questo progetto. Tutte quelle belle immagini sono quelle che veramente portano le persone verso YafRay. Allo stesso modo, ringrazio tutte le persone che forniscono idee ed opinioni sui forum per migliorare YafRay, ed a Juan David G. Cobas per il suo apprezzatissimo supporto matematico.

Installazione A partire da Blender v2.31 YafRay è disponibile per Linux, Windows e Mac OSX. Si deve scaricare il pacchetto appropriato al proprio Sistema Operativo da www.yafray.org (http://www.yafray.org).

YafRay per Windows Si fa girare il programma di installazione. Questo creerà una directory chiamata "yafray" sul proprio drive c:\. Tale directory contiene l'eseguibile yafray.exe ed il file della grammatica usato dal caricatore [loader]. Inoltre l'installatore copia tre dll nella directory di sistema di Windows. Queste dll sono per il supporto di Cygwin. Infine, un file batch (yafray.bat) viene copiato nella directory di Windows (si deve avere questo file nel PATH). Far girare YafRay è semplice. basta aprire una finestra MS-DOS, andare nella directory di lavoro e digitare "yafray file.xml" o "yafray file.xml.gz". Per esempio, se si vuol lavorare in e:\raytracing\work su un file XML che risiede in C:\Docs\xmls chiamato test.xml, su apre una finestra MS-DOS e: c:\windows\> c:\windows\> e: e:> cd e:\raytracing\work e:\raytracing\work> yafray c:\Docs\xmls\test.xml

Verranno creati uno o più file targa, il prodotto del rendering, in e:\raytracing\work directory .

YafRay per Mac OSX Si espande il tarball. (l'expander StuffIt può espandere anche i tarball). Doppio click sul pacchetto espanso per far avviare l'installer. YafRay dev'essere installato sul device Root (quello su cui è installato MacOSX), non si può scegliere un altro disco. I file installati e le posizioni sono:/usr/sbin/yafray /usr/etc/gram.yafray . L'utilizzo di YafRay non differisce molto dagli altri tre Sistemi Operativi, quindi ci si può riferire alla sezione precedente. YafRay ha solo 2 file '/usr/sbin/yafray ' e '/usr/etc/gram.yafray'. Ma un utente comune di solito non può accedere a queste directory con la GUI di Mac OSX, quindi il OS X Package Manager (OSXPM) può aiutare nel disinstallare il pacchetto dal disco.

YafRay su Linux Espansione del tarball. tar xvzf yafray-#.#.#.tar.gz

Si va nella directory appena creata e la si configura per la propria macchina. ./configure

Ci si assicuri che sia abilitato il supporto per zlib e jpeg. Altrimenti, bisogna installare i pacchetti di sviluppo per libjpeg e libgz (per questo si controlli la distribuzione). Se ne effettua il Build! make

Se questo fallisce si provi cd src make yafray

L'eseguibile è yafray ed è un programma a linea di comando, il cui uso è analogo a quello descritto nella sezione di "Windows".

Una panoramica del Linguaggio di Descrizione della Scena A partire da Blender v2.31 Un file YafRay di descrizione della Scena è un file XML conformato per le definizioni di tale sezione. Il motore del rendering effettua l'analisi sintattica [parsing] dell'XML dall'alto verso il basso. In questo modo se il Block1 viene referenziato prima del Block2, deve essere definito prima Block2 (deve stare sopra nell'XML). <scene> <shader type = "generic" name = "Default"> <specular r="0.000000" g="0.000000" b="0.000000" /> <mesh>

"0.000000" "0.000000" "0.000000" "1.000000"



<save_alpha value="on"/>

Non ci si preoccupi! Non è complicato come appare. Ci si concentri sui tag evidenziati in grassetto. I tag funzionano come i tag HTML (anche come parentesi angolari) ciascun tag deve avere un tag opposto di chiusura. Due tag assieme, con le impostazioni all'interno, è un blocco. Un blocco può dire al motore del rendering come ombreggiare qualcosa, quando grande dev'essere l'immagine del rendering, a cosa assomiglia la forma di un oggetto, dove è posizionato, ecc. Nell'esempio sopra, viene prima definito un ombreggiatore [shader], quindi un oggetto (che è avvolto nella sua Matrice di Trasformazione), quindi viene aggiunta una luce ed una telecamera, un filtro, uno sfondo ed infine le impostazione per il rendering (si noti il tag di chiusura).

Shaders (Ombreggiatori) A partire da Blender v2.31

Ombreggiatori base Questi blocchi di ombreggiatori determinano la Funzione di Riflettività Bi-Direzionale [BiDirectional Reflectivity Function -BDRF] o Modello di Illuminazione con cui l'oggetto viene ombreggiato. Ciascun tipo di ombreggiatore base ha vari input che possono ricevere gli output da altri blocchi di ombreggiatori, alterando le caratteristiche della superficie.

Constant Un ombreggiatore uniformemente costante <shader type = "constant" name = "Sphere.mat">

Generic Un ombreggiatore più versatile <shader type = "generic" name = "Sphere.mat"> <specular r="1.000000" g="1.000000" b="1.000000" />

<min_refle value = "0.200000"/>


Phong Il classico ombreggiatore di Phong <shader type="phong" name="phongshader"> <environment value="fresnel"/>

Procedurali Questi blocchi di Ombreggiatori creano varie forme [pattern] procedurali con valori in linea. Non è necessario alcun input.

Marble (Marmo) <shader type="marble" name="Marble" size="4.00" depth="4" hard="off" turbulence="5" sharpness="5.00"> • size:

Dimensione dell'effetto marmo, numeri bassi = meno vene, numeri alti = più venature.

• depth:

Controlla il numero di iterazioni (numero di frequenze di rumore aggiunte al turbinio).

• hard:

Controlla il tipo di rumore, quando è posto a 'off' il rumore varia fluidamente mentre se a 'on' appariranno cambi più bruschi di colore.

• turbulence : • sharpness:

Controlla la quantità di turbolenza del rumore.

Controlla la nitidezza del colore 1 rispetto al colore 2, più è alto questo valore, più sottile è la banda del colore 1. Questo effetto è simile agli interruttori soft/sharp/sharper della texture marmo [marble] di Blender, la differenza è che qui è più controllabile. Il valore dev'essere almeno 1 o più alto.

Wood (Legno) <shader type="wood" name="Wood" size="5.00" depth="5" hard="off" turbulence="40"> • size:

La dimensione dell'effetto legno, numeri bassi = meno venature del legno, numeri alti = più venature del legno.

• depth:

Controlla il numero di iterazioni (numero di frequenze di rumore aggiunte al turbinio).

• hard:

Controlla il tipo di rumore, quando è posto a 'off' il rumore varia fluidamente mentre se a 'on' appariranno cambi più bruschi di colore.

• turbulence :

Controlla la quantità di turbolenza del rumore.

• ringscale_x :

Controlla l'ampiezza degli anelli del legno nell'asse x.

• ringscale_y :

Controlla l'ampiezza degli anelli del legno nell'asse y.

Clouds (Nubi) <shader type="clouds" name="Clouds" size="5.000" depth="3"> • size:

Dimensione dell'effetto nube [cloud].

• depth:

Controlla il numero di iterazioni (numero di frequenze di rumore aggiunte al turbinio).

Meta Ombreggiatori Questi consentono la modifica di altri ombreggiatori e la costruzione di "catene" di ombreggiatori per costruirne uno più complesso.

Blocco di ombreggiatura Color2float Prende un colore in ingresso ed emette un float <shader type="color2float" name="c2f" input="input" > • input:

L'ingresso (il colore) da convertire in virgola mobile [float].

Blocco di ombreggiatura Colorband Costruisce un colore da un valore in ingresso ed un gradiente. Un numero illimitato di modulatori aggiungono nodi al gradiente. L'ombreggiatore interpola i valori dei colori dei nodi al valore dato in ingresso. Nell'esempio sotto, un valore di ingresso di 0.12 genererà un colore tra il primo ed il secondo nodo, che sono nero ed arancione. Quindi ne risulterà un arancione scuro. <shader type="colorband" name="Colorband" > <modulator value="0.00">

b="0.00" b="0.00" b="0.00" b="1.00"

/> /> /> />

Blocco Conetrace Può essere usato per ottenere le riflessioni o il colore trasmesso da un ambiente. Ma può essere usato anche per ottenere quelli sfocati. <shader type="conetrace" name="env1" reflect="on/off" angle="number" samples="number" IOR="number"> • reflect: • angle:

L'angolo del cono (attorno al raggio) da campionare, 0 per delle semplici riflessioni/rifrazioni nette.

• samples: • IOR:

'on' rifletterà il raggio, 'off' rifrangerà il raggio. Numero di campioni da prelevare nel cono.

Index di Rifrazione [Index of Refraction].

• color:

Color da filtrare per la luce in arrivo.

Sfere con vari livelli di riflessioni e rifrazioni sfocate ed uno sfondo HDRI.

Blocco di ombreggiatura Coords Produce un float in base alle coordinate dell'oggetto. <shader type="coords" name="PosY" coord="Y" > • coord:

Coordinata da usare, X, Y o Z.

Ombreggiatore Clouds ed ombreggiatore Coords (z) in un ombreggiatore moltiplicato.

Blocco di ombreggiatura Float2color Prende un float in ingresso e produce un colore. <shader type="float2color" name="f2c" input="input" > • input:

Input (float) da convertire in colore.

Blocco di ombreggiatura Fresnel Può essere usato per una riflessione/rifrazione realistica basata sull'angolo di incidenza. <shader type="fresnel" name="fresnel1" reflected="..." transmitted="..." IOR="number" min_refle="number"> • reflected:

L'ingresso da usare come colore riflesso (di solito l'uscita del conetrace).

• transmitted : • IOR:

L'ingresso da usare come colore trasmesso (di solito un altra uscita di un conetrace).

Indice di rifrazione.

• min_refle:

Quantità minima di riflessione.

Miscelazione di blocchi fresnel e conetrace.

Blocco di ombreggiatura HSV Costruisce un colore da qualsiasi ingresso o valori in linea per le componenti HSV. <shader type="HSV" inputhue="..." inputsaturation="..." inputvalue="..." hue="number" saturation="number" value="number" >

Come nel colore RGB, se viene omesso l'ingresso, vengono usati i valori in linea tinta/saturazione/valore [hue/saturation/value].

Blocco di ombreggiatura Image Assegna un'immagine bitmap all'oggetto secondo le sue coordinate UV (Colori di output). <shader type = "image" name = "bitmap"> • filename:

Path e nome della bitmap da applicare.

Blocco di ombreggiatura Mix Miscela 2 ingressi in modi diversi, a seconda del modo usato. <shader type="mix" name="mixMode" input1="Colorband0" input2="Colorband" mode="add"> • input1:

Primo ingresso da miscelare.

• input2:

Secondo ingresso da miscelare.

• mode:

possibile modo di miscelazione (nota, qualche modalità produce diversi risultati a seconda dell'ordine degli ingressi).

Questi sono: Add (addizione), Average (media), Color Burn (colore bruciato), Color Dodge, Darken, Difference, Exclusion, Freeze, Hard Light, Lighten, Multiply, Negation, Overlay, Reflect, Screen, Soft light, Stamp, Subtractive.

Blocco di ombreggiatura Multiply Moltiplica (float) valori in ingresso o un valore in ingresso per una costante, produce un float. <shader type="mul" name="Multiply" input1="input" input2="null" value="5.30">

• input1:

Primo ingresso da moltiplicare.

• input2:

Secondo ingresso da moltiplicare (se nullo, input1viene moltiplicato per il valore impostato in linea 'value').

• value:

Valore da moltiplicare se input2 e nullo.

Ombreggiatore Multiplo con wood (legno) e marble (marmo) come ingresso.

Blocco di ombreggiatura RGB Costruisce un colore o da un ingresso qualsiasi o un valore in linea per le componenti RGB. <shader type="RGB" inputred="..." inputgreen="..." inputblue="..." >

Se uno degli ingressi viene omesso, allora come ingresso viene usato il colore di default dato dal tag "color".

Blocco di ombreggiatura Sin (Seno) Genera valori float in base all'onda sinusoidale e all'input. <shader type="sin" name="Sin" input="input" >

L'ombreggiatore Wood (Legno) è l'ingresso per Sin, che a sua volta è l'ingresso per il canale Hue [Tinta] di un ombreggiatore HSV - il valore del colore dell'ombreggiatore phong.

Oggetti per il Rendering A partire da Blender v2.31 YafRay attualmente supporta solo Oggetti Mesh. Un esempio di un semplice piatto piano triangolare è: <mesh autosmooth = "30.0" > <points>



Il tag Transform Il tag Transform definisce la matrice di trasformazione per l'oggetto accluso (posizione, scala e rotazione dal punto di origine del mondo [world]).

Tag object Il tag object definisce la geometria dell'oggetto, esso ha una serie di parametri: • caus_IOR:

Indice di Rifrazione per Fotoni Caustici.

• recv_rad:

Se ricevere o meno radiosità (luce rimbalzata generata dalle Luci Fotoniche [Photon Lights]) ('on' o 'off').

• emit_rad:

Se emettere o meno radiosità ('on' o 'off').

• shadow:

Se proiettare o meno ombre ('on' o 'off').

• caus_tcolor :

Il colore con cui tingere i fotoni trasmessi (colore delle caustiche rifrattive).

• caus_rcolor :

Il colore con cui tingere i fotoni riflessi (il colore delle caustiche riflessive).

Il tag mesh: Il tag chiave all'interno della definizione di un oggetto è il tag mesh, che ne definisce la geometria: • autosmooth :

Angolo limite per l'algoritmo di levigatura [smoothing] (omesso per avere oggetti 'sfaccettati').

All'interno del tag mesh un blocco <points> definisce i vertici della mesh, mentre un blocco definisce le facce triangolari dall'indice dei loro tre vertici.

Luci A partire da Blender v2.31 YafRay fornisce diversi tipi di luci:

Luce Spot Questa è abbastanza simile alla Luce Spot di Blender • size:

Angolo del cono (la metà di quello di Blender!).

• blend • halo: • res:

e beam_falloff: lo stesso che in Blender.

Se proiettare o meno luce volumetrica ed ombre.

Risoluzione della mappa dell'ombra (per adesso solo per ombre volumetriche).

• blur:

Sfocatura [Blur] applicata alle ombre volumetriche nell'intervallo da 0.0 a 1.0.

• fog_density : • samples: • from: • to:

Ammontare della nebbia nella halo.

Numero di campioni da usare per il rendering della halo. Per default lo stesso di res. Più campioni meno rumore.

Posizione della luce.

Bersaglio della luce.

• color: • fog:

Colore della luce.

Colore della luce volumetrica.

Luce Punto [Point] Questa è abbastanza simile alla Lamp di Blender... ma proietta ombre!

• power:

Intensità della luce.

• cast_shadows : • from:

Se proiettare o meno ombre (col raytracing) ('on' o 'off').

Posizione della luce.

• color:

Colore RGB della luce.

Punto luce, con Hemi (il punto bianco rappresenta la posizione della luce).

Luce Sun Questa è ancora simile alla Sun di Blender... ma proietta ombre! • power:

Intensità della luce Sun.

• cast_shadows : • from:

Se proiettare o meno ombre ('on' o 'off').

Posizione della luce (la direzione è automaticamente verso l'origine!)

• color:

Colore della luce.

Luce Sun, con Hemi per fornire qualche ombra diffusa.

Luce Soft • power: • res:

Intensità della luce.

Risoluzione della mappa dell'ombra.

• radius:

Raggio della sfocatura [blur] (tra le aree ombreggiate e non, crea un'apparenza 'soft').

• bias:

L'influenza [Bias] della mappa dell'ombre [shadow map]. La 'vicinanza' dell'ombra all'oggetto, se si hanno ombre che si 'perdono' in aree in cui non dovrebbero, si provi a diminuire il bias dell'ombra.

Luce Area Questa è una luce che viene emessa uniformemente da un quadrilatero • power:

Intensità della luce.

• samples:

I campioni attraverso la superficie dell'area luminosa.

• psamples:

Predizione della penombra (qualità dei bordi delle ombre sfumate [blurred]).

• a, b, c & d:

Posizioni dei 4 angoli del rettangolo che forma l'area luminosa. (Attenzione all'orientamento!)

Area luminosa, con Hemi (il punto bianco rappresenta la posizione della luce).

Luce Path Questo sistema di luce indiretta esegue una 'Illuminazione Globale' prendendo luce dagli oggetti dello sfondo e diffusi. Usa sia un algoritmo di raytracing di Monte Carlo (MC), che un algoritmo di raytracing Quasi Monte Carlo (QMC). Il risultato da ciascun sistema può partecipare al rendering con una Cache di Irradianza [Irradiance Cache]. Dato che l'MC usa un campionamento casuale i risultati possono essere molto rumorosi. Più campioni si prendono meno rumore si vede. Ovviamente ne risulta un allungamento del tempo del rendering. D'altra parte il campionamento QMC produce meno rumore, ma talvolta ne può risultare una disposizione [pattern] percepibile nell'ombreggiatura degli oggetti. Sia il rumore che i patterns possono essere ridotti col Filtro Anti Rumore incorporato in YafRay. La luce Path produrrà degli effetti di radiosità piacevoli. Può anche produrre caustiche, in quanto, dato che i fotoni che producono le caustiche non si concentrano in una specifica direzione come la luce fotonica, i pattern saranno più morbidi a meno che non vengano presi un gran numero di campioni. • power:

L'intensità della luce.

• samples:

Il numero dei campioni da prendere per pixel per avere un'anteprima veloce e grossolana del rendering, si può impostare tale valore basso, quindi alzarlo per il rendering finale.

• depth:

Numero di rimbalzi del raggio per ciascun campione, almeno 2 per avere illuminazione indiretta.

• caus_depth : • use_QMC:

Numero di rimbalzi dei raggi passando attraverso oggetti caustici.

Quando questo è posto a 'on' si userà un campionamento Quasi Monte Carlo.

• cache:

Quando questo è posto a 'on', Yafray eseguirà un pre-passaggio del rendering per generare una cache (memoria) di irradianza.

• cache_size :

La dimensione della griglia nella cache di irradianza. Valori più piccoli indicano un'alta risoluzione della cache di irradianza (e tempi di pre-passaggio più lunghi).

• angle_threshold :

L'angolo tra le normali alla superficie che determina se l'algoritmo di caching considera la superficie 'piatta' o meno, se la variazione della normale della superficie è più alta di questo, l'algoritmo di caching preleva più campioni.

• shadow_threshold :

La distanza minima tra punti campione che un oggetto può avere prima che l'algoritmo prelevi più

campioni.

Uso della Luce Path con Cache L'uso della funzionalità della Cache di Irradianza può essere un difficile, ma i risultati lo meritano, dato che si può solitamente avere la stessa qualità dell'immagine in una frazione del tempo di rendering.

La dimensione della cache è la dimensione della griglia con cui viene suddivisa la scena. Dato che i raggi vengono sparati nella scena, essi intersecano gli oggetti, il punto in cui il raggio interseca l'oggetto ricadrà quindi in uno dei quadrati formati dalla griglia della cache. Nel momento in cui il raggio colpisce tale punto il motore del rendering chiede prima: 1. "Ci sono altri punti campione all'interno di questo quadrato?" Se la risposta è no, il campione viene preso, se ci sono altri campioni nel quadrato si procede con la domanda successiva: 2. "Le normali alla superficie degli altri campioni differiscono dal mio punto corrente?" (l'angolo della differenza è definito da "angle_threshold"). Se la risposta è sì, viene preso un campione, se le normali alla superficie sono tutte le stesse si passa alla domanda successiva: 3. "Il Punto di Intersezione vicino a qualsiasi altro oggetto?" (la soglia della distanza è definita da "shadow_threshold" e la distanza tra il punto di intersezione ed il punto campione esistente funziona separatamente). Se la risposta è sì, vengono presi più campioni, se no, il punto campione viene saltato ed il motore del rendering si sposta sul successivo punto di intersezione. Facendo questo, il motore del rendering cerca le aree dell'immagine che necessitano di più campioni (aree con molti dettagli), ed aree che necessitano di meno campioni (aree con pochi dettagli, come le pareti piatte). Prendere campioni è la parte di tempo consumata dell'Illuminazione Globale, prelevando campioni solo dove è necessario la luce path con cache può produrre immagini fantastiche in un tempo relativamente breve. Conta su qualche regolazione manuale per trovare lo 'sweet spot' (punto dolce) per le impostazioni di ogni scena data. Se la dimensione della cache è troppo piccola, praticamente ogni punto campione verrà comunque preso, come se la risposta alla domanda 1 fosse sempre 'no'. D'altra parte se la dimensione della cache è troppo grande, la distanza tra i punti campione (che ha un ruolo a parte nella determinare se l'oggetto è ritenuto 'vicino') sarà tale che la risposta alla domanda 3 sarà sempre 'sì'. In entrambe queste situazioni risulterò che verranno presi più campioni ed il rendering prenderà più tempo.

Luce Hemi Questo sistema di illuminazione indiretta esegue quello che è comunemente chiamato un 'passo di Occlusione'. Questo produce una rapida luce diffusa nella scena ignorando le proprietà delle superfici degli oggetti (colore) e determinando solo se il punto in questione è in ombra o meno. A causa di ciò, la luce Hemi non produrrà miscelazioni di colore tra gli oggetti (diversamente dalla luce Path). Essa usa o l'algoritmo di raytracing Monte Carlo (MC) o l'algoritmo di raytracing Quasi Monte Carlo (QMC). Dato che l'MC usa campionamenti casuali i risultati possono essere molto rumorosi. Più campioni si prendono meno rumore si vede. Ovviamente ne risulta un allungamento del tempo del rendering. D'altra parte il campionamento QMC produce meno rumore, ma talvolta ne può risultare una disposizione [pattern] percepibile nell'ombreggiatura degli oggetti. Sia il rumore che i patterns possono essere ridotti col Filtro Anti Rumore incorporato in YafRay. La luce Hemi assumerà che la scena è anche illuminata, come se una grande sfera circondasse la scena, illuminandola col colore indicato nel tag 'color'. Se si omette del tutto il tag del colore, la luce Hemi, campionerà lo sfondo del rendering se disponibile (lo si può usare con sfondi HDRI per avere una simulazione realistica veloce per comporre la scena). • power:

Intensità della luce.

• samples:

Numero di campioni da prendere. Samples alto vuol dire un risultato più morbido, ma tempo di rendering più lungo.

• use_QMC:

Quando questo è posto a 'on' si userà un campionamento Quasi Monte Carlo.

• color:

Colore della luce diffusa.

La luce Hemi col valore del colore blu chiaro (modello da www.amazing3d.com).

Luce Fotonica [Photon] Questa è una luce concentrata per produrre effetti di radiosità e caustici. • name:

Nome della Luce Photon.

• power: • mode:

Dimensiona l'effetto della luce fotonica, se deve essere caustica o diffusa.

Imposta la luce fotonica ad essere o diffusa o caustica come dettagliato sotto.

• photons:

Numero dei fotoni da seguire, più fotoni ci sono, più informazioni vengono generate dalla mappa fotonica. Generalmente parlando, si dovrebbe aver bisogno di meno fotoni per le luci fotoniche diffuse.

• depth:

Quantità di riflessioni (rimbalzi) o rifrazioni che devono eseguire i fotoni.

• search:

Numero di fotoni da cogliere mentre si ombreggia. Più alti sono i valori più morbido è l'effetto (quando si aumenta search, si deve aumentare anche il fixedradius).

• fixedradius : • cluster:

Raggio di ricerca quando si cercano i fotoni (il numero di fotoni cercati è definito da 'search').

Questo definisce la più piccola unità creata nella mappa fotonica. Più piccolo è il numero, più fine è la mappa

fotonica. • use_QMC:

Quando questo è posto a 'on' si userà un raytracing Quasi Monte Carlo. (http://www.coala.uniovi.es/wiki/index.php/YafrayGlossaryQMC).

• from: • to:

Posizione della luce.

Bersaglio della luce.

• angle:

Simile al valore size della luce Spot, angolo del 'fascio' di fotoni.

• color:

Il colore della luce.

Le Luci Fotoniche hanno due modalità: "Caustica" e "diffusa". Nel primo modo la luce verrà disegnata da fotoni riflessi o trasmessi, provocando luce per formare disposizioni caustiche di luce che viaggia attraverso oggetti trasparenti (p. es. oggetti che hanno le giuste impostazioni nel loro tag Object. Nel modo "diffuso" i fotoni vengono diffusi sulle superfici in direzioni casuali per fare la "radiosità" o la "Illuminazione Globale". In entrambi i modi viene immagazzinata solo la luce indiretta (i fotoni che sono rimbalzati almeno una volta), quindi la luce diretta resta come se fosse una luce normale. Perché non lavorare in entrambi i modi? Di solito si immettono valori di fotoni diversi per le caustiche e la radiosità. Per le modifiche necessarie quindi è meglio avere due diverse luci per ciascun compito.

Regolazione delle Luci di Fotoni Fotoni La scelta di un buon valore dipende dallo scopo, per la radiosità si necessita di pochi fotoni. Per le caustiche dipende dalla risoluzione delle forme che si vogliono. search, fixed radius e cluster Queste impostazioni sono strettamente collegate, si deve avere la giusta combinazione della terna per avere un buon aspetto nel risultato. L'impostazione search definisce quanti fotoni cercare per un punto, fixed radius definisce quanto lontano da tale punto cercare i fotoni. Una volta raccolti i fotoni, l'area di raggio fixed radius viene ingrigliata in piccoli 'clusters', la dimensione del quale è definita dall'impostazione cluster. Di tutti i fotoni all'interno dello stesso cluster ne viene effettuata una media come risultato (equivalente ad 1 pixel nella mappa fotonica). Se gli effetti caustici e diffusi appaiono frazionati in forme geometriche, l'algoritmo non ha trovato il numero di fotoni richiesto (search) all'interno del raggio definito (fixed_radius). Per rimediare si deve essere sicuri che ci siano abbastanza fotoni all'interno del raggio di ricerca da raggiungere la quantità cercata. Per fare ciò, si deve o aumentare la quantità totale di fotoni (photons), o aumentare il raggio di ricerca (fixed_radius), o diminuire la quantità di fotoni cercati (search). Aumentando il numero di numero di fotoni si rallenterà il primo passaggio, probabilmente si dovrà aggiungere molti più fotoni per vedere qualche cambiamento. Aumentando il raggio di ricerca appariranno velocemente i risultati ma dipende anche dal fatto che ci siano sufficienti fotoni nella scena inizialmente. Grandi differenze tra le impostazioni fixed_radius e cluster (per es. un ampio fixed_radius ed un basso cluster) aumenteranno di molto il tempo del rendering, cosa che ha senso, dato che ciascun campione (che sarà più grande dati il valore alto di fixed_radius) si suddividerà in tanti cluster minuscoli (dato la piccola dimensione di cluster). Una buona regola d'oro è: fixed_radius/cluster = sqrt(search) Questo vuol dire che se si fanno prove per 100 fotoni (search = 100) allora il fixed_radius diviso per il cluster dovrebbe essere uguale a 10 (sqrt(100)=10) e quindi se c'è un insieme con la dimensione del cluster di .01 allora fixed_radius dovrebbe essere circa .1 ((10*.01 = .1) = (.1/.01 = 10)).

Sfondo [Background] A partire da Blender v2.31 Aggiunge un'immagine di sfondo (mappa ambientale), colore o un cielo al proprio rendering. La luce Path e la Hemi possono campionare il colore e l'intensità dello sfondo per simulare l'illuminazione del mondo reale.

Immagine di Sfondo Normale • type - image:

Consente di usare un'immagine bitmap come sfondo dei formati supportati dalle texture. L'immagine viene mappata intorno alla scena come una sfera, quindi l'immagine dovrebbe essere in formato latitudine/longitudine (rapporto 2:1).

• name:

Il nome dello sfondo.

• Power:

Il livello di luminosità della bitmap. 1.0 è il default, numeri maggiori aumenteranno la luminosità, numeri più bassi la diminuiranno.

• filename:

Il percorso completo ed il nome del file dell'immagine, inclusa l'estensione del file.

Sfondo HDRI

• type - HDRI:

Consente di usare un'immagine HDR come sfondo. La HDRI viene mappata intorno alla scena come una mappa angolare, non latitudine e longitudine come la normale immagine di sfondo.

• name:

Nome dello sfondo.

• exposure_adjust :

Simile al 'power' per la normale immagine di sfondo. 0 è il default, aumentandolo si schiarirà l'HDR, diminuendolo si scurirà (equivalente alla regolazione di f-stop (apertura del diaframma) su una telecamera fisica).

• filename:

Il path completo ed il nome del file dell'HDRI, inclusa l'estensione.

Sfondo Costante • type - constant : • name:

Consente di assegnare un colore singolo come sfondo.

Il nome dello sfondo.

• color:

r - valore del rosso del colore (0.000000 - 1.000000), g - valore del verde del colore (0.000000 - 1.000000), b - valore del blu del colore (0.000000 - 1.000000). 1/1/1 è bianco, 0/0/0 è nero.

Sfondo Sun/Sky (Sole/Cielo)

• type - sunsky: • turbidity:

Consente di assegnare un cielo realistico come sfondo con un sole opzionale.

Densità atmosferica (p. es. foschia/nebbia) più basso è il numero, meno visibile è il cielo. Un valore di 4 è il

cielo terso.

Telecamera A partire da Blender v2.31 • Name:

Nome della telecamera.

• resx:

Risoluzione orizzontale (la larghezza dell'immagine del rendering in pixels).

• resy:

Risoluzione verticale (l'altezza dell'immagine del rendering in pixels).

• res:

Risoluzione della mappa dell'ombra (per adesso solo per le ombre volumetriche).

• focal:

Field of View (Campo di Vista). Equivalente alla lunghezza della lente negli obiettivi del mondo reale - 1.093 è circa 35mm, 6.25 è circa 200mm.

• from:

Posizione della telecamera.

• to:

Bersaglio della telecamera.

• up:

Il 'vettore Su' della telecamera - definisce quella che è considerata la dimensione 'su' della telecamera.

Render (Motore del rendering) A partire da Blender v2.31 Produce un file immagine, in base all'input dal blocco 'Camera' (Telecamera). Viste multiple: Si possono avere molti blocchi camera e/o blocchi render all'interno dello stesso XML, per riutilizzare la stessa vista, con diverse impostazioni dell'output, o diverse viste (telecamere) a viarie risoluzioni, con diversi sfondi. <save_alpha value="on" /> • AA_passes:

Imposta il numero di passaggi di l'anti-scalettatura (anti-alias) da eseguire. Il valore 0 indica che non viene eseguito alcun anti-aliasing.

• AA_minsamples :

Imposta il numero di campioni per passaggio.

Ci sono diversi modi di usare questi due parametri. Si può impostare 'AA_minsamples' ad un certo numero, ed impostare 'AA_passes' ad 1, quindi dopo un primo passaggio di rendering tutti i pixel che lo necessitano subiranno l'anti-aliasing con tutto il numero di campioni impostato in 'AA_minsamples'. Il vecchio metodo è equivalente ad impostare 'AA_minsamples' a 1 e 'AA_passes' al numero di campioni, quindi tutti i pixel verranno continuamente controllati se necessitano ancora di campioni extra, questo è infatti più lento per i normali disegni di raytracing, ma può essere più veloce quando si effettua il rendering con luci Hemi o Path. Tuttavia, per limitazioni interne questo non funziona bene con impostazioni alte del campionamento. I due metodi si possono anche combinare assieme, controllando i pixel ad ogni passaggio e prendendo più campioni per passaggio allo stesso tempo, per esempio per 16 campioni in totale, si potrebbe provare ad impostare sia AA_passes che AA_minsamples a 4 (4 x 4 = 16). • AA_pixelwidth :

Imposta l'ammontare della sovrapposizione di pixel usati per AA.

L'intervallo varia da 1 a 2 (scelte comuni sono 1.5 o 2.0), più è alto, migliore e più regolare è l'AA, ma secondo le proprie preferenze, si può trovare che l'immagine appaia un po' offuscata. Un valore di 1.0 è equivalente al vecchio metodo.

• AA_threshold :

Imposta il valore della soglia nel cui un punto un pixel viene preso in considerazione per l'anti-aliasing.

L'intervallo varia da 0.0 (anti-aliasing per ogni pixel) a 1.0 (nessun anti-aliasing). Tuttavia, dato che viene usato il QMC, le impostazioni con bassi campionamenti come nell'esempio sopra possono produrre risultati molto buoni. L'anti-aliasing viene effettuato anche sul canale alfa. • save_alpha :

Per salvare l'immagine targa di un rendering col canale alfa impostato a 'on'.

Filtri A partire da Blender v2.31

Filtro Anti Noise (Anti Rumore) • type-antinoise:

Elaborazione a posteriori dell'immagine del rendering, per ridurre il rumore risultante da troppo poche luci path, hemi, o troppo pochi campioni da un blocco conetrace.

• name:

Nome del filtro.

• radius:

Quantità di offuscamento da applicare alle aree considerate rumorose.

• max_delta:

Impostazione della tolleranza per il rumore. Con valori alti, più parti dell'immagine verranno considerate 'rumore' e vi verrà applicata la sfocatura [blur].

Filtro Depth of Field (Profondità di Campo) • type-dof:

Post elaborazione dell'immagine del rendering, usa l'informazione della profondità per applicare un effetto di fuori fuoco (sfocatura).

• name:

Nome del filtro.

• focus:

Distanza dalla telecamera che è a fuoco (gli altri oggetti più vicini e più lontani da questo punto saranno fuori fuoco).

• near_blur: • far_blur:

Quantità di oggetti sfocati di fronte al punto di fuoco.

Quantità di oggetti sfocati dietro al punto di fuoco.

• scale:

Ridimensiona l'area che è nel fuoco. Valori alti diminuiranno l'effetto della profondità di campo dato che le aree fuori fuoco verranno espulse dall'area a fuoco.

Il filtro della Profondità di Campo [Depth of Field] è un filtro 2D, cioè una tecnica di post-elaborazione, e in quanto tale, ha vantaggi e svantaggi. Esso usa l'immagine del rendering, più uno Z Buffer (che dice al filtro quanto lontano è dalla telecamera ciascun pixel) per riuscire a capire quali pixel sono a fuoco e quali no. Dato che è un effetto 2D ha il vantaggio di essere estremamente veloce. Però ci sono degli svantaggi: Le riflessioni non vengono sfumate correttamente. Se si guarda una riflessione, si noterà che la sua sfumatura è basata sulla distanza dalla telecamera del piano di riflessione, non dell'oggetto nella riflessione. Dato che la Profondità di Campo viene fatta su un'immagine 2D, anziché una scena 3D, la sfumatura non può sapere cosa c'è dietro, quindi spesso i bordi di un oggetto estremamente sfocato in primo piano appariranno sbavati o sporchi. Tenendo presenti tali limitazioni, il filtro della profondità di campo può produrre dei grandi effetti di Profondità di Campo molto rapidamente.

Glossario A-Z Attivo Blender fa una distinzione tra selezionato ed attivo. In un dato istante un solo Oggetto o elemento può essere attivo, per esempio per consentire la visualizzazione dei dati nei pulsanti. Un oggetto attivo è uno che è in Modo Edit, o è immediatamente commutabile in Modo Edit (di solito con TAB). In ogni momento non più di un oggetto è attivo. Di solito, quello selezionato più recentemente è attivo. Vedi anche: Selezionato. Actuator (Attuatore) Un Mattone Logico che agisce come un muscolo nelle forme di vita. Può spostare l'oggetto o anche emettere un suono. Vedi anche: LogicBrick (Mattone Logico), Sensore, Controller (Controllo). Alpha (Alfa) Il valore Alfa in un'immagine indica l'opacità, usata per mescolare e l'anti-scalettatura [antialiasing]. Luce Ambiente La luce che esiste ovunque senza alcuna sorgente particolare. La luce ambiente non proietta ombre, ma riempie le aree in ombra di una scena. Anti-aliasing (Anti Scalettatura) Un algoritmo progettato per ridurre la gradinatura artificiale che risulta dal disegno di primitive grafiche su una griglia [raster]. AVI "Audio Video Interleaved". Un formato contenitore per video con audio sincronizzato. Un file AVI può contenere flussi [streams] video ed audio compressi in vario modo. Back-buffer (Retro-buffer) Blender usa due buffer in cui disegna l'interfaccia. Questo sistema di doppia bufferizzazione consente ad un buffer di essere mostrato, mentre si sta disegnando sul back-buffer. Per delle applicazioni in Blender il back-buffer viene usato per immagazzinare l'informazione sulla codifica del colore della selezione. Smussatura [Bevel] La smussatura rimuove i bordi netti da un oggetto estruso aggiungendo materiale intorno alle facce circostanti. Le smussature sono particolarmente utili per i loghi volanti e le animazioni in generale, giacché riflettono altra luce dagli angoli di un oggetto così come di fronte e lateralmente. Bounding box (Scatola di Contorno) Un parallelepipedo di sei lati disegnato sullo schermo che rappresenta le massime estensioni di un oggetto. Bump map (Mappa di rigonfiamenti) Un'immagine a scala di grigi usata per dare ad una superficie l'illusione di creste o rigonfiamenti. In Blender le bumpmaps vengono chiamate Nor-maps. Channel (Canale) Alcuni DataBlocks possono essere collegati ad una serie di altri DataBlocks. Per esempio, un Materiale ha otto canali con cui collegare delle Textures. Ciascun Blocco Ipo ha un numero prefissato di canali disponibili. Questi hanno un nome (LocX, SizeZ, ecc.) che identifica come possano essere applicati. L'animazione parte immediatamente quando si aggiunge una Curva Ipo ad un canale.

405

Glossario Child (Figlio) Gli Oggetti possono essere collegati a ciascun altro in gruppi gerarchici. L'Oggetto genitore in questi gruppi trasferisce le sue trasformazioni agli Oggetti Figli. Vedi anche: Parent (Genitore). Clipping (Ritaglio) La rimozione, prima che vengano disegnati, dei vertici e delle facce esterne al campo di vista. Controller (Controllo) Un Mattone Logico che agisce come il cervello nelle forme viventi. Esso prende le decisioni di attivare muscoli (Attuatori), sia usando una semplice logica che complessi script Python. Vedi anche: LogicBrick (Mattone Logico), Sensore, Python, Actuator (Attuatore). DataBlock (o "block") (Blocco Dati o "blocco") Il nome generico per un elemento nel Sistema Orientato agli Oggetti di Blender. Effetto Doppler L'effetto Doppler è il cambio di tono che avviene quando un suono ha una velocità relativa rispetto all'ascoltatore. Quando un suono si sposta verso l'ascoltatore il tono si alza. Quando si allontana dall'ascoltatore il tono si abbassa. Un esempio noto è il suono di un'ambulanza di passaggio. Double-buffer (Doppio buffer) Blender usa due buffers (immagini) per disegnarvi la superficie. Il contenuto di un buffer viene mostrato, mentre avviene il disegno sull'altro buffer. Quando il disegno è completo, i buffers vengono scambiati. Edit Mode (Modo Edit) Il modo per effettuare modifiche dentro gli oggetti grafici. Blender ha due modi per fare modifiche graficamente. In Modo Edit consente di fare modifiche dentro l'oggetto (spostamenti, ridimensionamenti, cancellazione ed altre operazioni sui vertici selezionati dell'oggetto attivo). Di contro, il Modo Oggetto consente le modifiche tra oggetti (operazioni sugli oggetti selezionati). Lo scambio tra il Modo Edit ed il Modo Oggetto avviene col Tasto Attivo: TAB. Vedi anche: Modo Oggetto, Vertex (pl. vertices) (Vertice). Extend select (Estensione della selezione) Aggiunge dei nuovi oggetti alla selezione corrente (SHIFT-RMB). Extrusion (Estrusione) La creazione di un oggetto tri-dimensionale buttando fuori (estraendo) un contorno bi-dimensionale per dargli spessore, come fa un taglia-biscotti. Viene spesso usata per creare testo 3D. Face (Faccia) I triangoli e i quadrangoli che formano la base per le Mesh o per il rendering. Field (Campo o Semiquadro) I Frames (Fotogrammi o Quadri) nei formati video NTSC e PAL sono composti da due fields (semiquadri) interlacciati. FaceSelectMode (Modo Selezione Faccia) Modalità per selezionare le facce di un oggetto. Molto importante per applicare texture agli oggetti. Hotkey: FKEY. Flag (Bandierina) Un termine di programmazione per una variabile che indica un certo stato. Flat shading (Ombreggiatura piatta) Un algoritmo veloce di rendering che dà semplicemente a ciascuna sfaccettatura di un oggetto un singolo colore. Produce una rappresentazione solida degli oggetti senza impiegare molto tempo per il rendering. Premendo ZKEY in Blender, si

406

commuta Blender in flat shading. Fps Frames per second (Frames al secondo). Tutte le animazioni, i video, ed i filmati vengono riprodotti ad una certa velocità. Otre i 15 fps circa, l'occhio umano non percepisce più i singoli frames ed è uno stratagemma per mostrare un moto fluido. Nei giochi viene usato come indicatore misurare quanto velocemente gira un gioco. Frame (Fotogramma) Una singola immagine proveniente da una animazione o da un video. Gouraud shading (Ombreggiatura di Gouraud) Un algoritmo di rendering che fornisce più dettagli. Esso effettua la media dell'informazione del colore delle facce adiacenti per creare i colori. È più realistico del flat shading, ma meno realistico del Phong shading o del ray-tracing. Il tasto attivo in Blender è CTRL-Z. Graphical User Interface (Interfaccia Utente Grafica) Tutta la parte di un'applicazione interattiva che richiede l'input dall'utente (tastiera, mouse, ecc.) e mostra tali informazioni all'utente. La GUI di Blender è progettata per un processo di modellazione in un'azienda di animazione dove tempo uguale denaro. Tutta la GUI di Blender è realizzata in OpenGL. Vedi anche: OpenGL. Hierarchy (Gerarchia) Gli Oggetti possono essere collegati a ciascun altro in gruppi gerarchici. L'Oggetto Genitore in questi gruppi trasferisce le sue trasformazioni agli Oggetti Figli. Ipo Il principale sistema di curve di animazione. I blocchi Ipo possono essere usati dagli Oggetti per il movimento, ed anche dai Materiali per i colori animati. IpoCurve (Curva Ipo) La curva di animazione Ipo. Item (Elemento) Il nome generico per un elemento selezionabile, per es. Oggetti, vertici e curve. Lathe (Tornio) Un oggetto da tornio viene creato ruotando una forma bi-dimensionale attorno ad un asse centrale. È comodo per la creazione di oggetti 3D come bicchieri, vasi e bacinelle. In Blender è chiamato "spinning" (tornitura). Keyframe (Fotogramma Chiave) Un fotogramma in una sequenza che specifica tutti gli attributi di un oggetto. Si può quindi cambiare l'oggetto in ogni maniera definendo un secondo keyframe. Blender automaticamente crea una serie di fotogrammi di transizione tra i due keyframes, un processo chiamato "tweening" [tramezzatura]. Layer (Livello) Un flag di visibilità per Oggetti, Scene e Finestre 3D. Questo è un metodo molto efficiente per provare la visibilità dell'Oggetto. Link (Collegamento) Il riferimento tra un DataBlock ed un altro. Nel gergo della programmazione è detto 'puntatore'. Locale Ciascun Oggetto in Blender definisce uno spazio 3D locale, delimitato dalla sua posizione, rotazione e dimensione. Gli stessi Oggetti risiedono in uno spazio 3D globale. Un DataBlock è locale, quando viene letto dal file Blender corrente. I blocchi non-locali (blocchi di libreria) sono parti collegate (provenienti) da altri files Blender.

407

Glossario LogicBrick (Mattone Logico) Una rappresentazione grafica di una unità funzionale nella logica del gioco di Blender. I LogicBricks possono essere Sensori, Controlli o Attuatori. Vedi anche: Sensore, Controller (Controllo), Actuator (Attuatore). Mapping (Mappatura) La relazione tra un Materiale ed una Texture viene chiamata 'mappatura'. Questa è una relazione bi-laterale. Primo, si deve indicare l'informazione passata alla Texture. Quindi si indica l'effetto della Texture sul Materiale. Mipmap Processo per filtrare e velocizzare la visualizzazione di texture. MPEG-I Standard di compressione video del "Motion Pictures Expert Group". Data la piccola dimensione e l'indipendenza dalla piattaforma, è l'ideale per la distribuzione su Internet di files video. Blocco ObData Il primo è più importante DataBlock collegato da un Oggetto. Questo blocco definisce il tipo dell'Oggetto, per es. Mesh, Curva o Lampada. Oggetto Il blocco di informazione 3D base. Contiene una posizione, una rotazione, una dimensione e delle matrici di trasformazione. Può essere collegato ad altri Oggetti per gerarchie o deformazioni. Gli oggetti possono essere 'empty' (solo un asse) oppure avere un collegamento all'ObData, l'attuale informazione 3D: Mesh, Curva, Lattice, Lampada, ecc. Modo Oggetto La modalità per fare modifiche grafiche tra oggetti. Blender ha due modi per fare modifiche graficamente. In Modo Oggetto consente di fare modifiche tra oggetti (spostamenti, ridimensionamenti, cancellazione ed altre operazioni sugli oggetti selezionati). Di contro, il Modo Edit consente le modifiche nell'oggetto (operazioni sui vertici nell'oggetto attivo). Lo scambio tra il Modo Oggetto ed il Modo Edit avviene col Tasto Attivo: TAB. Vedi anche: Edit Mode (Modo Edit). OpenGL OpenGL è un'interfaccia di programmazione principalmente per applicazioni 3D. Esso riproduce oggetti 3D sullo schermo, fornendo lo stesso insieme di istruzioni su diversi computer e schede grafiche. Tutta l'interfaccia di Blender e degli output 3D in tempo reale e della grafica interattiva sono fatti da OpenGL. Orthographic view (Vista Ortogonale) Una vista ortogonale di un oggetto lo fa apparire piatto e bidimensionale, come una pianta o un piano. Tutti i punti dell'oggetto sono perpendicolari al piano di visione e sono proiettati in parallelo. Vedi anche: Perspective view (Vista Prospettica). Oversampling (Sovracampionamento) Vedi: Anti-aliasing (Anti Scalettatura) Overscan (Sovrascansione) Le immagini video di solito oltrepassano la dimensione dello schermo fisico. I bordi del disegno possono apparire o meno, secondo le variazioni degli apparecchi televisivi. L'area extra viene detta area overscan. Le produzioni video sono pianificate in modo che le azioni critiche avvengano solo al centro sicuro dell'area del titolo. I monitor professionali sono in grado di mostrare l'intera immagine video inclusa l'area di overscan. Parent (Genitore) Un oggetto che è collegato ad un altro oggetto, il genitore è legato al figlio in una relazione padre-figlio. Le coordinate di un oggetto genitore diventano il centro del mondo di qualsiasi dei suoi oggetti figli. Vedi anche: Child (Figlio).

408

Perspective view (Vista Prospettica) Nella vista in prospettiva, più un oggetto è lontano dall'osservatore, più piccolo appare. Vedi anche: Orthographic view (Vista Ortogonale). Pivot (Perno) Un punto che normalmente giace nel centro geometrico dell'oggetto. La posizione e la rotazione di un oggetto vengono calcolate in relazione al proprio punto-perno [pivot]. Comunque, un oggetto può essere allontanato dal suo punto centrale, consentendogli di ruotare attorno ad un punto che si trova all'esterno dell'oggetto. Pixel Un singolo punto di luminoso sullo schermo del computer; la più piccola unità in computer graphic. Abbreviazione di "picture element (elemento di immagine)". Plug-In Un pezzo di codice (C) caricabile durante il runtime. In questo modo è possibile estendere le funzionalità di Blender senza doverlo ricompilare. Il plug-in di Blender per mostrare contenuto 3D in altre applicazioni come un pezzo di codice. Python Il linguaggio scripting integrato in Blender. Python (http://www.python.org/) è un linguaggio di programmazione objectoriented, interpretato, interattivo. Quaternioni Invece di usare angoli di Eulero a tre componenti, i quaternioni usano un vettore a quattro componenti. Generalmente è difficile descrivere le relazioni tra questi canali di quaternioni con gli orientamenti risultanti, ma spesso non è necessario. È meglio generare fotogrammi chiave [keyframe] di quaternioni maneggiando direttamente le ossa, solo per regolare le transizioni tra le posizioni si modifica la curva specifica. Render Per creare una rappresentazione bi-dimensionale di un oggetto in base alla sua forma e dalle proprietà della superficie (cioè disegni da stampare o mostrare su un monitor). Rigid Body (Corpo Rigido) Opzione per oggetti dinamici in Blender che fa sì che nel Motore dei Giochi [game engine] prenda la forma del corpo in esame. Può essere usato, ad esempio, per creare sfere rotolanti. Selezionato Blender fa una distinzione tra oggetti selezionati ed attivi. Qualsiasi numero di oggetti possono essere contemporaneamente selezionati. Quasi tutti i comandi hanno un effetto sugli oggetti selezionati. La selezione viene effettuata col tasto destro del mouse. Vedi anche: Attivo, Extend select (Estensione della selezione). Sensore Un Mattone Logico che agisce come un senso di una forma vivente. Reagisce al tatto, alla vista, collisione ecc.. Vedi anche: LogicBrick (Mattone Logico), Controller (Controllo), Actuator (Attuatore). Single User (Utenza singola) DataBlocks con una sola utenza. Smoothing (Levigazione) Una procedura di rendering che esegue l'interpolazione della normale ai vertici tra una faccia prima che inizi del calcolo dell'illuminazione. Quindi non saranno più visibili le singole sfaccettature. Trasformazione Cambio della posizione, rotazione o dimensione. Si applica solitamente ad Oggetti o vertici.

409

Glossario Trasparenza La proprietà di una superficie che determina la quantità di luce che passa attraverso un oggetto senza essere alterata. Vedi anche: Alpha (Alfa). User (Utenza) Quando un DataBlock fa riferimento ad un altro DataBlock, quest'ultimo ha una utenza. Vertex (pl. vertices) (Vertice) Il nome generico di un punto 3D. Oltre alle coordinate X, Y e Z, un vertice può avere un colore, un vettore normale ed un flag di sezione. Usati anche come punti di controllo o maniglie [handles] delle curve. Vertex array (Array di Vertici) Un modo speciale e rapido per mostrare 3d sullo schermo con accelerazione grafica hardware. Per quanto, alcuni driver OpenGL o hardware non lo supportano, quindi può essere disabilitato nella Finestra Info. Wireframe (Fil-di-ferro) Una rappresentazione di un oggetto tri-dimensionale che ne mostra solo le linee del contorno, da cui il nome "Fil-di-ferro [Wireframe]". Assi X, Y, Z I tre assi del sistema di coordinate tridimensionale del mondo. Nella vista frontale, l'asse X è una linea immaginaria orizzontale che va da sinistra a destra; l'asse Z è una linea verticale; e l'asse Y è una linea che esce dallo schermo verso l'osservatore. In generale, qualsiasi movimento parallelo ad uno di questi assi è detto essere un movimento lungo tale asse. Coordinate X, Y, e Z La coordinata X di un oggetto viene misurata disegnando, attraverso il suo punto centrale [centerpoint], una linea perpendicolare all'asse X. La distanza tra dove tale linea interseca l'asse X al punto zero dell'asse X è la coordinata X dell'oggetto. Allo stesso modo sono misurate le coordinate Y e Z. Z-buffer Per un'immagine Z-buffer, a ciascun pixel viene associato un valore Z, derivato dalla distanza nello 'spazio visivo [eye space]' dalla Telecamera. Prima che ciascun pixel di un poligono sia disegnato, il valore esistente dello Z-buffer viene confrontato col valore Z del poligono in tale punto. È un comune e rapido algoritmo per la visibilità delle superfici.

410

Related Documents