<-- torna alle FAQ


VRML, tridimensionalità e comunicazione in rete.

Introduzione al linguaggio VRML ed all'utilizzo congiunto di Java.
Esempi di mondi interattivi 3D multiutente.

a cura dei VRMLdreamers

Sabato 6 Giugno
ore 16.00 - 18.00
Spazio: Teatro


Programma

Il VRML è acronimo di Virtual Reality Modeling Language. Tecnicamente parlando, il VRML non è né realtà virtuale né linguaggio di progettazione. La realtà virtuale in particolare implica una esperienza full immersion in 3D (ad esempio un casco virtuale) e dispositivi input 3D (ad esempio i guanti digitali). Il VRML non richiede né preclude la full immersion. Inoltre, un vero linguaggio di progettazione conterrebbe primitive e meccanismi di progettazione geometrici molto più elaborati.

Se il VRML non è né realtà virtuale né linguaggio di progettazione, allora cos'è? Ci sono molte risposte a questo interrogativo. Esso definisce la maggior parte delle semantiche comunemente usate presenti nelle applicazioni tridimensionali di oggi, come le trasformazioni ereditarie, le fonti di luce, i viewpoints, l'animazione, l'effetto nebbia, le proprietà dei materiali e la mappatura delle textures.

Pur descrivendo scenari tridimensionali, il VRML è un linguaggio che potrebbe essere considerato equivalente all'HTML: è un linguaggio semplice, riconosciuto da tutti i sistemi operativi, per la realizzazione di pagine
Web tridimensionali. Il VRML viene utilizzato per visualizzare le informazioni che vengono valorizzate meglio tridimensionalmente, come ad esempio i giochi, le visualizzazioni scientifiche, le dimostrazioni didattiche e l'architettura. In particolare questi tipi di progetti richiedono massima interazione, animazione, la partecipazione dell'utente e l'esplorazione oltre la statica visualizzazione di testi e immagini di cui l'HTML è già provvisto.

Il VRML fornisce anche la tecnologia che integra tre dimensioni, testo e multimedialità in un unico modello logico. Quando questi tipi di media vengono combinati con linguaggi script e le possibilità di Internet, si ha un genere interamente nuovo di applicazioni interattive.

La risposta, più pubblicizzata e discussa, è che il VRML è la base del cyberspace e delle comunità virtuali on-line che sono state descritte e rese popolari dagli scrittori di fantascienza, William Gibson in Neuromancer e Neal Stephenson in Snow Crash. Ma i critici hanno accuratamente fatto notare che il VRML non definisce ancora i protocolli di rete e del database necessari per vere simulazioni multiutente.

Così la risposta alla domanda "Cos'è il VRML?" è in realtà l'insieme delle risposte sopra descritte e non sarà mai, probabilmente, un'unica semplice risposta. Ci sono, comunque, alcune risposte "errate". Ad esempio, il VRML non è una libreria di programmazione per le applicazioni tridimensionali. Dal momento che il VRML si basa sul formato Open Inventor, molti ipotizzano che fornisca anche le numerose interfacce di programmazione e gli strumenti inclusi nel pacchetto Open Inventor. In realtà, il VRML è una parte (e non solo) del formato Open Inventor e non definisce alcuna interfaccia per la programmazione delle applicazioni (API). Il fatto che il VRML includa l'integrazione del linguaggio script contribuisce a creare questo equivoco. Le potenzialità del linguaggio script sono in particolar modo rivolte agli autori che hanno bisogno di maggiore potenza o integrazione.

Obiettivi e limiti della progettazione del VRML 2.0

Il VRML 2.0 è stato creato per aumentare le potenzialità del VRML 1.0, che descriveva soltanto oggetti e scene statiche. L'obiettivo del VRML 2.0 era piuttosto modesto: permettere agli oggetti in un ambiente di muoversi e all'utente di interagire con essi, consentendogli di avere delle esperienze più interessanti di quelle possibili con il VRML 1.0. Fu deciso che la parte standard del VRML 2.0 non avrebbe avuto delle caratteristiche più ambiziose, come ad esempio la multiutenza. Ci si aspetta che molte estensioni al VRML 2.0 saranno implementate e testate, e quelle migliori faranno parte in futuro della versione standard.

