Come già detto, un file .wrl, è un semplice file di testo che utilizza caratteri ASCII (come l’HTML ad esempio) che contiene al suo interno tutti i parametri necessari a descrivere una scena tridimensionale. Di seguito ecco il primo esempio di un semplice listato VRML:
#VRML V2.0 utf8
# sfera VRML
Shape {
appearance Appearance {
material Material { emissiveColor 1 0 0 }
}
geometry Sphere { radius 1 }
}
Per una rapida visualizzazione potete caricare il file sfera.wrl
È sufficiente copiare il listato o riscriverlo in un qualsiasi editor di testo (Blocco note di Windows va benissimo) e salvare il file con il formato .wrl. È bene ricordare che il VRML è un linguaggio di tipo case sensitive, in grado cioè di riconoscere la differenza tra lettere minuscole e maiuscole. Il risultato di questo listato appare nel Player Cosmo come una sfera di colore rosso.
La prima riga di ogni file VRML 2.0 deve iniziare con la scritta: #VRML V2.0 utf8. Questa riga indica al browser che si tratta effettivamente di un file VRML 2.0. Con la stringa utf8 si dichiara un particolare tipo di encoding che consente anche l'uso di caratteri non ASCII (vedi i caratteri in cirillico). A parte la prima riga, ogni altra riga preceduta da # indica la presenza di un commento.
Alla terza riga si è definito il nodo Shape (forma). Tutte le entità in un mondo VRML sono dichiarate con dei nodi (siano essi semplici modelli geometrici o complessi script java). Il nodo Shape nel nostro esempio contiene al suo interno due fields (campi): appearance e geometry. I nomi dei campi, differentemente dal nome Shape, cominciano con lettere minuscole. Il field appearance definisce le caratteristiche fisiche dell'oggetto, mentre il field geometry ne definisce la forma.
All'interno del field appearance si è dichiarato il nodo Appearance. Il nodo Appearance contiene al suo interno il field material. Il field material si occupa di gestire le caratteristiche fisiche dell'oggetto, come per esempio il suo colore e la sua interazione con la luce. Il field material contiene un ulteriore nodo Material il cui field emissiveColor descrive il colore dell'oggetto. Il colore in VRML è descritto tramite una tripletta di valori compresi tra 0 e 1 e indicanti i rispettivi valori RGB. Nel caso del nostro esempio dunque la sfera risulta colorata di rosso.
L’ultima riga contiene il field geometry. A sua volta, questo campo contiene il nodo Sphere indicante la forma dell’oggetto, nel nostro caso appunto una delle primitive offerte dal VRML: la sfera. Il nodo sphere contiene infine il field di nome radius, cioè il raggio della sfera alla quale nel nostro esempio abbiamo attribuito il valore 1.
Si noti come tutti i fields di un certo nodo sono racchiusi tra parentesi graffe. E' buona norma indentare il sorgente, così come si fa in qualsiasi linguaggio di programmazione strutturato senza però abusarne a scapito della dimensione del file.
Infine vanno sottolineate la pulizia e la semplicità del file creato: per definire questa sfera sono state sufficienti infatti poche righe di testo. Diversamente, una sfera prodotta da un qualsiasi software di modellazione 3D esportata in formato VRML, può venire descritta come collezione di poligoni con evidenti ricadute negative sulla dimensione del file.
Di seguito potete trovare i listati per la descrizione delle altre primitive (il set standard di figure geometriche base) messe a disposizione dal VRML o aprire direttamente i seguenti file wrl:
#VRML V2.0 utf8
# cubo WRML
Shape {
appearance Appearance {
material Material { emissiveColor 0 1 0 }
}
geometry Box { size 2 2 2
}
}
#VRML V2.0 utf8
# cono VRML
Shape {
appearance Appearance {
material Material { emissiveColor 0 0 1 }
}
geometry Cone { bottomRadius 2
height 4
}
}
#VRML V2.0 utf8
# cilindro VRML
Shape {
appearance Appearance {
material Material { emissiveColor 1 .2 0 }
}
geometry Cylinder { radius 2
height 4
}
}
#VRML V2.0 utf8
# testo VRML
Shape {
appearance Appearance {
material Material { emissiveColor 0 0.5 1 }
}
geometry Text { string "Hello"
}
}
Open Graph Protocol, Facebook e il Web SemanticoCome sfruttare il Web Semantico "made in Facebook" |
Introduzione a RDFa - 2Arricchire un documento HTML con metadati semantici presi dal... |
Introduzione a RDFaCos'è e a cosa serve il linguaggio che potrebbe aprire il campo alle... |
Usare SVG per creare sfondi flessibili, scalabili e divertentiScopriamo cos'è il formato SVG e come possiamo usarlo in modo... |
Visualizzare i metadati RDF Dublin core con le trasformazioni XSLMettere insieme XSL, XPATH e le definizioni Dublin core per... |
Guida PodcastingUn percorso in 16 lezioni, per entrare nella filosofia del podcast... |
Guida Smil 2.0Un percorso pratico alla scoperta di SMIL: il linguaggio (XML) per... |
Guida Web serviceCosa sono, a cosa servono e come si creano servizi Web, i sistemi... |
Ogni mese, direttamente nella tua e-mail: articoli, guide, FAQ e approfondimenti sui linguaggi della famiglia XML.
Iscriviti alla newsletter