Indice

"White_dune", che cos'e' ?

White_dune è un editor grafico VRML97, un semplice modellatore (NURBS) 3D e un tool animazione in via di sviluppo. Puo' leggere i file VRML97, visualizzarli e permette all'utente di cambiare lo scenegraph, i campi e gli itinerari ROUTE. Esso puo' essere usato per migliorare o creare mondi-3D VRML97, animazioni ed interazioni.
Le funzioni principali di white_dune non sono abbastanza potenti (ancora), da poter essere usato da solo. Ha piu' senso usarlo insieme ad un modellatore 3D che possiede un export statico VRML97 (come per esempio Wings3D o ArtOfIllusion).
A differenza della maggior parte dei modellatori 3D, l'illuminazione/colorazione e la struttura interna di white_dune sono basati sullo standard VRML97.

"White_dune" si e' schiantato, lavoro perso ?

White_dune e' in fase di sviluppo e non e' stabile come dovrebbe.

Se White_dune si arresta, il vostro lavoro andra' perso ?

No non automaticamente !

"White_dune" provera'  a salvare il file VRML97 prima dell'arresto anomalo. Questo non sempre riesce, per esempio quando l'errore che ha causato l'arresto ha danneggiato la struttura di dati interna. Se il file viene salvato, il white_dune scrivera'  sotto Unix/Linux qualcosa come: 

   Internal Crash !
 Try to save Files