La semplicità fu un importante limite della progettazione. Il successo del formato HTML ha motivato questo limite. Poiché è possibile creare pagine Web con un qualsiasi generico editore di testo, e poiché è relativamente facile creare un browser HTML, le piccole organizzazioni e i singoli individui hanno rapidamente realizzato migliaia di pagine Web ed una moltitudine di browsers. Anche se il VRML 2.0 è molto più complesso del VRML 1.0, sono già disponibili diversi browsers per il VRML 2.0., e molti altri sono in fase di progettazione.

Storia della specifica VRML

Nel 1989 fu iniziato un nuovo progetto alla Silicon Graphics, Inc., da Rikk Carey e Paul Strauss per progettare e costruire un'infrastruttura per applicazioni grafiche interattive in 3D.
Nel 1992 il toolkit in 3D Iris Inventor fu distribuito come il primo prodotto di questa ricerca. Iris Inventor fu un toolkit progettato in C++ che definiva molte delle semantiche oggi presenti nel VRML. Una parte importante del toolkit Inventor fu il formato del file usato per registrare gli oggetti dell'applicazione. Sin dall'inizio, il formato del file Inventor fu progettato per essere leggero e facile da usare. Nel 1994 fu distribuita la seconda revisione dell'Inventor. Fu chiamata Open Inventor perché era portabile per una varietà di piattaforme e perché si basava sull'Open GL della Silicon Graphics. Il manuale che descrive gli oggetti e il formato del file nel toolkit dell'Open Inventor fu usato alla fine da Gavin Bell per scrivere la prima bozza della specifica del VRML 1.0.

Nel 1994 Mark Pesce e Tony Parisi costruirono un primo prototipo di un browser 3D per il WWW, chiamato Labyrinth. Successivamente, sempre nel 1994, Mark e Brian Behlendorf crearono la mailing list del VRML, www-VRML, e fecero richiesta di proposte per una specifica ufficiale per il 3D sul WWW. Gavin Bell capì l'idoneità ovvia dell'Inventor e immediatamente mise insieme una proposta basata sull'Open Inventor scegliendo gli elementi fondamentali del formato Inventor (tralasciando le parti complesse), aggiungendo un paio di caratteristiche necessarie del WWW (i nodi WWWAnchor e WWWInline), usando il manuale di riferimento dell'Inventor come punto di partenza per il testo. Dopo un dibattito stimolante nella mailinglist, la proposta di Inventor fu votata come il documento di lavoro per la specifica. Gavin, con l'aiuto di Tony, Rikk e molti ingegneri dell'Inventor, revisionarono e perfezionarono la prima bozza della specifica del VRML 1.0. Nell'ottobre del 1994 alla Seconda Conferenza Internazionale sul World Wide Web a Chicago, fu
pubblicata la specifica.

Durante la prima metà del 1995 la specifica del VRML 1.0 subì una varietà di patches, ma restò praticamente immutata. Fino all'agosto del 1995 si discusse molto sulla mailinglist della creazione di un VRML 1.1 o di un VRML 2.0. Alcuni pensavano che il VRML avesse bisogno solo di poche ulteriori caratteristiche, mentre altri ritenevano che avesse bisogno di una revisione completa. Ma tutti concordarono che al VRML 1.0 mancassero delle caratteristiche chiave (animazione, interazione e comportamento) e che avesse bisogno di una considerevole revisione. Il dibattito proseguì da settembre a dicembre senza giungere a nessun risultato chiaro. Nel gennaio del 1996 fu fatta circolare la richiesta di proposte per il VRML 2.0 nella mailing list del VRML. La proposta Moving Worlds presentata dalla Silicon Graphics, Inc. in collaborazione con la Sony Corporation e Mitra, ebbe una schiacciante maggioranza di voti e divenne il documento di lavoro della specifica del VRML 2.0. Nell'agosto del 1996 al SIGGRAPH 96 a New Orleans, fu distribuita la prima versione del VRML 2.0.

