Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Primo file VRML

Sintassi e primitive.
Sintassi e primitive.
Link copiato negli appunti

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.

Analisi del Listato

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:

Cubo
Cono
Cilindro
Testo

Primitiva Cubo

#VRML V2.0 utf8
# cubo WRML

Shape {
appearance Appearance {
material Material { emissiveColor 0 1 0 }
}
geometry Box { size 2 2 2
}
}

Primitiva Cono

#VRML V2.0 utf8
# cono VRML

Shape {
appearance Appearance {
material Material { emissiveColor 0 0 1 }
}
geometry Cone { bottomRadius 2
height 4
}
}

Primitiva Cilindro

#VRML V2.0 utf8
# cilindro VRML

Shape {
appearance Appearance {
material Material { emissiveColor 1 .2 0 }
}
geometry Cylinder { radius 2
height 4
}
}

Primitiva Testo

#VRML V2.0 utf8
# testo VRML

Shape {
appearance Appearance {
material Material { emissiveColor 0 0.5 1 }
}
geometry Text { string "Hello"

}
}

Ti consigliamo anche