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.