La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

X3D Cristina Donati 1 X3D. Cristina Donati 2 X3D Percorso Introduzione a X3D Obiettivi di progettazione Un po di storia Obiettivi principali della specifica.

Presentazioni simili


Presentazione sul tema: "X3D Cristina Donati 1 X3D. Cristina Donati 2 X3D Percorso Introduzione a X3D Obiettivi di progettazione Un po di storia Obiettivi principali della specifica."— Transcript della presentazione:

1 X3D Cristina Donati 1 X3D

2 Cristina Donati 2 X3D Percorso Introduzione a X3D Obiettivi di progettazione Un po di storia Obiettivi principali della specifica X3D Caratteristiche Mercati coinvolti ArchitetturaComponentiEsempi

3 Cristina Donati 3 X3D Introduzione X3D è uno standard di formato di file potente ed estensibile per descrivere ambienti virtuali tridimensionali distribuiti per la rete.

4 X 3D è 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. Web 3D ConsortiumWeb 3D Consortium Introduzione Cristina Donati 4 X3D

5 Cristina Donati 5 X3D 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.

6 Cristina Donati 6 X3D Introduzione X3D è il successore di VRML (standard ISO -ISO/IEC :1997- per web basati su grafica 3D) VRML 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.

7 Cristina Donati 7 X3D 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

8 Cristina Donati 8 X3D 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. Un po' di storia

9 Cristina Donati 9 X3D 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. Un po' di storia

10 Cristina Donati 10 X3D 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 dallaprile al giugno 99 molto forti erano le lamentele circa un processo di standardizzazione che sembrava procedere in modo autonomo rispetto alla comunità web3d. Un po' di storia

11 Cristina Donati 11 X3D 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. Un po' di storia

12 Cristina Donati 12 X3D 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. Un po' di storia

13 Cristina Donati 13 X3D Un po' di storiaPROPOSITISCADENZA Specification draft 30/04/04 Implementazione browser 08/08/04 Dimostrazione Fine giugno Valutazione08/08/04 Inizio ISO submission I settimana di luglio II round valutazione ISO submission

14 Cristina Donati 14 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. Obiettivi principali della specifica X3D

15 Cristina Donati 15 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. Obiettivi principali della specifica X3D

16 Cristina Donati 16 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. Obiettivi principali della specifica X3D

17 Cristina Donati 17 X3D Obiettivi principali della specifica X3D

18 Cristina Donati 18 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. Cosa ha portato a definire il nuovo standard X3D?

19 Cristina Donati 19 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. Cosa ha portato a definire il nuovo standard X3D?

20 Cristina Donati 20 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. Cosa ha portato a definire il nuovo standard X3D?

21 Cristina Donati 21 X3D 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)

22 Cristina Donati 22 X3D 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.

23 Cristina Donati 23 X3D 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.

24 Cristina Donati 24 X3D 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

25 Cristina Donati 25 X3D 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

26 Cristina Donati 26 X3D 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

27 Cristina Donati 27 X3D Mercati coinvolti Il consorzio web 3D focalizza la propria attenzione su tre mercati principali e su diversimercati secondari. MERCATI PRINCIPALI: MERCATI PRINCIPALI: CAD - (CDF) CAD - (CDF) Liniziativa open standards X3D CAD si occupa di proporre ai consumatori laccesso ai dati tecnici 3D, integrati nelle loro comuni applicazioni desktopo. Dal lato professionale, nellingegneria ad esempio, X3D renderà possibile creare nuovi profitti, aumentare la produttività e tagliare i costi grazie allaccesso a dati grafici, animazioni, materiali e texture. Laumento di valore nellarea 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.

28 Cristina Donati 28 X3D Mercati coinvolti 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. Medical - MedX3D

29 Cristina Donati 29 X3D Mercati coinvolti Visual Simulation (XMSF) 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.

30 Cristina Donati 30 X3D Mercati coinvolti GeospatialEducation Technical Training and Documentation Entertainment and Games

31 Cristina Donati 31 X3D 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.

32 Cristina Donati 32 X3D 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.

33 Cristina Donati 33 X3D 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.

34 Cristina Donati 34 X3D 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.

35 Cristina Donati 35 X3D 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.

36 Cristina Donati 36 X3D 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.

37 Cristina Donati 37 X3D 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.

38 Cristina Donati 38 X3D 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.

39 Cristina Donati 39 X3D 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à.

40 Cristina Donati 40 X3D 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.

41 Cristina Donati 41 X3D 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.

42 Cristina Donati 42 X3D Data encodings I contenuti e le applicazioni X3D possono essere codificate in diversi formati. L'ISO 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.

