![]() |
|
![]() |
||||
![]() |
ROBOTICA
video
immagini
papers
progettati
costruiti
toolbox
vrml
simulatori
![]() |
Il nodo Inline | ![]() |
Il nodo Inline non introduce
nuove caratteristiche al mondo che stiamo creando, ma semplicemente consente
di spezzare il file vrml in piu' parti da assemblare.
Un mondo vrml sara' dunque
composto da un file principale (l'unico negli esempi visti sino ad ora) e
da altri files che contengono pezzi che dovranno essere inseriti all'interno
del mondo.
Vediamone brevemente
la specifica:
Il campo url contiene
l'URL del file contenente il pezzo da caricare. Sicuramente (dato che ormai
siete esperti ;) ) avrete gia' notato che il campo e' un MFString e che quindi
possiamo fornire piu' riferimenti. Questo potrebbe servire al browser per
cercare di caricare il file da un'altra parte se non riesce dalla locazione
posta per prima.
I due fields che seguono
servono per specificare un parallelepipedo che contiene l'oggetto da caricare.
In pratica questo consente al browser di delimitare il volume che l'oggetto
andra' a ricoprire nel mondo non appena si saranno ultimate le operazioni
di download.
Lasciando impostato il
valore di default per il campo bboxSize si lascia al browser il compito di
determinare le dimensioni del volume necessario.
Ovviamente per specificare
il punto in cui posizionare l'oggetto facciamo ricorso al nodo Transform.
Per esempio:
Da quanto detto sembrerebbero
pochi i vantaggi del nodo Inline... se ne potrebbe fare tranquillamente a
meno... e forse e' cosi' nella maggioranza dei casi. Mentre la cosa e' vera
per mondi per mondi sufficientemente piccoli, lo stesso non si puo' dire per
mondi molto complessi.
In tal caso puo' risultare
utile modularizzare meglio il mondo; ne risulta facilitato lo sviluppo e ci
consente di focalizzare l'attenzione sulle singole parti; un approccio top-down
per intenderci.
Ma c'e' anche un altro
grosso vantaggio che da solo giustifica l'uso di questo nodo per mondi complessi.
Il browser infatti renderizza la scena appena ha finito di caricare il file
principale; evidenziera' nel modo indicato precedentemente i volumi che verranno
riempiti mano a mano che i relativi files verrano downloadati. E questo vuol
dire che l'utente del vostro mondo non dovra' attendere il tempo di download
complessivo per iniziare a navigare. Appena il file principale e' in locale,
cominciera' ad esplorare il mondo, che via via si arricchira' di dettagli.
E dato che i tempi su Internet al momento sono quelli che sono... direi che
e' buona norma utilizzare questo espediente per files che cominciano a crescere
di dimensioni.
Ho gia' impiegato il
nodo Inline nell'esempio a conclusione della prima parte di questo tutorial.
Per arredare la stanza ho utilizzato dei modelli di mobili resi disponibili
da 3DName. Non ho fatto altro che posizionarli e includerli. Il risultato
mi sembra piu' che soddisfacente.
Data la banalita' implementativa
di questo nodo vi (mi) risparmio l'esempio di chiusura.
Inline {
exposedField MFString url []
field SFVec3f bboxCenter 0 0 0
field SFVec3f bboxSize -1 -1 -1
}
Transform {
translation 10 0 0
children [
Inline {
url "modulo2.wrl"
}
]
}