attempt to write file to /home/someone/.dune_crash_NUMBER_NUMBER.wrl
write sucessful
sulla finestra standard di errore ed sulla console di sistema (per esempio sulla finestra dell'applicazione della xconsole).
Sotto M$Windows ottenete (probabilmente dopo avere cliccato "ignora") un Messagebox simile a questo:



Quando ri-lancerete white_dune, dovreste vedere il nome del file  .dune_crash sulla lista degli ultimi file salvati.



Selezionatelo e salvatelo con un altro nome.
Questo metodo puo' fallire, se l'errore che ha prodotto l'arresto ha danneggiato la struttura di dati interna del programma.
In questo caso e'¨ opportuno cercare nell'indice dei file VRML provvisori (".dune_"), quello  prodotto durante l'esecuzione di File->Preview o di File->Textedit.
Queste file vengono cancellati al  normale termine del programma, ma non nel caso di un arresto anomalo.
Per esempio se il programma si arresta immediatamente dopo aver cambiato o creato la parte di ECMAscript di uno scriptnode con un un texteditor, dopo che il file con il programma con l'ECMAscript e' stato scritto, il file e' ancora conservato nel filesystem. Potete trovare questo file (attraverso la data di creazione e di nome) e riutilizzarlo usando Copia e Incolla.

Far partire "White_dune" con i menu stranieri

White_dune puo' essere inizializzato con i menu in lingua straniera.

Per esempio, per far partire white_dune con il menu in lingua italiana, deve essere usata l'opzione "- italian" sulla riga di comando.
Dato che e' scomodo far partire il programma da una finestra di comando, e' piu' conveniente scrivere uno shellscript (Linux/UNIX/MacOSX) o batchfile (Micro$oft Windows).

Se non potete trovare un file corrispondente (per esempio italiandune per la lingua italiana), potete generare uno con i commandi:


Sotto MacOSX dovete modificare nel file white_dune.app/Contents/MacOS/dunestarter le linee con le opzioni per la partenza del programma:
 DUNEOPTIONS=" "
export DUNEOPTIONS
ed aggiungere, ad esempio, l'opzione -german per il linguaggio italiano:
 DUNEOPTIONS="-italian "
export DUNEOPTIONS

Per altre versioni esotiche di UNIX troverete delle opzioni simili nei seguenti file

Se siete interessati alla traduzione dei menu di white_dune e dei messaggi di errore in un nuova lingua straniera (nessuna capacita' di programmazione e' richiesta), si prega di leggere step by step instructions about localisation nella "developer documentation".

Cosa "white_dune" puo' fare e cosa non puo'

Potete trovare alcuni esempi tipici del VRML (da caricare in White_dune) qui, ma tenete presente il fatto che gli esempi non mostrano la modellazione o le possibilita' di animazione, ma pricipalmente esempi VRML97 su interazione e scripting. Queste sono caratteristiche, che possono non essere implementate in White_dune (ancora).
Gli esempi sono la base di inizio per costruire i mondi interattivi 3D con White_dune, che sono usati successivamente con un "vero" browser VRML.

Che cosa sono "scenegraph, fieldvalues, routes" etc. ?

White_dune e' uno strumento (tool) di base per creare/modificare file VRML97. Si suppone che l'utente conosca la struttura del VRML97.

E' possibile trovare una documentazione tecnica dettagliata sul VRML97 nelle specifiche ufficiali ISO nel: http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1 . Per l'uso di White_dune, specialmente  il riferimento per i nodi, e' importante:
http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1/part1/nodesRef.html .
Un ottimo, semplice tutorial per principianti sul VRML97 puo' essere reperito (beside in a range of books) at http://web3d.vapourtech.com/tutorials/vrml97/.
X3D is the sucessor of VRML97. Despite some minor technical differences (which are handled automatically by white_dune) are alle commands of the VRML97 standard still available in X3D.
This is not the case for the "forgotten" VRML97 Amendment 1 Standard from 2002. Sone VRML97 Amendment 1 commands like e.g the CoordinateDeformer node do not exist anymore, but all still existing VRML97 Amendment 1 commands are handled automatically by white_dune, when a VRML97 file is stored as X3D(V) file.

Le 5 finestre di "White_dune"


Oltre ai toolbar con le icone ed i messaggi "White_dune" e' composto essenzialmente da 5 finestre. Tramite il menu "vista", e' possibile accendere/spegnere tutte le finestre con la sola finestra di "3D Preview" . Accendete/spegnete le finestre, quando volete controllare lo stato del vostro lavoro.

Menu overview

Il menu principale di white_dune è separato nei seguenti sotto-menu:

Navigazione

Nella finestra 3D, avete tre modalita' di navigazione.

Inoltre, dalla versione 0.16 avete una navigazione stile Silicon Graphics. Tenete conto che un windowmanager non configurato puo' limitare tutti gli input del mouse che usino il tasto Alt... Quando e' attivo un "6D inputdevice" ed e' selezionata l'icona della Scena nell'albero della Scena, la navigazione dipende dalle icone di trasformazione nel file VRML.

Modificare lo SceneGraph

Il modo piu' semplice per modificare il Grafo della Scena (SceneGraph) e' aggiungere un nuovo nodo cliccando sull'icona del corrispondente nodo VRML.
Per identificare l'icona corrispondente ad un nono VRML, muovete il mouse su di esso ed aspettate. Un testo descrittivo di verra' mostrato sulla barra di stato in basso della finestra di White_dune.

White_dune provera' ad includere il nuovo nodo nel punto di selezione dello scenegraph,

oppure nella root dello scenegraph (icona "Scene").
White_dune mettera' in grigio tutte le icone dei nodi che sono impossibili da aggiungere.


La seguente tabella mostra le richieste per questi nodi nello standard VRML97 :

Per esempio un nodo Appearence deve essere selezionato, per includere una ImageTexture, oppure una Shape deve essere selezionata per includere un' Appearence.
Tutti i campi dei nodi corrispondenti nel VRML97 sono di tipo SFNode, altrimenti puo' essere inserito un solo nodo. Un icona e' anche grigia, se c'e' gia' un corrispondente nodo.
Per esempio, non potete includere due nodi ImageTexture in un Appearence. Cosi' l' ImageTexture e' anche in grigio, se un nodo Appearence e' selezionato, ma c'e' gia' un nodo ImageTexture contenuto.
Secondo lo Standard VRML97 i nodi  Box, Sphere, Cone, Cylinder, IndexedFaceSet, IndexedLineSet, PointSet, ElevationGrid, Extrusion e Text hanno bisogno di un nodo "Shape". In tutti i casi, la struttura necessaria per l'uso di questo nodo Shape.geometry e' chiara. Infatti il click sulle icone e l'uso del  menu Create -> Shape -> vocedelmenu  costruisce una Shape-struttura (che include un sovrastante nodo Transform).
(Nuovo nella Versione 0.29beta) In caso di creazione di un nodo, se l'elemento selezionato non e' una Shape di cui il nuovo nodo possa far parte, il sovrastante nodo Transform viene riempito in modo che il nuovo nodo venga mostrato direttamente di fronte all'attuale punto di vista.

I comandi  Edit -> copy, Edit -> paste and Edit -> delete  funzionano in maniera simile agli stessi comandi negli altri programmi. Se l'ultimo click del mouse e' stato fatto nell'albero della scena ("Scene Tree"), questi comandi possono essere usati per modificare lo scenegraph come ci si aspetta.

Un comando inusuale e'  Edit -gt; copy branch to root. Esso copia tutti i nodi lungo il percorso alla radice ("root") dello scenegraph corrente nel buffer. Questo puo' essere veramente utile, se avete bisogno di duplicare e spezzare un ramo dello scenegraph.

Un altro modo per modificare lo scenegraph e' di trascinare parti di esso con il mouse.
White_dune vi mostrera' l'icona di un segnale di stop, se il nodo di destinazione non e' possibile.

Se il nodo di destinazione e' possibile, White_dune mostrera' il normale puntatore del mouse.

La destinazione non e' possibile, se ci sono campi SF/MFNode multipli nel nodo finale.

I nodi con campi multipli di tipo SF/MFNode (per es. il nodo "collision") mostrano sempre i nomi dei campi nello "scenetree" (a meno di  un settaggio contrario nel pannello Options -> Preferences); in questo caso potete usare i nomi dei campi come destinazione .

In maniera simile al copy/move del programma explorer di M$Windows2000, e simili filemanager, e' possibile modificare il behaviour, se e' usata la tastiera quando il mouse e' ancora in trascinamento:

Usando USE

(nuovo nella Versione 0.29beta)
Al di la' del metodo drag and drop descritto sopra, c'e' un altro modo di usare il costrutto USE. Il costrutto USE e qualcosa di simile ad un puntatore, il riuso di un nodo gia' esistente. Il nodo USE deve essere definito da un nodo DEF, seguito dal nome, che puo' essere applicato con Edit -> DEF.  L'uso di Edit -> USE (se possibile) aggiunge un nuovo USE dell'ultimo nodo DEF, nel punto del nodo selezionato.
Se modificate il nodo DEF, il nodo USE e' anche modificato.
Se modificate il nodo USE, il nodo DEF e' anche modificato.
In White_dune (eccetto quando usate un text editor su un VRML97 file), potete legalmente cancellare il nodo DEF. Il primo nodo USE scritto formalmente diventera' il nuovo DEF, dato che il costrutto DEF/USE e' di puntatori indistinguibili.
L'uso di USE e' utile per rendere i file VRML piu' piccoli (scaricabili piu' velocemente), facilita le possibilita' di manutenzione e puo' essere usato per un rendering piu' veloce da un browser VRML intelligente.
Ulteriori comandi, che possono create costrutti USE sono gli  array tool e altri tra le seguenti operazioni "create" scenegraph.