43 Cristina Donati 43 X3D 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.

44 Cristina Donati 44 X3D Conformità Come primo elemento contiene X3D header statement Tutte le entità sono contenute all'interno della specifica funzione della corrispondente entità dell' ISO/IEC e il file X3D segue le relazioni definite dalla grammatica e dalla sintassi. La sequenza delle entità segue le relazioni specificate dall'ISO/IEC riproducendo la struttura da esso specificata. Tutti i field values nel file X3D seguono le relazioni specificate dall'ISO/IEC 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 Non rientra nei comportamenti descritti come undefined dall' ISO/IEC Di un file X3D

45 Cristina Donati 45 X3D Conformità. È conforme all'ISO/IEC se tutti i file X3D da esso generati sono sintatticamente corretti e soddisfano le richieste della conformità dei file X3D. Di un generatore

46 Cristina Donati 46 X3D Conformità È 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. Di un browser

47 Cristina Donati 47 X3D 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.

48 Cristina Donati 48 X3D 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.

49 Cristina Donati 49 X3D Browser Cortona (Parallel Graphics) Contact (blaxxun) Piveron/CosmoPlayer (Nexternet) Octagon free player (Octaga) Xj3D (Yumetech) Flux (Media Machines)

50 Cristina Donati 50 X3D Text Editor XML Editors X3D-Edit VizX3D VRML-X3D Translators Development Tools

51 Cristina Donati 51 X3D Unità base del X3D runtime environment è lo scene graph. Questa struttura contiene tutti gli oggetti del sistema e le loro relazioni, che sono contenute su diversi assi dello scene graph. Le relazioni nello spazio degli oggetti eseguiti sono descritte nella Transformation hierarchy. Tramite questa gerarchia, infatti, vengono descritte tutte le parti percebili direttamente del mondo virtuale. Le connessioni fra valori (routes) e flusso di eventi sono descritte nel Behavior graph. The scene graph

52 Cristina Donati 52 X3D Root nodes -nodi radice- Un file X3D può avere zero o più nodi radice. I nodi radice sono definiti dala dichiarazione dei nodi, dalla dichiarazione di uso o dalla dichiarazione dei PROTO. The scene graph

53 Cristina Donati 53 X3D Mantiene lo stato corrente dello scene graph Processa le scene occorrenti Riveve input dai sensori, o da altre fonti Esegue i cambiamenti sullo scene graph rispondendo alle istruzioni del sistema comportamentale Gestisce il ciclo di vita degli oggetti, inclusi quelli predefiniti (built-in objects quali SFVec3F3D per valori vettoriali, Cylinder per i geometry nodes...), quelli definiti dagli utenti (creazione di nuovi nodi tramite meccanismi di prototyping, i quali diventano poi parti del runtime environment comportandosi esattamente come i nodi built-in) e gli script Coordina il processo degli eventi Gestisce l'interazione fra browserX3D e applicazione host per la consegna Gestisce l'hyperlinking, l'integrazione delle pagine e l'accesso a programmi esterni Runtime environment

54 Cristina Donati 54 X3D Tutti gli oggetti in X3D derivano dal tipo base X3DObject Caratteristiche di un oggetto: Type name (Backround, SFVec3F, MFColor, SFGroup) unico in tutto il file e per i nodi creati dall'autore non si possono usare i type name dei nodi built-in (se così fosse otterremmo undefined come risultato) Zero o più field Implementation ovvero la definizione per ogni oggetto dei modi di reagire ai cambiamenti delle proprietà dei field, delle ulteriori proprietà modificate a causa di tali cambiamenti, e come tutto ciò avrà effetto sull'esecuzione Se un oggetto deriva da un nodo X3D deve avere altre caratteristiche aggiuntive: Un set di eventi che è in grado di ricevere e spedire Un nome che verrà poi utilizzato dagli altri statement per richiamare lo specifico nodo istanziato o per posizionare il nodo internamente alla scena Object model

55 Cristina Donati 55 X3D Esistono diversi modi di implementazione dei nodi, i nodi built-in sono disponibili agli autori senza descrizioni aggiuntive. Profili e componenti differenti hanno diversi set di Object built-in Prototypes object sono gli oggetti creati dall'autore tramite PROTO o EXTERNPROTO statements. Aggiungono un nuovo tipo di oggetto disponibile solo durante il ciclo di vita della sessione nella quale sono caricati. Native node extentions sono gli oggetti aggiunti usando EXTERNPROTO statament, con implementazione scritta in un'estensione (linguaggio) supportata, quale Java o C++. una volta aggiunte hanno la stessa accessibilità e ciclo di vita degli oggetti definiti dagli autori. Object model