Nella riunione a Kyoto del luglio 1996, il comitato dell'International Standards Organization (ISO) JTC1/SC24 concordò di pubblicare la versione datata agosto 1996 del VRML 2.0 come Committee Draft (CD) 14772. Il testo del Draft International Standard (DIS) fu presentato ad aprile 1997. Questa prima stesura della specifica del VRML è nota come "VRML97". Dopo una votazione durata quattro mesi dell'ISO DIS, il VRML97 verrà inoltrato per la pubblicazione come un ISO standard verso la metà del 1997 [6]. Il testo verrà pubblicato elettronicamente come documento HTML e segnerà la prima volta che un ISO standard viene pubblicato in questo modo.

VRML e WWW

Il VRML è progettato per adattarsi all'infrastruttura esistente di Internet e del WWW. Utilizza standards esistenti ovunque sia possibile, anche se presentano delle carenze quando vengono usati con il VRML. Usare gli standards esistenti invece di idearne di nuovi, incompatibili, facilita il compito dello sviluppatore Web, che può usare gli strumenti esistenti per creare files VRML. I files VRML possono contenere riferimenti a files di molti altri formati standards. I files JPEG, PNG, GIF e MPEG possono essere usati come mappe di textures sugli oggetti. I files WAV e MIDI possono essere usati per specificare il suono emesso nello scenario. I files contenenti il codice Java o JavaScript possono essere usati per implementare il comportamento programmato degli oggetti nei propri scenari. Ciascuno di questi è uno standard indipendente, scelto per essere usato con il VRML per il suo utilizzo diffuso su Internet.

Interfacce Java per il VRML

Per interfaccia Java si intende l'uso di questo linguaggio per poter gestire, controllare e generare scene tridimensionali. Si scoprirà che ci sono diversi modi per usare Java in tal senso: verranno tutti analizzati e quindi sarà approfondito uno in particolare, l'EAI (acronimo di External Authoring Interface) che permette ad un applet Java di poter controllare un mondo VRML.

L'utilizzo congiunto di questi due linguaggi di programmazione permette al programmatore di avere a disposizione una vasta gamma di strumenti, metodi, funzioni prettamente multimediali e capaci di condividere nella rete le proprie risorse. Il Java ha bisogno del VRML per poter meglio visualizzare dati e oggetti che altrimenti verrebbero rappresentati solo da immagini statiche; il VRML ha bisogno del Java per poter gestire, controllare, creare scene tridimensionali.

C'è quindi una doppia implicazione che tiene legati questi due linguaggi, che oggi - visto l'attuale utilizzo di queste due tecnologie - potremmo definire complementari.

Per utilizzare questi linguaggi congiuntamente diventa primaria la necessità di poter disporre di un'interfaccia capace di mettere in comunicazione, o semplicemente condividere, le risorse di entrambi i linguaggi. Allo stato attuale esistono due tipi di interfacce disponibili: interna ed esterna. La prima è contemplata per poter includere in un file VRML un'applet Java che con il codice VRML ne condivide variabili e funzioni. In pratica ad un oggetto VRML è possibile associare un'applet Java che può gestire il suo comportamento: animazione, reazione ad input esterni ed interni.
Un'interfaccia esterna (EAI), invece, ha la proprietà di gestire una scena tridimensionale da un'applet esterna al file VRML. Attraverso una pagina HTML essa può ricevere dati dall'utente e, in base ad essi, modificare lo scenario VRML. Mediante l'interfaccia esterna è anche possibile il percorso inverso: un cambiamento nella scena tridimensionale può giungere all'utente tramite l'applet Java inclusa nel file HTML e rappresentarsi in una qualsiasi forma, che sia numerica, grafica o sonora.