![]() |
|
![]() |
||||
![]() |
ROBOTICA
video
immagini
papers
progettati
costruiti
toolbox
vrml
simulatori
![]() |
Progettazione di mondi Vrml | ![]() |
Inizialmente conviene domandarsi
che cosa effettivamente serve per creare mondi vrml. Esistono dei tools di sviluppo
che aiutano nella creazione del mondo ; tuttavia lo strumento ancora più utilizzato
risulta essere un banale text editor come edit del DOS, WordPad o Word di Windows
(purchè si salvi in formato ASCII) o, ancora, come vi per Unix. Questo vale
soprattutto nella creazione di mondi vrml 2.0 in quanto non esistono al momento
dei tools che consentano di inserire animazioni e comportamenti (la situazione
sarà destinata a modificarsi in futuro). In ogni caso, anche per semplice modellazione,
per avere mondi efficienti e con particolari caratteristiche ci si trova spesso
a dover editare manualmente il modello generato dal tool. Ne consegue che serve
assolutamente una comprensione di come funzioni la sintassi vrml.
Esiste anche la possibilità
di realizzare il modello in un altro programma di rendering e poi salvarlo
in formato vrml ; se questa possibilità non fosse offerta direttamente dal
pacchetto grafico, esistono anche molti programmi di conversione che possono
essere utili. Ovviamente la parte di comportamenti e animazioni sarebbe comunque
da aggiungere a mano. Anche per la parte di modellazione, si noti che i vari
pacchetti grafici non sono in grado di approfittare di alcune caratteristiche
di vrml (come per esempio la possibilità di definire una sfera con pochissimi
comandi), trasformando il file in una sequenza di poligoni e aumentando dunque
di molto la dimensione del file vrml. E questo è molto pesante sul Web!
Una volta creato il file
ASCII con estensione .wrl che contiene il mondo, l'unica cosa che rimane da
fare è di porlo su un server per il Web in modo che possa essere raggiunto
dagli altri utenti (oppure potete semplicemente provarlo in locale). Per visualizzare
la scena 3D vi servirà ovviamente un browser vrml, così come specificato nel
precedente paragrafo.
N.B. Si badi bene che
per rendere esportabile un file vrml dal server, occorre che il server sia
configurato in maniera opportuna. Se quando cercate di visualizzare il mondo
non ottenete altro che il sorgente, significa che il server non supporta files
vrml. Non dovrete far altro che stressare ripetutamente gli amministratori
di sistema sino a quando non mettano la corretta impostazione (in pratica
si deve aggiungere un nuovo MIME type del tipo : Prima di addentrarci
negli aspetti programmativi, cominciamo a pensare come organizzare i nostri
mondi. Un primo approccio potrebbe essere quello di pensare ad una certa scena
3D come ad un insieme di oggetti, ognuno indipendente dagli altri. Supponiamo
però ora di voler costruire un oggetto di forma umana. Potremmo definire quindi
un parallelepipedo centrale che rappresenta il busto, una sfera per la testa
e altri parallelepipedi che cosituiscono braccia e gambe (una forma un po'
rozza di modellizzare un oggetto di forma antropomorfa, ma così restiamo sul
banale). Potremmo dunque definire ognuno di questi oggetti indipendentemente
dagli altri. Ma cosa succede quando muoviamo il busto, a rappresentare che
il nostro soggetto umano si sposta ? Succede che, essendo il busto slegato
dagli altri oggetti, si ha l'avanzamento di solo questo, con gambe, braccia
e testa che rimangono nella precedente posizione. Decisamente questo non è
un comportamento molto realistico ! Potremmo pensare di spostare tutti gli
oggetti della stessa quantità e quindi ottenere un risultato decente... Ma
il lavoro da fare risulta eccessivo ; si pensi a un modello più articolato
dove aggiungiamo mani e dita. Cosa facciamo ? spostiamo un dito alla volta
?
Risulta dunque necessario
un diverso approccio. Ovviamente si procede a costruire una gerarchia di oggetti.
Si imporrà dunque che gambe, braccia e testa siano collegati al busto. Un
modo semplice di vedere questa organizzazione è tramite un albero. Avremo
dunque che le braccia sono figlie del busto ; una eventuale mano sarà figlia
del relativo braccio e così via per quanto riguarda le dita. Si avrà allora
che quando si sposta il busto dell'oggetto di una certa quantità, tutte le
parti ancorate ad esso si sposteranno di conseguenza. E si badi bene che non
occorre specificare lo spostamento delle parti collegate : il tutto avviene
automaticamente.
Un altro esempio banale
potrebbe essere quello di un tavolo con sopra un vaso. Se sposto il tavolo
è lecito supporre che il vaso si sposterà con esso. Per cui servirà un legame
fra le due parti.
Una tale organizzazione
poteva non essere necessaria in mondi vrml 1.0 ; infatti non erano previsti
spostamenti di oggetti e di conseguenza il problema non si poneva. Per vrml
2.0 invece una tale strutturazione risulta fondamentale quando si dovrà pensare
ad animazioni e comportamenti non banali.
Basta teoria ora. Vediamo
di passare a qualcosa di pratico e creare il nostro primo mondo vrml 2.0.
Per il momento resteremo sul molto semplice, per cui la strutturazione del
mondo fatta come indicato in questo paragrafo sarà spesso non necessaria.
Più in là dovremo invece pensare prima di scrivere.
x-world/x-vrml .wrl
Fornendo questa linea, gli amministratori di sistema dovrebbero essere in
grado di procedere alla configurazione). In ogni caso, con il passare del
tempo e con la crescente diffusione di vrml questi problemi dovrebbero diminuire.