56 Cristina Donati 56 X3D Ciclo di vita degli oggetti I nodi sono creati, usati ed eventualmente distrutti. Un nodo è considerato in vita se una o più di queste condizioni sono vere: il nodo è un nodo radice della scena il nodo è collegato da valori a un nodo in vita il nodo è collegato a uno script in vita esiste un collegamento esterno al nodo Object model

57 Cristina Donati 57 X3D La semantica prototype è utile e serve ogni volta che voglio creare un nuovo nodo o oggetto. EXTERNPROTOTYPE definisce un nuovo tipo di nodo come PROTO, ma implemetando il nodo esternamente e non partendo da valori di default dati, è, infatti, l'implementazione a definire i propri defaut. Gli statement di EXTERNPROTO possono anche riferirsi a URL di file VRML, consentendo la creazione di librerie di definizioni PROTO riutilizzabili, che i browser dovrebbero riconoscere dall'argomento in fondo all'URL #name che indica lo statement PROTO per name in un dato file VRML. Prototype semantics

58 Cristina Donati 58 X3D #VRML V2.0 utf8 PROTO Gold [] { Material {... } } PROTO Gold [] { Material {... } } PROTO Silver [] { Material {... } } PROTO Silver [] { Material {... } }...etc. Prototype semantics #VRML V2.0 utf8 EXTERNPROTO GoldFromLibrary [] "http://.../materials.wrl#Gold"... Shape { appearance Appearance { material GoldFromLibrary {} } geometry... } Un materiale da questa libreria può essere usato così:

59 Cristina Donati 59 X3D Component La specifica ISO contiene la serie dei component suddivisi in categorie. Core component Fornisce le funzionalità minime necessarie a rendere un documento X3D conforme Prerequisito di tutti gli altri componenti X3D Fornisce costrutti astratti quali X3DNode, X3DPrototypeInstance, X3DRoute, X3DScene...

60 Cristina Donati 60 X3D Component Time component Il browser controlla il passare del tempo in un mondo tramite il TimeSensors che genera eventi. Alcuni browser possono accelerare o rallentare il tempo, ma generalmente quello generato dai TimeSensor si avvicina a quello reale. Un'implementazione ideale di X3D dovrebbe generare un numero infinito di campioni per cambiamenti continui, ognuno dei quali dovrebbe essere processato immediatamente. Nodi dipendenti dal tempo sono AudioClip, MovieTexture e TimeSensor ad esempio. Questi sono eseguiti in cicli e alla fine di ognuno viene attribuito un valore a loop, in caso sia true l'esecuzione continua durante il ciclo successivo, se il valore attribuito è false l'esecuzione si ferma.

61 Cristina Donati 61 X3D Component Networking component Include URL, URL relative, protocolli di linguaggio di scripting, opzioni browser. Ne sono esempio X3DNetworkSensorNode, X3DUrlObject, Anchor, Inline e LoadSensor Grouping component Include una lista di nodi collegati a essa come nodi figli. Consentono di stabilire relazioni fra nodi collegando i valori assunti da essi. Rendering component Include i nodi che forniscono i servizi di base per costruire tipi di geometrie. La maggior parte dei componenti presenti nelle classi Geometry3D component e Geometry2D component sono implementati come una combinazione di questi nodi.

62 Cristina Donati 62 X3D Component Shape component Sono associati ai Geometry nodes per definire laspetto della geometria. Sono contenuti nella gerarchia della trasformazione, per poter osservare dei risultati è necessario rendere visibile la geometria. Ne sono esempio: X3DAppearance nodes, X3DMaterialNode, X3DShapeNode. Geometry 3D component Consistono in 4 tipi di nodi: shape, geometry, geometry property e appearance. Insieme sono usati per descrivere gli elementi visivi del mondo X3D.

63 Cristina Donati 63 X3D Component Geometry 2D component Usa i nodi di shape component ma solo per creare oggetti piani, ovvero coordinati solo su due dimensioni, x e y, mentre z ha sempre valore 0 Text component Il testo in X3D è processato come una geometria. Posso definirne laspetto tramite texture, scegliere il tipo di carattere, lo stile, la direzione, la giustificazione e la lingua (codifica, ad esempio cirillico…) Sound component Sono preferibili i file.mid e.wav perchè implementati di norma dai browser, è possibile però scegliere qualsiasi tipo di file inserendoli tramite reference nodes e URL

