850 likes | 1.07k Views
X3D. X3D. Cristina Donati. 1. Percorso. Introduzione a X3D Obiettivi di progettazione Un po’ di storia Obiettivi principali della specifica X3D Caratteristiche Mercati coinvolti Architettura Componenti Esempi. X3D. Cristina Donati. 2. Introduzione.
E N D
X3D X3D Cristina Donati 1
Percorso • Introduzione a X3D • Obiettivi di progettazione • Un po’ di storia • Obiettivi principali della specifica X3D • Caratteristiche • Mercati coinvolti • Architettura • Componenti • Esempi X3D Cristina Donati 2
Introduzione X3D è uno standard di formato di file potente ed estensibile per descrivere ambienti virtuali tridimensionali distribuiti per la rete. X3D Cristina Donati 3
Introduzione X3D è sviluppato dal Web 3D Consortium, associazione non profit responsabile della definizione degli standard grafici 3D per il web. Web 3D lavora in stretto contatto con altre associazioni quali the International Standards Organization (ISO), the World Wide Web Consortium (W3C) e the MPEG-4 Committee, per facilitare al massimo l'interoperabilità e l'adozione dei propri standard da parte delle industrie. X3D Cristina Donati 4
Introduzione X3D fornisce: XML encoding rende possibile l'incorporazione del 3D nell'architettura web service e negli ambienti distribuiti e facilita il trasferimento di dati 3D fra applicazioni. Scene Authoring Interface fornisce contenuti 3D in tempo reale e controlla facilmente la loro integrazione in un'ampia gamma di applicazioni web e non. X3D Cristina Donati 5
Introduzione X3D è il successore di VRML (standard ISO -ISO/IEC 14772-1:1997- per web basati su grafica 3D) Il campo di azione dell'X3D va a sovrapporsi al già affermato VRML97. Infatti, questo standard, nasce come sforzo per migliorare la specifica Vrml97, cercando di prendere spunto da quanto di buono essa contiene e di correggere le palesi difficoltà di implementazione o diffusione da essa mostrate. I progressi dell'X3D rispetto il VRML riguardano nuove caratteriche, applicazioni avanzate di interfacce programmatori, formati addizionali di codifica dei dati, conformità più ristretta e un'architettura costituita da componenti che fornisce l'approccio modulare di supporto allo standard. X3D Cristina Donati 6
Obiettivi di progettazione • Separare l'architettura di runtime dalla codifica dei dati • Supportare svarietà formati di codifica, incluso l'Extensible Markup Language (XML) • Aggiungere nuove grafiche, comportamenti e oggetti interattivi • Fornire alternative application programmer interfaces (API) nella scena 3D • Modularizzare l'architettura in componenti • Definire sottoinsiemi della specifica ( " Profiles" ) che soddisfino le differenti necessità di mercato • Permettete alla specifica di essere realizzata a diversi livelli di servizio • Eliminare, dove possibile, comportamenti non specificati o non sufficientemente specificati X3D Cristina Donati 7
Un po' di storia Fase iniziale del processo di definizione del nuovo standard portata avanti da uomini della Platinum (società che nella seconda metà del 98 aveva mostrato un grosso interesse per il settore andando ad acquistare alcune tra le principali tecnologie disponibili). Modalità di avanzamento del processo profondamente diverse da quelle che avevano caratterizzato la definizione di Vrml 1.0 e Vrml 2.0. X3D Cristina Donati 8
Un po' di storia Colpo di scena in occasione di VRML99 tenutosi a Paderborn in Germania a febbraio. La Platiunum annunciò la liquidazione del settore 3D con licenziamenti a valanga: una mossa che sorprese un po’ tutti, visto che arrivava 6 mesi dopo l'acquisizione di risorse strategiche nel settore. Dopo un iniziale periodo di sbandamento, la comunità internazionale web3d prese in mano il processo di definizione dello standard X3D. Si formò un team di sviluppo (periodo marzo-aprile 1999) capeggiato da Don Brutzman, attuale coordinatore del processo di definizione. X3D Cristina Donati 9
Un po' di storia Ancora una volta il processo di definizione delle nuove specifiche è sembrato troppo lento e soprattutto non in linea con la storia recente di Vrml che aveva visto la mailing list www-vrml sempre in primo piano: in particolare nel periodo che va dall’aprile al giugno 99 molto forti erano le lamentele circa un processo di standardizzazione che sembrava procedere in modo autonomo rispetto alla comunità web3d. X3D Cristina Donati 10
Un po' di storia Un evento 'imprevisto' sbloccò la situazione. Shout Interactive, società emergente nel settore Vrml e una tra le maggiori promotrici di X3D, sottomise al Web3D Consortium una proposta di specifica, fornendo anche una parziale implementazione già attiva. Subito dopo anche Blaxxun rilasciava un propria proposta, seguita a ruota da un'altra di New Objectivity. Queste iniziative hanno probabilmente colto leggermente di sorpresa il team di sviluppo di X3D, obbligandolo di fatto a modificare il procedimento di sviluppo della specifica. X3D Cristina Donati 11
Un po' di storia Si giunse alla definizione ufficiale di una Request For Proposal in cui far confluire le diverse proposte che già erano state presentate (o che stavano per essere completate). Partendo da queste il compito del team X3D dovrebbe essere quello di giungere alla definizione di un unico standard che sia in grado di sommare gli aspetti positivi di ognuna. Da poco è stata rilasciata una nuova draft di specifica per x3d. Il procedimento di definizione e soprattutto di valutazione è tuttora pienamente in corso. X3D Cristina Donati 12
Un po' di storia X3D Cristina Donati 13
Obiettivi principali della specifica X3D Definizione di un core, un nucleo molto compatto della specifica che possa essere implementato velocemente, senza errori e con ridottissime dimensioni dei files risultanti. Questo comporta la possibilità di ottenere plug-in dalle dimensioni molto piccole (dell'ordine anche del centinaio di Kb) e quindi facilmente incorporabili nei browser html. Da sottolineare è che questo permette che contenuti X3D possano essere distribuiti addirittura con delle semplici applet Java che funzionano da viewer. E' da sottolineare come questo permetta di distribuire contenuti X3D utilizzando come viewer delle semplici applet Java. X3D Cristina Donati 14
Obiettivi principali della specifica X3D Estendibilità Il core dovrebbe prevedere la possibilità di essere esteso con quelli che vengono definiti profili. Dovrebbe dunque essere presente un meccanismo che consente l'estensione del plug-in (o del viewer Java). Integrazione con XML Sarà dunque possibile creare contenuti X3D con una sintassi a tag XML. X3D Cristina Donati 15
Obiettivi principali della specifica X3D • X3D non comporta la morte di VRML. • VRML97 è uno standard ISO e in quanto tale rimarrà attivo. La sintassi X3D è praticamente identica alla sintassi Vrml, con piccole varianti che nelle intenzioni dovrebbero semplificare la scrittura del codice e renderlo più semplice e coerente. X3D Cristina Donati 16
Obiettivi principali della specifica X3D X3D Cristina Donati 17
Cosa ha portato a definire il nuovo standard X3D? • La necessità di disporre di un plug-in lato client per visualizzare i file VRML che spesso raggiunge dimensioni superiori anche ai 3Mb. Se si pensa che meno del 10% degli utenti della rete ha installato un plug-in vrml si possono comprendere molte delle resistenze delle aziende nella sua adozione come mezzo di comunicazione di massa.Non solo: molto spesso le funzionalità più evolute non sono implementate nello stesso modo su tutti i plug-in e addirittura su alcuni non funzionano. Questo è dovuto essenzialmente alla complessità della specifica Vrml97. La specifica attuale è a detta di tutti troppo complessa per permettere agli sviluppatori di browsers di ottenere prodotti leggeri e privi di bug. X3D Cristina Donati 18
Cosa ha portato a definire il nuovo standard X3D? Problema di estensioni che limita Vrml nella sua versione attuale. Attualmente non esiste un modo (a parte l'utilizzo dei PROTO) per realizzare estensioni alle funzionalità preimpostate. Se qualcuno volesse aggiungere collision object to object o ombre dovrebbe realizzare soluzioni proprietarie e, eventualmente, richiedere una successiva modifica dello standard. X3D Cristina Donati 19
Cosa ha portato a definire il nuovo standard X3D? A fronte di queste problematiche il Web3D Consortium ha lanciato la proposta di definizione di un nuovo standard. Inizialmente denominato VRML-NG (Next-Generation) È stato poi ribattezzato X3D, dove la X andrebbe a sottolineare sia l'aspetto di estendibilità che la sua integrazione con XML, il nuovo standard per la definizione di contenuti per il web. X3D Cristina Donati 20
Caratteristiche • X3D ha un ricco insieme di caratteristiche per sostenere applicazioni come ingegneria e visualizzazione scientifica, presentazioni multimediali, intrattenimento e titoli didattici, pagine web e mondi virtuali condivisi. L'insieme di caratteristiche X3D include: • grafica 3D – geometria poligonale, geometria parametrica, trasformazioni gerarchiche, illuminazione, materiali e multi-pass/multi-stage texture. • grafica 2D • Animazione • Interazione di utente • Navigazione • Oggetti definiti dall'utente • Scripting • Rete di servizi • Simulazione fisica: animazione Humanoid; geospatial datasets; integrazione con protocolli Distributed Interactive Simulation (DIS) X3D Cristina Donati 21
Caratteristiche Una caratteristica importante di file X3D è la capacità di comporre scene includendo e riportando altre scene tramite l'hyperlinking. Ad esempio, se consideriamo il file earth.wrl, specifica un mondo che contiene una sfera che rappresenta la terra, possiamo includere riferimenti ad altri file X3D rappresentativi delle città sulla terra (per esempio, file paris.wrl). L'inclusione di file gerarchici permette la creazione di mondi arbitrariamente grandi e dinamici. Quindi, X3D assicura che ogni file sia descritto completamente dagli oggetti contenuti in esso. X3D Cristina Donati 22
Caratteristiche X3D è stato creato con l'intenzione di essere usato e distribuito sul web. Diversi meccanismi e oggetti rendono possibile e supportano questo obiettivo: • in-lining di altri file X3D o VRML; • hyperlinking ad altri file; • utilizzo di formati standard per altri file • accesso ai mondi X3D da parte di programmi esterni che utilizzano SAI (scene authoring interface) • definizione di differenti codifiche delle funzionalità astratte per soddifare svariati utilizzi. X3D Cristina Donati 23
Caratteristiche chiave • X3D integra XML • X3D è intercambiabile: supporta geometria, animazioni, tessiture e accensioni • X3D è estensibile: i componenti possono essere aggiunti per estendere le funzionalità di applicazioni e servizi, esiste un set di “Interchange” con script e di proto nodes, ma ne possono essere aggiunti di nuovi X3D Cristina Donati 24
X3D è definito: set standardizzati di estensioni per soddisfare gli specifici bisogni delle applicazioni • X3D è basato su VRML: include le capacità e gli sviluppi del VRML97 • X3D è proiettato su diverse applicazioni: dai cellulari ai supercomputer X3D Cristina Donati 25
X3D è tempo reale: grafica di alta qualità, tempo reale, interattività e inclusione di audio e video come dati 3D. • X3D è conforme: rende facile costruire implementazioni prive di bug e consistenti X3D Cristina Donati 26
Mercati coinvolti Il consorzio web 3D focalizza la propria attenzione su tre mercati principali e su diversimercati secondari. MERCATI PRINCIPALI: CAD - (CDF) L’iniziativa open standards X3D CAD si occupa di proporre ai consumatori l’accesso ai dati tecnici 3D, integrati nelle loro comuni applicazioni desktopo. Dal lato professionale, nell’ingegneria ad esempio, X3D renderà possibile creare nuovi profitti, aumentare la produttività e tagliare i costi grazie all’accesso a dati grafici, animazioni, materiali e texture. L’aumento di valore nell’area CAD ridurrà I costi delle altre aree. Le applicazioni si possono riscontrare in diverse aree: visualizzazione cliente, comunicazione del design, insegnamento, apprendimendo, documentazione tecnica, vendite e marketing e supporto al cliente. X3D Cristina Donati 27
Mercati coinvolti Medical - MedX3D L'iniziativa medica X3D sta sviluppando uno standard aperto interoperabile per la rappresentazione dell'anatomia umana basata su input generati da una larga varietà di modalità immagine. Questo consentirà di esportare le immagini in file consentendone l'utilizzo sia ai medici che agli studenti sui loro computer. Radiologhi e medici potranno dare risultati e anamnesi ai loro pazienti su CD-ROMS consentendo loro di esaminarli nella privacy casalinga. Se un paziente si è sottoposto a diversi tipi di esami questi possono essere visti e registratidando a medico e paziente un chiaro punto di vista della situazione clinica. I ricercatori potranno esportare i dati da diversi tipi di equipaggiamento fondendoli in una coerente struttura di dati 3D che potranno essere usati sia per l'educazione del paziente, per la diagnosi e per la preparazione chirurgica. X3D Cristina Donati 28
Mercati coinvolti Visual Simulation (XMSF) Extensible Modeling and Simulation Framework (XMSF) è destinato a sostenere l'interoperabilità verso la gamma di modelli e simulazioni includendo metodi costruttivi, virtuali e reali. Utilizza X3D e XML Web services per dar vita a una nuova generazione di simulazioni distribuite. X3D Cristina Donati 29
Mercati coinvolti Geospatial Education Technical Training and Documentation Entertainment and Games X3D Cristina Donati 30
Architettura Archittettura component-based che supporta la creazione di diversi profili che possono essere individualmente supportati. I componenti possono essere singolarmente estesi o modificati aggiungendo nuovi livelli, o nuovi componenti possono essere aggiunti introducendo nuove caratteristiche, ad es. lo streaming. Attraverso questo meccanismo i vantaggi delle specifiche possono diffondersi velocemente perchè lo sviluppo in un'area non rallenta quello delle altre. X3D Cristina Donati 31
Architettura L'architettura X3D descrive l'interazione fra contenuti multimediali 2D e 3D e applicazioni. Contiene sia elementi dichiarativi (quali oggetti e e struttura delle relazioni fra oggetti) che procedure (codice eseguibile). X3D stabilisce una gerarchia di oggetti rappresentando lo spazio temporale della grafica 3D e la scena che può essere dinamicamente modificata tramite diversi meccanismi. X3D include il supporto per un ricco set di caratteristiche grafiche 2D e 3D, animazioni, interazioni utente e navigazione nello spazio 3D. X3D Cristina Donati 32
Architettura Gli autori di contenuti X3D iniziano generalmente scrivendo un file X3D o una stringa contenente lo stato iniziale dell'applicazione, contenente gli statements dichiarativi e procedurali che descrivono il suo comportamento. Un file X3D può essere: puramente dichiarativo, descrivendo i comportamenti in termine di oggetti e di collegamenti fra le proprietà degli stessi puramente procedurale, con elementi visivi e di comportamento costruiti dinamicamente come parti dell'applicazione eseguita. Spesso una scena è una combinazione di entrambe. Browser è un programma che implementa X3D runtime environment Generator o authoring tool è un programma che genera contenuti X3D per il runtime. X3D Cristina Donati 33
Architettura The scene graph La struttura fondamentale di X3D è scene graph, che descrive gli elementi visivi e comportamentali (nodes) e le loro relazioni reciproche. X3D scene graph è un grafo orientato aciclico. Ogni nodo può contenere uno o più nodi figli, e così via. Un nodo figlio può avere più di un nodo padre. Non sono permessi cicli: un nodo non può avere se stesso come antenato nello scene graph. In aggiunta a questa relazione gerarchica, i nodi possono referenziarsi a vicenda, ad esempio un nodo può contenere come campo un puntatore a un altro nodo. X3D Cristina Donati 34
Architettura Runtime environment Mantiene lo stato dello scene graph, restituire la scena quando necessario, ricevere input da una varietà di risorse, quali ad esempio sensori, ed eseguire cambiamenti sullo scene graph rispondendo alle istruzioni del sistema comportamentale. Gestisce il ciclo di vita degli oggetti. Coordina il processo degli eventi Gestisce l'interoperabilità fra il browser X3D e l'applicazione host per la consegna dei file, hyperlinking, integrazione delle pagine e accesso esterno programmatico. X3D Cristina Donati 35
Architettura Network delivery I contenuti X3D sono progettati per diffondersi nel World Wide Web e nelle reti a banda larga utilizzando protocolli standard di trasporto, MIME content type identification, e indirizzamento tramite URL. Inlining Tecnica tramite cui è possibile comporre una scena X3D assemblando sul sistema client per opera del browser diversi file scaricati separatamente. Questa tecnica permette la creazione di contenuti modulari e riutilizzabili, migliorando l'esperienza dell'utente grazie alla riduzione del tempo di risposta successivamente al caricamento della scena iniziale. Hyperlinking caratteristica che consente di attaccare URL agli oggetti, queste saranno caricate dal browseral click dell'utente sull'oggetto. X3D Cristina Donati 36
Profili, componenti, livelli X3D è una specifica complessa e per gestire la complessità ha adottato un'architettura modulare. Contrariamente al VRML, che richiedeva l'adozione dell'intero pacchetto di caratteristiche compliance, X3D permette agli sviluppatori di supportare un sottoinsieme delle specifiche (Profiles), composti da blocchi modulari di funzionalità (Components). Non tutti i contenuti richiedono le stesse qualità di visualizzazione e le stesse performance, pertando X3D consente alle specifiche di essere supportate con differenti qualità del servizio (Levels). Unendo profili, componenti e livelli otteniamo diverse gamme di confomant implementations a seconda della piattaforma e dell'applicazione di cui abbiamo bisogno. X3D Cristina Donati 37
Profili, componenti, livelli PROFILES Sottoinsieme delle specifiche X3D per incontrare le esigenze di applicazioni, piattoforme e mercati. Ogni profilo rappresenta un insieme di caratteristiche volte a soddisfare le esigenze. Per esempio Interchange profile per scambiare contenuti fra authoring system: contiene le caratteristiche richieste per specificare geometria, gruppi, apparenza e animazioni, ma non contiene l'interattività, i controlli di navigazione, lo scripting e le altre caratteristiche contenute nella specifica X3D. Per semplificare l'implementazione o ridurre la memoria richiesta la descrizione di un profilo deve contenere specifiche restrizioni su certe caratteristiche, quali la limitazione delle dimensioni degli degli array ad esempio. Browser e authoring tool sono considerati conformi a un particolare profilo se non implementano l'intera specifica X3D. X3D Cristina Donati 38
Profili, componenti, livelli COMPONENTI Le capacità dell'X3D sono definite da blocchi distinti di funzionalità o componenti. I componenti sono divisi in gruppi quali Geometry, Grouping, Lighting, Texturing, Pointing Device Sensors, e Navigation. Rispettando le specifiche necessarie al contenuto i componenti possono essere mescolati, se il browser supporta i componenti richiesti non avrà problemi a restituirli. I Component possono essere supportati a diversi livelli, o qualità di servizio. Qualsiasi X3D component assegna uno schema di numerazione dei livelli a seconda della qualità di servizio da essi fornita, un alto livello indica la presenza (o assenza) di determinate caratteristiche, semantiche maggiormente definite e più severe richieste di conformità. X3D Cristina Donati 39
Profili, componenti, livelli I contenuti e le applicazioni devono specificare il profilo richiesto e i componenti che devono essere supportati e a quale livello. Un browser X3D può usare le informazioni degli header del file per caricare solo i profili o i componenti richiesti e caricare dinamicamente i nuovi moduli dei programmi se i contenuti della scena richiedono componenti aggiuntivi non disponibili sul client. Se un profilo, un componente o un livello non è specificato il browser utilizzerà i valori di default. X3D Cristina Donati 40
Application programmer interfaces (APIs) X3D fornisce un ricco set di APIs, che forniscono alla scena l'accesso all'esecuzione. Le APIs offrono estensioni delle funzionalità per i browser e l'integrazione di risorse interne ed esterne per generare comportamenti dinamici. L'accesso può essere interno -usato per creare elementi personalizzati dentro lo scene graph o esterno -connettendo al programma elementi esterni alla scena, per esempio collocati su un applicazione host quale il web browser. X3D APIs sono specificate come un set di servizi indipendenti dal linguaggio nella Interface Definition Language (IDL). I servizi delle API X3D sono limitate a differenti e popolari linguaggi di programmazione e di scripting, incluso Java e ECMAScript, e interoperabili con componenti tecnologici quali COM, DOM and CORBA. X3D Cristina Donati 41
Data encodings • I contenuti e le applicazioni X3D possono essere codificate in diversi formati. • L'ISO 19775 contiene alcune specifiche al riguardo, definendo tre formati concreti di codifica: • Extensible Markup Language (XML) • Virtual Reality Modeling Language (VRML97) utf-8 • Binary • Questi possono esser a loro volta compressi utilizzando gzip oppure non compressi. • I browser e i generators possono supportare uno o tutti i formati di codifica, a seconda delle necessità delle applicazioni e delle richieste di conformità di uno specifico componente o profilo. X3D Cristina Donati 42
Field Field è una proprietà o un attributo di un nodo. Ci sono due classi generali di field: che contengono un singolo valore (dove un valore può essere un singolo numero, un vettore, o un'immagine). Il loro nome inizia per SF che contengono una lista ordinata di multipli valori. Se field ha zero valori, il valore è vuoto ma continua a essere rappresentato. Il loro nome inizia con MF. X3D Cristina Donati 43
Conformità Di un file X3D Come primo elemento contiene X3D header statement Tutte le entità sono contenute all'interno della specifica funzione della corrispondente entità dell' ISO/IEC 19775 e il file X3D segue le relazioni definite dalla grammatica e dalla sintassi. La sequenza delle entità segue le relazioni specificate dall'ISO/IEC 19775 riproducendo la struttura da esso specificata. Tutti i field values nel file X3D seguono le relazioni specificate dall'ISO/IEC 19775 producendo la struttura specificata dalla stesso. Nessun nodo nel file X3D è diverso da quello specificato per il profilo applicabile, a meno che sia richiesto per la codifica o per quelli definiti da entità PROTO o EXTERNPROTO. Il file X3D è codificato secondo le regole dell'ISO/IEC 19776. Non rientra nei comportamenti descritti come undefined dall' ISO/IEC 19775. X3D Cristina Donati 44
Conformità Di un generatore È conforme all'ISO/IEC 19775 se tutti i file X3D da esso generati sono sintatticamente corretti e soddisfano le richieste della conformità dei file X3D. X3D Cristina Donati 45
Conformità Di un browser È capace di leggere qualsiasi file X3D conforme al profilo supportato dal browser Implementa le funzionalità specificate per tutte le abstract interfaces Presenta le caratteristiche grafiche e audio dei nodi X3D in qualunque file X3D conforme alle al profilo applicabile. Gestisce correttamente l'interazione utente e generazione di eventi come specificato per il profilo applicabile. Soddisfa i requisiti minimi di supporto per browser inerenti al profilo applicabile come elencati dalle relative tabelle. X3D Cristina Donati 46
Browser Il browser si occupa dell'interpretazione, dell'esecuzione e della presentazione del file X3D, mostrando le figure e i suoni presenti nello scene graph. Questa presentazione è nota come virtual world e la navigazione ha luogo tramite l'utente. Viewer è la posizione e l'orientamento del mondo, e i browser forniscono paradigmi di navigazione quali walking o flying per consentire all'utente il movimento nel mondo virtuale. X3D Cristina Donati 47
Browser Oltre alla navigazione, il browser fornisce una serie di meccanismi che consentono all'utente l'interazione con il mondo tramite i sensor nodes definiti nello schema gerarchico della scena. I sensori rispondono all'interazione con l'utente tramite oggetti geometrici nel mondo, il movimento attraverso il mondo e il passare del tempo. Inoltre, Scene Access Interface (SAI) fornisce meccanismi per prendere gli input dell'utente e modificare il viewpoint corrente. Gli autori possono anche usare linguaggi di programmazione o script, vincolati al SAI, per implementare il loro algoritmo di navigazione. La visualizzazione degli oggetti geometrici nel mondo X3D segue il modello concettuale sviluppato per riprodurre le caratteristiche fisiche della luce. X3D lighting model descrive quindi come l'apparenza e la luce nel mondo si combinano per creare i colori visualizzati. X3D Cristina Donati 48
Browser Cortona (Parallel Graphics) Contact (blaxxun) Piveron/CosmoPlayer (Nexternet) Octagon free player (Octaga) Xj3D (Yumetech) Flux (Media Machines) X3D Cristina Donati 49
Development Tools Text Editor XML Editors X3D-Edit VizX3D VRML-X3D Translators X3D Cristina Donati 50