Global Village Technology Forum: VRML (newbie page)


Prodotto da Kevin Hughes, kevinh@eit.com, Enterprise Integration Technologies.

di Marco A. Calamari


Ringraziamenti

Desideriamo ringraziare innanzitutto coloro che hanno contribuito a trasformare VRML da puro ideale a una realtà per tutti noi. I guru del VRML Brian Behlendorf, Gavin Bell, Tony Parisi, Mark Pesce e i responsabili del VRML Repository (un'inestimabile fonte di informazioni) Charles Eubanks, John Moreland e Dave Nadeau. Un grazie tutto speciale e sentito a Mark Owens di InterVista Software per l'assistenza fornita a tutti. Noi e molti altri in tutto il mondo, ossia coloro che forse hanno sentito parlare di VRML, dobbiamo molto a costoro e a tutti gli altri che hanno lavorato intensamente sulle specifiche e il software VRML.


Che cos'è il VRML?

VRML è un linguaggio di descrizione degli oggetti tridimensionali e del loro comportamento che per alcuni aspetti rappresenta per lo spazio tridimensionale ciò che lo standard HTML rappresenta sulla pagina bidimensionale. E questo è vero, ma solo come considerazione generale. Da un punto di vista tecnico, le differenze sono notevoli.

Lo standard HTML è un linguaggio ASCII, basato su marcatori originati da SGML, un linguaggio creato per consentire che informazioni basate su testo, quali libri o database, possano essere trasferite da un sistema di archiviazione ad un altro.

Anche il linguaggio VRML è in formato ASCII, ma non si basa su marcatori, ed è leggermente orientato agli oggetti con una sintassi simile al linguaggio C o C++. Non esiste un passaggio di testimone, oggetti complessi possono essere semplicemente creati da un gruppo di oggetti più semplici. La base del linguaggio VRML non è stata creata dal nulla, ma mediante Silicon Graphics Open Inventor, un formato per un prodotto SGI che (e ancora una volta subebtra un'azione più che intelligente) è stato messo nel dominio pubblico.


(Stralci delle specifiche di VRML 1.0)

Virtual Reality Modeling Language (VRML) è un linguaggio per la descrizione di simulazioni interattive a più partecipanti, mondi virtuali collegati da Internet e con riferimenti l'uno all'altro mediante World Wide Web. Tutti gli aspetti di visualizzazione, interazione e internetworking del mondo virtuale possono essere specificati mediante VRML. E' intento degli sviluppatori di questo linguaggio fare di VRML lo standard per la simulazione interattiva all'interno del World Wide Web.

La prima versione di VRML consente la creazione di mondi virtuali con un comportamento interattivo limitato. Questi mondi possono contenere oggetti con collegamenti ipertestuali ad altri mondi, documenti HTML o altri tipi MIME validi. Quando l'utente seleziona un oggetto con un collegamento ipertestuale, viene avviato il viewer MIME corretto. Quando l'utente seleziona un collegamento a un documento VRML da un browser WWW configurato correttamente, viene avviato un viewer VRML. I viewer VRML sono dunque le applicazioni perfette per i browser standard di WWW per la navigazione e la visualizzazione del Web. Le versioni future di VRML consentiranno comportamenti più complessi, che comprenderanno animazioni, fisica e interazione tra più utenti in tempo reale.

Scopi del linguaggio VRML

La storia di Internet si è sviluppata in tre fasi distinte: innanzitutto lo sviluppo dell'infrastruttura TCP/IP che ha consentito di immagazzinare documenti e dati in modi pressochè indipendenti, ossia Internet ha fornito un livello di astrazione tra i set di dati e gli host che li gestiscono. Sebbene utile, questa astrazione è stata anche fonte di confusione. Infatti, senza alcuna idea ben chiara su "cosa va dove", l'accesso a Internet è rimasto limitato alla classe dei sysop e dei netsurfer che potevano avere mappe cognitive interne con le posizioni dei dati.

E' quindi seguito il lavoro di Tim Berners-Lee al CERN, in cui ha sviluppato il sistema di collegamenti ipertestuali conosciuto come World Wide Web, aggiungendo un altro livello di astrazione alla struttura esistente. Questo grado di astrazione ha fornito uno schema di "indirizzamento" con un identificativo univoco (the Universal Resource Locator) in grado di dire a chiunque "dove andare e come arrivarci" relativamente ai dati del Web. Anche se utile, questo metodo non ha dimensionalità, non c'è un qui nel web, e l'unico tipo di navigazione possibile (che non sia il surfing) è per riferimenti diretti. In altre parole, si può solo indicare come arrivare alla home page di VRML Forum dicendo "http://www.wired.com/", che non è un'informazione 'a misura d'uomo'. Occorre infatti sforzarsi di ricordare tutto l'indirizzo. Quindi, mentre il World Wide Web costituisce un sistema di richiami con funzione complementare al meccanismo di memorizzazione, lascia molto a desiderare, in particolare dal punto di vista dell'utente.

Arriviamo infine alle reti Internet "percettive" in cui i dati sono stati resi sensibili, o percepibili. Se qualcosa viene rappresentato in modo sensibile, è possibile estrapolarne il senso. VRML è un tentativo (riuscito o meno, solo il tempo potrà deciderlo) di porre l'uomo al centro di Internet, subordinandone il meccanismo ai nostri capricci. Per arrivare a ciò, l'elemento singolo più importante è uno standard che definisca le particolarità della percezione. Il linguaggio VRML rappresenta proprio questo standard, essendo inteso come linguaggio descrittivo universale per simulazioni a più partecipanti.

Queste tre fasi, immagazzinamento, richiamo e sensibilizzazione sono i corrispondenti del processo umano della consapevolezza, intesa come semantica e cognizione. Si verificano eventi che vengono registrati (memoria), dalla memoria vengono quindi estrapolate inferenze (associazioni), e da serie di eventi correlati vengono quindi create mappe dell'universo (percezione cognitiva). Ciò che si deve assolutamente ricordare è che la mappa non è il territorio, e dobbiamo quindi evitare di rimanere intrappolati in qualsiasi rappresentazione o visione del mondo singola. Anche se dobbiamo creare per evitare il disorientamento, dobbiamo sempre puntare ad eseperienze percepibili.

Questo documento è un prova tangibile del successo di un processo che doveva essere aperto e flessibile, pronto a rispondere alle esigenze della comunità web in costante espansione. Invece di reinventare tutto, abbiamo adottto una specifica già esistente (Open Inventor) come base da cui potesse crescere il nostro lavoro, evitando anni di sviluppo e ricerca e, forse, numerosi errori. A questo punto il nostro lavoro può iniziare.

La storia di VRML in breve

Il linguaggio VRML è stato concepito nella primavera del 1994 alla prima World Wide Web Conference annuale tenuta a Ginevra in Svizzera. Tim Berners-Lee e Dave Raggett hanno organizzato una sessione Birds-of-a-Feather (BOF) per discutere le interfacce della realtà virtuale sul World Wide Web. Numerosi partecipanti del BOF hanno descritto progetti già in corso per la costruzione di tool di visualizzazione grafica tridimensionale in grado di interagire con il Web. I partecipanti hanno concordato sulla necessità che questi tool abbiano un linguaggio comune di descrizione del scenario tridimensionale e dei collegamenti ipertestuali, un codice simile al linguaggio HTML, ma per la realtà virtuale. Ecco quindi la nascita del nome Virtual Reality Markup Language (VRML). Il gruppo di partecipanti ha quindi deciso di incominciare i lavori di specifica subito dopo la conferenza. La parola 'Markup' è stata quindi sostituita con 'Modeling' per rispecchiare la natura grafica del VRML.

Poco dopo la sessione BOF di Ginevra, è stata creata la mailing list www-vrml per discutere lo sviluppo delle specifiche della prima versione di VRML. La risposta a questa iniziativa è stata immensa, dopo solo una settimana di esistenza, i suoi partecipanti erano già oltre mille. Dopo un periodo iniziale di assestamento, il moderatore della lista, Mark Pesce del Labyrinth Group ha annunciato la sua intenzione di avere pronta una prima versione delle specifiche entro la conferenza sul Web dell'autunno 1994, ossia cinque mesi dopo. Nella lista era idea comune che, nonostante i tempi brevi, questo obiettivo era comunque realizzabile, a condizione che i requisiti della prima versione non fossero troppo ambiziosi e che VRML potesse essere adattato da una soluzione già esistente. La mailing list ha subito approvato una serie di requisiti per la prima versione ed ha quindi avviato un lavoro di ricerca di tecnologie che potessero soddisfare i requisiti del linguaggio VRML.

La ricerca di tecnologie esistenti ha trovato numerosi e validi candidati. Dopo lunghi dibattiti, la mailing list è giunta a un accordo: Open Inventor ASCII File Format di Silicon Graphics, Inc. L'Inventor File Format supporta descrizioni complete di realtà tridimensionali con un rendering poligonale, proprietà ambientali per quanto riguarda materiali e luci ed effetti di realismo. Una parte di Inventor File Format, insieme ad estensioni di supporto del networking, costituisce la base del VRML. Gavin Bell di Silicon Graphics ha quindi adottato Inventor File Format per VRML, con spunti dalla mailing list. SGI ha dichiarato pubblicamente che il formato file è disponibile per essere utilizzato sul mercato, e ha fornito un parser di pubblico dominio per contribuire allo sviluppo dei viewer VRML.

Nozioni di base sul linguaggio

Visto al massimo livello di astrazione, VRML è puramente un modo con cui gli oggetti leggono e scrivono se stessi. In teoria, gli oggetti possono contenere di tutto, geometria tridimensionale, dati MIDI, immagini JPEG, proprio tutto. VRML definisce un set di oggetti utili per creare grafiche tridimensionali. Questi oggetti vengono chiamati nodi.

I nodi vengono disposti in strutture gerarchiche chiamate scene graph. Gli scene graph sono più di una serie di nodi, in quanto definiscono l'ordine dei nodi stessi. Gli scene graph hanno una connotazione di stato, ossia i nodi all'inizio della scena possono influenzare i nodi successivi. Per esempio, un nodo di rotazione o materiale può influire sui nodi che lo seguono nella scena. E' stato poi definito un meccanismo che limita gli effetti delle proprietà, tramite i nodi separator, che consente aparti delle scene graph di essere funzionalmente isolate dalle altre parti.

Requisiti della versione 1.0

VRML 1.0 è stato progettato per rispondere ai seguenti requisiti:

Come per l'HTML, i criteri descritti sopra sono requisiti assoluti per un linguaggio standard di rete e richiedono quindi una spiegazione minima.

Ma da subito gli scrittori di questo linguaggio hanno stabilito che non dovesse essere un'estensione dell'HTML, che è stato creato per il testo, non per la grafica. Inoltre, VRML richiede ottimizzazioni di rete regolate ancora più finemente rispetto all'HTML. Si prevede infatti che uno scenario VRML tipico sia composto da più oggetti "inline" e servito da molti più server rispetto a un documento HTML. Inoltre, HTML è uno standard accettato, passibile di miglioramenti. Fermare il processo di sviluppo di HTML con tematiche inerenti al linguaggio VRML e minacciare la procedura di creazione del VRML con la compatibilità con HTML non potrebbe fare altro che danneggiare entrambi i linguaggi. Come linguaggio di rete, VRML dovrà riuscire ed essere indipendente dall'HTML.

E' stato inoltre deciso che, ad eccezione della funzione dei collegamenti ipertestuali, la prima versione di VRML non avrebbe supportato comportamenti interattivi, una decisione pratica mirata a definire e limitare il processo di creazione e implementazione del linguaggio. La creazione di un linguaggio per la descrizione di comportamenti interattivi è un lavoro imponente, soprattutto se il linguaggio deve esprimere comportamenti di oggetti in comunicazione in rete. Questi linguaggi esistono; se avessimo dovuto sceglierne uno, avremmo rischiato di scatenare una "guerra dei linguaggi". La gente non si entusiasma per la sintassi di descrizione di oggetti poligonali, ma si interessa molto alla sintassi del linguaggio impiegato per scrivere i programmi. Queste crociate possono allungare il processo di creazione del linguaggio di mesi o anni. In più, il funzionamento tra oggetti collegati in rete richiede servizi di mediazione quali CORBA o OLE, servizi che non esistono ancora su WWW, dovremmo inventarli. Infine, lasciando le interazioni fuori dalla versione 1, abbiamo limitato il compito di implementazione di un viewer. Siamo altresì consci che il supporto di comportamenti interattivi arbitrari è di fondamentale importanza per il successo a lunga scadenza di VRML. Questo supporto verrà quindi incluso nella versione 2.


Marco Calamari (marcoc@dada.it) si occupa di nuove tecnologie applicate alla formazione in Elea FP.