64 Cristina Donati 64 X3D Component Lighting component Contiene i nodi fonti di illuminazione per tutti gli oggetti shape dando unapprossimazione di come lambiente rifletta la luce in natura. Tutte le luci hanno intensità, colore e intensità ambientale. Vi sono diversi nodi fonte di illuminazione : DirectionalLight –illumina solo i nodi discendenti- PointLight –definita in raggi, lilluminazione parte dal centro- SpotLight –definita come influenza angolare Texturing component Tipi di nodo che specificano la texture di un oggetto. Le texture maps sono definite da immagini 2D e usate in combinazione ai lighting component che ne definiscono lilluminazione fornendo le giuste gradazioni di colore. Contengono node reference quali: ImageTexture, MovieTexture, MultiTexture, TextureCoordinate…

65 Cristina Donati 65 X3D Component Navigation component Ogni scena può avere più viewpoint e la navigazione consente allutente di spostarsi attraverso questi. Sono nodi che rapprentano la capacità di interagire dellutente con il mondo. Paradigmi di navigazione sono: Walking: adatto per architetture nelle quali si cammina attraverso Examination: uso comune per le scene con uno o più oggetti in cui lutente può cambiare il suo punto di vista da angolature e distanze diverse Flying: è il migliore nel caso di applicazioni che esplorano uno spazio Geospatial component Componenti che forniscono il supporto per applicazioni geografiche e geospaziali. Ne sono esempio i nodi Geocoordinate, GeoElavationGrid, GeoLocation, GeoLOD, GeoMetadata, GeoOrigin, GeoTouchSensor, GeoViewpoint, ….

66 Cristina Donati 66 X3D Component Humanoid component Include i nodi necessari a rappresentare figure umane tridimensionali animate. Nurbs ( Non-uniform Rational B-Splines) component Forniscono un metodo efficiente e conveniente di generare linee curve e superfici complesse. Scripting component Descrivono i meccanismi di scripting access

67 Cristina Donati 67 X3D Component Sensor component Pointing device sensor component Si attivano puntando o cliccando una geometria TouchSensor SphereSensor PlaneSensor CylinderSensor Key device sensor component Si attivano quando cambia lo stato di una chiave o termina una stringa KeySensor StringSensor

68 Cristina Donati 68 X3D I file X3D sono pagine XML La struttura è composta da: Dichiarazione XML Dichiarazione DTD Dichiarazione X3D Tipo profilo XMLNS XSD Scena Struttura

69 Cristina Donati 69 X3D Visualizzazione della pagina tramite Cortona VRML Client tramite Cortona VRML Client

70 Cristina Donati 70 X3D Codice XML

71 Cristina Donati 71 X3D Come creare un file X3D Dichiarazione versione XML e tipo di codifica: Il tipo di codifica per questo standard è UTF-8 Dichiarazione del Doctype Eventuali commenti ad esempio:

72 Cristina Donati 72 X3D Come creare un file X3D Dichiarazione del profilo X3D dopo lapertura del tag X3D Esistono diversi tipi di profili in questo standard: Core Interchange Interactive MPEG-4 interactive Immersive Full Dichiarazione dei componenti non sempre è necessaria, serve nel caso in cui i componenti utilizzati allinterno del mondo non siano contenuti nel profilo utilizzato. Del tipo: COMPONENT

73 Cristina Donati 73 X3D Come creare un file X3D Dichiarazione dei metadati sul mondo Ovvero dichiarazione delle informazioni circa lautore, il nome del file, la data di creazione e modifica,lURL e il generatore utilizzato ad esempio

74 Cristina Donati 74 X3D Come creare un file X3D Dichiarazione della scena Inserimento del viewpoint Questo nodo consente la visualizzazione, fornendo posizione e direzione specifiche in cui la scena può essere vista dallutente. Nessun oggetto è visibile senza il suo inserimento. Orientation è la rotazione (asse, angolo in radianti) del Viewpoint, relativamente alla direzione dellasse di default -Z nel sistema locale di coordinate. Questo è il cambiamento dalla direzione di orientazione di default (0 0 -1). Position è la posizione (x, y, z in metri) relativamente al sistema locale di coordinate.

75 Cristina Donati 75 X3D Come creare un file X3D Navigationinfo NavigationInfo descrive la visuale e le caratteristiche fisiche dellavatar dellutente. Per lispezione di oggetti singoli, lusabilità viene di solito migliorata con type="EXAMINE" "ANY. I tipi di NavigationInfo '"WALK" "FLY"' supportano la rilevazione di collisioni telecamera-oggetto. Transform Transform è un nodo di raggruppamento che può contenere la maggior parte di tipi di nodi. Il valore attribuito a DEF indica lID del nodo, pertanto una scelta di carattere descrittivo è la più indicata. Definizione di un gruppo Group è un nodo di raggruppamento, i nodi appartenente ad esso sono i relativi children nodes.

