VRML, tridimensionalita' e comunicazione in rete.
Introduzione al linguaggio VRML ed all'utilizzo congiunto di Java.
Esempi di mondi interattivi 3D multiutente.

VRMLdreamers

 

Il VRML e' acronimo di Virtual Reality Modeling Language. Tecnicamente parlando, il VRML non e' ne' realta' virtuale ne' linguaggio di progettazione. La realta' 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 ne' preclude la full immersion. Inoltre, un vero linguaggio di progettazione conterrebbe primitive e meccanismi di progettazione geometrici molto piu' elaborati.

Se il VRML non e' ne' realta' virtuale ne' linguaggio di progettazione, allora cos'e'? 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 proprieta' dei materiali e la mappatura delle textures.

Pur descrivendo scenari tridimensionali, il VRML e' un linguaggio che potrebbe essere considerato equivalente all'HTML: e' 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 e' gia' provvisto.

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

La risposta, piu' pubblicizzata e discussa, e' che il VRML e' la base del cyberspace e delle comunita' 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.

Cosi' la risposta alla domanda Cos'e' il VRML? e' in realta' l'insieme delle risposte sopra descritte e non sara' mai, probabilmente, un'unica semplice risposta. Ci sono, comunque, alcune risposte errate. Ad esempio, il VRML non e' 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 realta', il VRML e' 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 potenzialita' 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 e' stato creato per aumentare le potenzialita' 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 piu' interessanti di quelle possibili con il VRML 1.0. Fu deciso che la parte standard del VRML 2.0 non avrebbe avuto delle caratteristiche piu' 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 semplicita' fu un importante limite della progettazione. Il successo del formato HTML ha motivato questo limite. Poiche' e' possibile creare pagine Web con un qualsiasi generico editore di testo, e poiche' e' 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 e' molto piu' complesso del VRML 1.0, sono gia' 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 perche' era portabile per una varieta' di piattaforme e perche' 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 capi' l'idoneita' 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 meta' del 1995 la specifica del VRML 1.0 subi' una varieta' di patches, ma resto' 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 prosegui' 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 concordo' 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 e' nota come VRML97. Dopo una votazione durata quattro mesi dell'ISO DIS, il VRML97 verra' inoltrato per la pubblicazione come un ISO standard verso la meta' del 1997 [6]. Il testo verra' pubblicato elettronicamente come documento HTML e segnera' la prima volta che un ISO standard viene pubblicato in questo modo.

VRML e WWW

Il VRML e' 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 puo' 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 e' 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 scoprira' che ci sono diversi modi per usare Java in tal senso: verranno tutti analizzati e quindi sara' 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'e' 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 necessita' 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 e' 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 e' possibile associare un'applet Java che puo' gestire il suo comportamento: animazione, reazione ad input esterni ed interni. Un'interfaccia esterna (EAI), invece, ha la proprieta' di gestire una scena tridimensionale da un'applet esterna al file VRML. Attraverso una pagina HTML essa puo' ricevere dati dall'utente e, in base ad essi, modificare lo scenario VRML. Mediante l'interfaccia esterna e' anche possibile il percorso inverso: un cambiamento nella scena tridimensionale puo' giungere all'utente tramite l'applet Java inclusa nel file HTML e rappresentarsi in una qualsiasi forma, che sia numerica, grafica o sonora.

Sabato 6 Giugno
ore 16.00 - 18.00
Spazio: Sala Navigazione


[ Torna da dove sei venuto ]