Operazioni Scenegraph

(nuovo nella Versione 0.27beta)
Non c'e' alcun modo di muovere nodi multipli nello scenegraph (ancora). Un modo per scavalcare questo e' l'uso di operazioni che possono essere applicate a tutti i nodi dello scenegraph che seguono il nodo selezionato (compreso il nodo stesso).

Ci sono comandi disponibili sotto Actions -> Rest of scenegraph branch: Sfortunatamente, alcune di queste operazioni sono (ancora) molto lente.

Inserimento/cancellazione di ROUTE

In White_dune, ci sono due differenti settaggi, che guidano il modo in cui inserire una ROUTE.

I ROUTE sono creati in White_dune cercando l'icona a destra nella finestra RouteView (se cliccate sulle icone, viene selezionata l'icona corrispondente nell'albero della scena (usare "Route -gt; Move node to top" puo' essere utile) e cliccate sui box dell'evento corrispondente. Viene mostrato il nome dell'evento, e potete disegnare una linea fino al prossimo evento/icona.

Come richiesto dallo standard VRML, solo gli eventi dello stesso tipo (stesso colore dei box) possono essere connessi.
Per cancellare una ROUTE, semplicemente tagliate la linea.

Come suggerimento per i principianti, alcuni box degli eventi sono marcati con un puntino rosso, che sta ad indicare gli eventi importanti o piu' spesso usati.
Naturalmente l'importanza/uso degli eventi puo' differire dal task del tuo mondo VRML world. Tutti i nodi sensori  (i sorgenti originari del processamento degli eventi) hanno i box degli eventi con i punti rossi.
In complessi mondi VRML con un gran numero di oggetti (per esempio i file VRML esportati da programmi di modellazione 3D come Wings3D, Blender, AOI, Catia, 3D Studio Max, Maya ecc.) puo' essere difficoltoso cercare i nodi VRML nella finestra RouteView.