76 Cristina Donati 76 X3D Come creare un file X3D Ancora nel nostro file X3D non cè niente di visibile. Introduciamo ora il nodo shape, al quale associeremo dei geometry nodes che ne definiscano laspetto: Una volta aperto il tag shape si va a definire laspetto, in questo caso si è scelta una texture basata su immagine (poteva essere anche un semplice colore) è consigliabile indicare più URL alternative ove reperirla. Chiuso il tag Appearance immettiamo loggetto cui si applicherà, ovvero una sfera. anteprima

77 Cristina Donati 77 X3D Come creare un file X3D Ora passiamo a introdurre un sensore TouchSensor tiene traccia della posizione e dello stato del dispositivo di puntamento, e rileva quando lutente punta una geometria. Una volta inserito il sensore possiamo chiudere il gruppo usato per includere la forma e passare a crearne uno nuovo per la scritta animata. Transform In questo caso il nodo di raggruppamento Transform serve per raggruppare gli elementi che comporranno la scritta animata.

78 Cristina Donati 78 X3D Come creare un file X3D Come comporre la scritta animata: Dichiaro il nodo shape al cui interno definisco laspetto, il materiale in questo caso un colore, il testo della stringa e lo stile del carattere, a questo punto posso chiudere il tag shape, transform e anche il transform aperto per includere il gruppo rappresentante il globo sommato a questultimo. AnteprimaAnteprima non avendo ancora imposto rotazioni il testo è fermo dietro la sfera, anche perché non sono state create connessioni fra nodi

79 Cristina Donati 79 X3D Come creare un file X3D Ora devo definire le animazioni, per prima cosa inserisco un timesensor: Questo serve per generare eventi in modo continuo con lo scorrere del tempo. Si devono definire ora le animazioni ROUTE connette dei campi di nodi diversi per permettere la trasmissione di eventi OrientationInterpolator genera una serie di valori di rotazione Il risultato può essere inviato (tramite ROUTE) allattributo 'rotation' di un nodo oppure a un altro attributo di tipo Rotation Input tipico

80 Cristina Donati 80 X3D Come creare un file X3D Prosegue la connessione dei campi per permettere la trasmissione di eventi Una volta terminate le connessioni posso chiudere la scena Una volta chiuisa la scena proseguo chiudendo il file X3D Vedi output Vedi codice

81 Cristina Donati 81 X3D Come creare un file X3D Questo è un esempio base di animazione. Utilizzando programmi con interfaccia grafica, quale Vizx3d, posso creare animazioni di testo più complesse. Questo programma considera ogni lettera come elemento a sè e come gruppo a sè stante. Vedi output Vedi codice

82 Cristina Donati 82 X3D Alcuni esempi completi Dal sito del Web3DConsortium: Scacchi su otto livelli Networking rerouting alternates routes Desk lamp

83 Cristina Donati 83 X3D Come creare un file X3D È possibile inserire anche sfondi che rapprensentino il mondo tridimensionale, vediamone un esempio corredato anche da un suono *.mid che si ripete in ciclo loop e si riproduce dal caricamento della pagina. Vedi output Vedi codice

84 Cristina Donati 84 X3D Alcuni esempi completi Sul Web: Brat Dining Room Gammy World - -

85 Cristina Donati 85 X3D Bibliografia Web3D Consortium, 30 maggio 2004www.web3d.org It-web3D, 30 maggio 2004http://eureka.lucia.it/vrml/it2000/atti/materiali.html Ignazio Locatelli, Paper X3D, reperibile allindirizzo 30 maggio Web3D Consortium, 30 maggio 2004www.web3d.org/x3d/content/x3dtooltipsitalian.html HTML.IT, 30 maggio 2004www.html.it/vrml/vrml_05.htm X3dabstractspecification, ISO-IEC-19775, disponibile allindirizzo 30 maggio Don Brutzman, X3D-Edit Authoring Tool for Extensible 3D Graphics, presentazione.ppt reperibile allindirizzo 30 maggio 2004http://www.web3D.org/x3d.html Leonard Daly, Introducing X3D Authoring X3D, presentazione.ppt, scaricata dal sito 10 gennaio 2004www.web3d.org


Scaricare ppt "X3D Cristina Donati 1 X3D. Cristina Donati 2 X3D Percorso Introduzione a X3D Obiettivi di progettazione Un po di storia Obiettivi principali della specifica."

Presentazioni simili


Annunci Google