Chi vuole approfondire la conoscenza del VRML può rivolgersi al seguente indirizzo:
http://www.web3d.org/technicalinfo/specifications/vrml97.
Si tratta di una sezione del sito del Web3D.org che contiene le specifiche tecniche
ufficiali relative al VRML 2.0. I più attenti avranno notato che nell'indirizzo
è indicato un riferimento a VRML 97. Si tratta di
una precisazione formale relativa alle specifiche ISO
Ovviamente il documento è scritto in inglese.
Per ovviare a questo che per alcuni potrebbe costituire un limite, e soprattutto
per approfondire i concetti tecnici fondamentali del VRML, si è pensato di offrire
una breve spiegazione su come vanno lette tali specifiche. Anche perché nei
successivi capitoli, alcuni dei "tecnicismi" di cui tratteremo qui, diventano
indispensabili per una chiara comprensione delle operazioni da compiere.
Quindi, dopo una breve descrizione dei concetti di nodi, campi ed eventi presenteremo
un esempio di tavola delle referenze.
Node
Costituisce il componente fondamentale di una scena. I nodi sono astrazioni
di oggetti e concetti del mondo reale, ad esempio: sfere, luci e descrizioni
di materiali. I nodi contengono campi (field) ed eventi (event).
Field
I campi definiscono le proprietà o gli attributi di un nodo. Ogni tipo di nodo
contiene un set prefissato di campi. I campi possono cantenere vari tipi di
dati e uno o più valori. Ogni campo ha un valore di default.
Event
Gli eventi segnalano stimoli esterni, cambiamenti ai valori dei campi e interazioni
tra nodi.
Un evento consiste di un timestamp e di valori di campo.
Un messaggio inviato da un nodo verso un altro nodo è definito mediante il
comando ROUTE.
Reference table
Esistono due classi generali di campi ed eventi: campi ed eventi che contengono
valori singoli (un numero ad esempio, o un vettore o anche un'immagine), e campi
ed eventi che contengono una lista di valori multipli. Campi ed eventi a valore singolo hanno nomi che cominciano con la sigla SF,
mentre campi ed eventi a valori multipli hanno nomi che iniziano con la sigla
MF.Campi ed eventi a valore multiplo sono descritti mediante una lista ordinata
di valori compresi tra parentesi quadre e separati tra loro da uno spazio. Quando
un campo od un evento di questo tipo hanno valore zero è sufficiente scrivere
le sole parentesi quadre [].
Di seguito i tipi di valori disponibili per campi ed eventi del VRML 2.0.
SFBool
Indica un campo di tipo booleano. Può dunque assumere solo valori trUE o FALSE.
SFColor/MFColor
È Singola tripletta RGB per definire un colore / più triplette RGB
SFFloat/MFFloat
Indicano rispettivamente un singolo valore di tipo float (numero razionale)
e più valori floats
SFImage
Definisce una singola immagine bidimensionale
non compressa
SFInt32/MFInt32
È un intero / più interi
SFNode/MFNode
È un nodo vrml / più nodi
SFRotation/MFRotation
È vettore di rotazione singolo / più vettori di rotazione
SFString/MFString
È una sola stringa / più stringhe
SFTime/MFTime
È un solo valore di tempo / più valori di tempo
SFVec2f/MFVec2f
È singolo vettore con 2 componenti / più vettori con 2 componenti
SFVec3f/MFVec3f
È singolo vettore con 3 componenti / più vettori con 3 componenti
Grazie a queste considerazioni e alle caratteristiche relative agli eventi
e ai fields di cui si è già parlato, siamo in grado di leggere e comprendere
le specifiche tecniche relative ai nodi. Come esempio prenderemo la descrizione
del nodo Material così come viene presentata nelle note tecniche:
La tabella non dovrebbe richiedere particolari spiegazioni. Aggiungiamo soltanto
che il range di valore presenta i valori minimo e massimo che un campo può accettare.