Ci sono operazioni che permettono di saltare al nodo selezionato (con Routes -> Unzoom/jump to selection )

oppure zoomare all'esterno della Routeview (con Routes -> Zoom out)

ma in questi casi, e' raccomandato l'uso del nodo VRML Inline. Questo puo' essere usato per inserire oggetti statici (per esempio parti del paesaggio o parti di forme rigide) nei propri VRML file. Come risultato il completo mondo VRML puo' consistere di un piccolo numero di nodi VRML.

Comandi con l'automatica generazione di ROUTE
Ci sono due comandi che generano automaticamente nuovi ROUTE.

Cambiare il valore dei campi ("fieldvalues")

Esiste piu' di un modo di modificare i valori dei campi:

Scriptbuilding semplificato (nuovo nella Versione 0.22beta)

Prima di usare il pannello dello scripteditor, e' necessario pianificare quali sono i datatypes e le informazioni eventIn/eventOut dei nodi  che volete connettere. Per fare questo, avete bisogno di leggere la descrizione dei nodi dello standard VRML (potete, per esempio, usare il menu Help -> nome del Nodo attualmente selezionato oppure un libro avanzato).
Per una veloce sperimentazione, potete trovare piu' conveniente usare il metodo di scriptbuilding semplificato.
Create un nuovo scriptnode "vuoto" con l'icona "Script" (oppure il menu Crea -> Programmazione -> Script).
Seguendo la   filosofia  "get out of the way!" del progetto originario di dune, premete semplicemente "OK" sul pannello dello scripteditor (vedete sopra).
Ora potete usare la finestra RouteView per l'ulteriore lavoro necessario.




I nodi di Script hanno uno speciale eventOut "connect anything" ("connetti qualunque cosa"). Cliccando e trascinando questo con il mouse, verra' mostrata una ROUTE bianca.



Tenete premuto il bottone del mouse, mentre collegate e vedrete che potete connettere questa ROUTE agli eventIns degli altri nodi (come "normal" routing),



ma (diversamente dal "normal" routing) il colore della ROUTE (per indicare il tipo) puo' cambiare a seconda dell' eventIn.



Quando rilascerete il bottone del mouse, la ROUTE sara' stabilita.



In maniera simile, potete usare lo speciale eventIn "connect anything" dello scriptnode



e connetterlo ad un eventOut di un altro nodo.



Ora dovete editare il campo "url"  del nodo di script. Attraverso l'uso di  urledit potete selezionare il nodo script nella finestra dello SceneTree, il campo "url" nella FieldView.




e premete l'icona "Object Edit" (oppure usate il menu Azioni -> Object modifica).



Ora "white_dune" provera' a lanciare un editor esterno - i "duri a morire" di UNIX useranno "xterm -e vi", che e' il default sotto Linux/UNIX ("xedit" per MacOSX, "edit" per M$Windows) se $WINEDITOR non e' stato settato al primo lancio. Potete modificare l'editor usando il menu Opzioni -> Settaggi Texteditor ....
Nella finestra dell' editor, vedrete uno schema del necessario codice sorgente javascript.
Usate Opzioni -> Settaggi ECMAscript per impostare i commenti estesi nello schema.



Use the editor to complete the javascript code and save/quit the editor - in case of the vi editor use the keystrokes :wq

Modellazione delle NURBS (parzialmente nuova nella Versione 0.25beta)

Modellazione Superformula (nuovo nella Versione 0.27beta)