X3D Cristina Donati 1 X3D. Cristina Donati 2 X3D Percorso Introduzione a X3D Obiettivi di...

85
X3D Cristina Donati 1 X3D

Transcript of X3D Cristina Donati 1 X3D. Cristina Donati 2 X3D Percorso Introduzione a X3D Obiettivi di...

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

X3D

Cristina Donati 1X3D

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

Cristina Donati 2X3D

PercorsoPercorso

Introduzione a X3DIntroduzione a X3DObiettivi di progettazioneObiettivi di progettazioneUn po’ di storiaUn po’ di storiaObiettivi principali della specifica X3DObiettivi principali della specifica X3DCaratteristicheCaratteristicheMercati coinvoltiMercati coinvoltiArchitetturaArchitetturaComponentiComponentiEsempiEsempi

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

Cristina Donati 3X3D

IntroduzioneIntroduzione

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

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

XX3D è sviluppato dal 3D è sviluppato dal Web 3D ConsortiumWeb 3D Consortium,, associazione non profit responsabile della associazione non profit responsabile della definizione degli standard grafici 3D per il definizione degli standard grafici 3D per il web. Web 3D lavora in stretto contatto con web. Web 3D lavora in stretto contatto con altre associazioni quali the International altre associazioni quali the International Standards Organization (ISO), the World Standards Organization (ISO), the World Wide Web Consortium (W3C) e the MPEG-4 Wide Web Consortium (W3C) e the MPEG-4 Committee, per facilitare al massimo Committee, per facilitare al massimo l'interoperabilità e l'adozione dei propri l'interoperabilità e l'adozione dei propri standard da parte delle industrie.standard da parte delle industrie.

IntroduzioneIntroduzione

Cristina Donati 4X3D

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

Cristina Donati 5X3D

IntroduzioneIntroduzione

X3D fornisce:X3D fornisce:

XML encoding rende possibile l'incorporazione XML encoding rende possibile l'incorporazione del 3D nell'architettura web service e negli del 3D nell'architettura web service e negli ambienti distribuiti e facilita il trasferimento ambienti distribuiti e facilita il trasferimento di dati 3D fra applicazioni. di dati 3D fra applicazioni.

Scene Authoring Interface fornisce contenuti Scene Authoring Interface fornisce contenuti 3D in tempo reale e controlla facilmente la 3D in tempo reale e controlla facilmente la loro integrazione in un'ampia gamma di loro integrazione in un'ampia gamma di applicazioni web e non.applicazioni web e non.

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

Cristina Donati 6X3D

IntroduzioneIntroduzione

X3D è il successore di X3D è il successore di VRMLVRML (standard ISO -ISO/IEC (standard ISO -ISO/IEC 14772-1:1997- per web basati su grafica 3D)14772-1:1997- per web basati su grafica 3D)

Il campo di azione dell'X3D va a sovrapporsi al già Il campo di azione dell'X3D va a sovrapporsi al già affermato VRML97. Infatti, questo standard, nasce come affermato VRML97. Infatti, questo standard, nasce come sforzo per migliorare la specifica Vrml97, cercando di sforzo per migliorare la specifica Vrml97, cercando di prendere spunto da quanto di buono essa contiene e di prendere spunto da quanto di buono essa contiene e di correggere le palesi difficoltà di implementazione o correggere le palesi difficoltà di implementazione o diffusione da essa mostrate.diffusione da essa mostrate.

I progressi dell'X3D rispetto il VRML riguardano nuove I progressi dell'X3D rispetto il VRML riguardano nuove caratteriche, applicazioni avanzate di interfacce caratteriche, applicazioni avanzate di interfacce programmatori, formati addizionali di codifica dei dati, programmatori, formati addizionali di codifica dei dati, conformità più ristretta e un'architettura costituita da conformità più ristretta e un'architettura costituita da componenti che fornisce l'approccio modulare di componenti che fornisce l'approccio modulare di supporto allo standard.supporto allo standard.

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

Cristina Donati 7X3D

Obiettivi di Obiettivi di progettazioneprogettazione

Separare l'architettura di runtime dalla codifica dei datiSeparare l'architettura di runtime dalla codifica dei dati

Supportare svarietà formati di codifica, incluso Supportare svarietà formati di codifica, incluso l'Extensible Markup Language (XML) l'Extensible Markup Language (XML)

Aggiungere nuove grafiche, comportamenti e oggetti Aggiungere nuove grafiche, comportamenti e oggetti interattivi interattivi

Fornire alternative application programmer interfaces Fornire alternative application programmer interfaces (API) nella scena 3D (API) nella scena 3D

Modularizzare l'architettura in componenti Modularizzare l'architettura in componenti

Definire sottoinsiemi della specifica ( " Profiles" ) che Definire sottoinsiemi della specifica ( " Profiles" ) che soddisfino le differenti necessità di mercato soddisfino le differenti necessità di mercato

Permettete alla specifica di essere realizzata a diversi Permettete alla specifica di essere realizzata a diversi livelli di servizio livelli di servizio

Eliminare, dove possibile, comportamenti non specificati Eliminare, dove possibile, comportamenti non specificati o non sufficientemente specificatio non sufficientemente specificati

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

Cristina Donati 8X3D

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

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

Cristina Donati 9X3D

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

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

Cristina Donati 10X3D

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.

Un po' di storia

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

Cristina Donati 11X3D

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

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

Cristina Donati 12X3D

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

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

Cristina Donati 13X3D

Un po' di storia

PROPOSITIPROPOSITI SCADENZASCADENZA

Specification draftSpecification draft 30/04/0430/04/04

Implementazione browserImplementazione browser 08/08/0408/08/04

DimostrazioneDimostrazione Fine giugnoFine giugno

ValutazioneValutazione 08/08/0408/08/04

Inizio ISO submissionInizio ISO submission I settimana di I settimana di luglioluglio

II round valutazioneII round valutazione

ISO submissionISO submission

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

Cristina Donati 14X3D

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

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

Cristina Donati 15X3D

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

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

Cristina Donati 16X3D

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

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

Cristina Donati 17X3D

Obiettivi principali della specifica X3D

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

Cristina Donati 18X3D

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?

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

Cristina Donati 19X3D

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?

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

Cristina Donati 20X3D

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?

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

Cristina Donati 21X3D

CaratteristicheCaratteristiche

X3D ha un ricco insieme di caratteristiche per sostenere X3D ha un ricco insieme di caratteristiche per sostenere applicazioni come ingegneria e visualizzazione scientifica, applicazioni come ingegneria e visualizzazione scientifica, presentazioni multimediali, intrattenimento e titoli presentazioni multimediali, intrattenimento e titoli didattici, pagine web e mondi virtuali condivisi. L'insieme didattici, pagine web e mondi virtuali condivisi. L'insieme di caratteristiche X3D include:di caratteristiche X3D include:

grafica 3D – geometria poligonale, geometria parametrica, grafica 3D – geometria poligonale, geometria parametrica, trasformazioni gerarchiche, illuminazione, materiali e trasformazioni gerarchiche, illuminazione, materiali e multi-pass/multi-stage texture.multi-pass/multi-stage texture.

grafica 2Dgrafica 2D

Animazione Animazione

Interazione di utenteInterazione di utente

Navigazione Navigazione

Oggetti definiti dall'utente Oggetti definiti dall'utente

ScriptingScripting

Rete di servizi Rete di servizi

Simulazione fisica: animazione Humanoid; geospatial datasets; Simulazione fisica: animazione Humanoid; geospatial datasets; integrazione con protocolli Distributed Interactive Simulation (DIS)integrazione con protocolli Distributed Interactive Simulation (DIS)

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

Cristina Donati 22X3D

CaratteristicheCaratteristiche

Una caratteristica importante di file X3D è la capacità Una caratteristica importante di file X3D è la capacità di comporre scene includendo e riportando altre scene di comporre scene includendo e riportando altre scene tramite l'hyperlinking. Ad esempio, se consideriamo il tramite l'hyperlinking. Ad esempio, se consideriamo il file earth.wrl, specifica un mondo che contiene una file earth.wrl, specifica un mondo che contiene una sfera che rappresenta la terra, possiamo includere sfera che rappresenta la terra, possiamo includere riferimenti ad altri file X3D rappresentativi delle città riferimenti ad altri file X3D rappresentativi delle città sulla terra (per esempio, file paris.wrl). sulla terra (per esempio, file paris.wrl).

L'inclusione di file gerarchici permette la creazione di L'inclusione di file gerarchici permette la creazione di mondi arbitrariamente grandi e dinamici. Quindi, X3D mondi arbitrariamente grandi e dinamici. Quindi, X3D assicura che ogni file sia descritto completamente assicura che ogni file sia descritto completamente dagli oggetti contenuti in esso.dagli oggetti contenuti in esso.

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

Cristina Donati 23X3D

CaratteristicheCaratteristiche

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.

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

Cristina Donati 24X3D

Caratteristiche chiaveCaratteristiche 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

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

Cristina Donati 25X3D

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

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

Cristina Donati 26X3D

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

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

Cristina Donati 27X3D

Mercati coinvolti

Il consorzio web 3D focalizza la propria attenzione su tre mercati principali e Il consorzio web 3D focalizza la propria attenzione su tre mercati principali e su diversimercati secondari.su diversimercati secondari.

MERCATI PRINCIPALI:MERCATI PRINCIPALI:

CAD - (CDF)CAD - (CDF)

L’iniziativa open standards X3D CAD si occupa di proporre ai consumatori L’iniziativa open standards X3D CAD si occupa di proporre ai consumatori l’accesso ai dati tecnici 3D, integrati nelle loro comuni applicazioni desktopo. l’accesso ai dati tecnici 3D, integrati nelle loro comuni applicazioni desktopo. Dal lato professionale, nell’ingegneria ad esempio, X3D renderà possibile Dal lato professionale, nell’ingegneria ad esempio, X3D renderà possibile creare nuovi profitti, aumentare la produttività e tagliare i costi grazie creare nuovi profitti, aumentare la produttività e tagliare i costi grazie all’accesso a dati grafici, animazioni, materiali e texture. L’aumento di valore 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 nell’area CAD ridurrà I costi delle altre aree. Le applicazioni si possono riscontrare in diverse aree: visualizzazione cliente, comunicazione del design, riscontrare in diverse aree: visualizzazione cliente, comunicazione del design, insegnamento, apprendimendo, documentazione tecnica, vendite e marketing insegnamento, apprendimendo, documentazione tecnica, vendite e marketing e supporto al cliente.e supporto al cliente.

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

Cristina Donati 28X3D

Mercati coinvoltiL'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

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

Cristina Donati 29X3D

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.

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

Cristina Donati 30X3D

Mercati coinvolti

GeospatialGeospatial

Education Education

Technical Training and Technical Training and Documentation Documentation

Entertainment and Games Entertainment and Games

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

Cristina Donati 31X3D

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..

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

Cristina Donati 32X3D

Architettura

L'architettura X3D descrive l'interazione fra contenuti L'architettura X3D descrive l'interazione fra contenuti multimediali 2D e 3D e applicazioni. Contiene sia multimediali 2D e 3D e applicazioni. Contiene sia elementi dichiarativi (quali oggetti e e struttura delle elementi dichiarativi (quali oggetti e e struttura delle relazioni fra oggetti) che procedure (codice eseguibile). relazioni fra oggetti) che procedure (codice eseguibile). X3D stabilisce una gerarchia di oggetti rappresentando X3D stabilisce una gerarchia di oggetti rappresentando lo spazio temporale della grafica 3D e la scena che può lo spazio temporale della grafica 3D e la scena che può essere dinamicamente modificata tramite diversi essere dinamicamente modificata tramite diversi meccanismi.meccanismi.

X3D include il supporto per un ricco set di X3D include il supporto per un ricco set di caratteristiche grafiche 2D e 3D, animazioni, interazioni caratteristiche grafiche 2D e 3D, animazioni, interazioni utente e navigazione nello spazio 3D.utente e navigazione nello spazio 3D.

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

Cristina Donati 33X3D

ArchitetturaGli 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 stessipuramente 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.

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

Cristina Donati 34X3D

ArchitetturaThe scene graphThe scene graph

La struttura fondamentale di X3D è La struttura fondamentale di X3D è scene graphscene graph, che , che descrive gli elementi visivi e comportamentali (nodes) e descrive gli elementi visivi e comportamentali (nodes) e le loro relazioni reciproche. X3D scene graph è un grafo le loro relazioni reciproche. X3D scene graph è un grafo orientato aciclico. orientato aciclico.

Ogni nodo può contenere uno o più nodi figli, e così via. Ogni nodo può contenere uno o più nodi figli, e così via. Un nodo figlio può avere più di un nodo padre. Non Un nodo figlio può avere più di un nodo padre. Non sono permessi cicli: un nodo non può avere se stesso sono permessi cicli: un nodo non può avere se stesso come antenato nello scene graph. In aggiunta a questa come antenato nello scene graph. In aggiunta a questa relazione gerarchica, i nodi possono referenziarsi a relazione gerarchica, i nodi possono referenziarsi a vicenda, ad esempio un nodo può contenere come vicenda, ad esempio un nodo può contenere come campo un puntatore a un altro nodo.campo un puntatore a un altro nodo.

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

Cristina Donati 35X3D

ArchitetturaRuntime environmentRuntime environment

Mantiene lo stato dello scene graph, restituire la scena Mantiene lo stato dello scene graph, restituire la scena quando necessario, ricevere input da una varietà di quando necessario, ricevere input da una varietà di risorse, quali ad esempio sensori, ed eseguire risorse, quali ad esempio sensori, ed eseguire cambiamenti sullo scene graph rispondendo alle cambiamenti sullo scene graph rispondendo alle istruzioni del sistema comportamentale.istruzioni del sistema comportamentale.

Gestisce il ciclo di vita degli oggetti.Gestisce il ciclo di vita degli oggetti.

Coordina il processo degli eventiCoordina il processo degli eventi

Gestisce l'interoperabilità fra il browser X3D e Gestisce l'interoperabilità fra il browser X3D e l'applicazione host per la consegna dei file, l'applicazione host per la consegna dei file, hyperlinking, integrazione delle pagine e accesso hyperlinking, integrazione delle pagine e accesso esterno programmatico.esterno programmatico.

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

Cristina Donati 36X3D

ArchitetturaNetwork deliveryNetwork delivery

I contenuti X3D sono progettati per diffondersi nel World Wide I contenuti X3D sono progettati per diffondersi nel World Wide Web e nelle reti a banda larga utilizzando protocolli standard di Web e nelle reti a banda larga utilizzando protocolli standard di trasporto, MIME content type identification, e indirizzamento trasporto, MIME content type identification, e indirizzamento tramite URL.tramite URL.

InliningInlining

Tecnica tramite cui è possibile comporre una scena X3D Tecnica tramite cui è possibile comporre una scena X3D assemblando sul sistema client per opera del browser diversi assemblando sul sistema client per opera del browser diversi file scaricati separatamente. Questa tecnica permette la file scaricati separatamente. Questa tecnica permette la creazione di contenuti modulari e riutilizzabili, migliorando creazione di contenuti modulari e riutilizzabili, migliorando l'esperienza dell'utente grazie alla riduzione del tempo di l'esperienza dell'utente grazie alla riduzione del tempo di risposta successivamente al caricamento della scena iniziale.risposta successivamente al caricamento della scena iniziale.

HyperlinkingHyperlinking

caratteristica che consente di attaccare URL agli oggetti, queste caratteristica che consente di attaccare URL agli oggetti, queste saranno caricate dal browseral click dell'utente sull'oggetto.saranno caricate dal browseral click dell'utente sull'oggetto.

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

Cristina Donati 37X3D

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.

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

Cristina Donati 38X3D

Profili, componenti, livelliPROFILES

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.

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

Cristina Donati 39X3D

Profili, componenti, livelliCOMPONENTI

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à.

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

Cristina Donati 40X3D

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.

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

Cristina Donati 41X3D

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 grapho 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.

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

Cristina Donati 42X3D

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.

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

Cristina Donati 43X3D

Field

Field è una proprietà o un attributo di un nodo.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.

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

Cristina Donati 44X3D

Conformità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.

Di un file X3D

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

Cristina Donati 45X3D

Conformità

È 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..

Di un generatore

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

Cristina Donati 46X3D

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

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

Cristina Donati 47X3D

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.

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

Cristina Donati 48X3D

BrowserOltre 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.

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

Cristina Donati 49X3D

Browser

Cortona (Parallel Graphics)

Contact (blaxxun)

Piveron/CosmoPlayer (Nexternet)

Octagon free player (Octaga)

Xj3D (Yumetech)

Flux (Media Machines)

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

Cristina Donati 50X3D

Text Editor

XML Editors

X3D-Edit

VizX3D

VRML-X3D Translators

Development Tools

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

Cristina Donati 51X3D

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

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

Cristina Donati 52X3D

Root nodes -nodi radice-Root nodes -nodi radice-

Un file X3D può avere zero o più nodi radice. I nodi Un file X3D può avere zero o più nodi radice. I nodi radice sono definiti dala dichiarazione dei nodi, radice sono definiti dala dichiarazione dei nodi, dalla dichiarazione di uso o dalla dichiarazione dei dalla dichiarazione di uso o dalla dichiarazione dei PROTO.PROTO.

The scene graph

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

Cristina Donati 53X3D

Mantiene lo stato corrente dello scene graphProcessa le scene occorrentiRiveve input dai sensori, o da altre fontiEsegue i cambiamenti sullo scene graph rispondendo alle istruzioni del sistema comportamentaleGestisce 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 scriptCoordina il processo degli eventiGestisce l'interazione fra browserX3D e applicazione host per la consegnaGestisce l'hyperlinking, l'integrazione delle pagine e l'accesso a programmi esterni

Runtime environment

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

Cristina Donati 54X3D

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

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

Cristina Donati 55X3D

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

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

Cristina Donati 56X3D

Ciclo di vita degli oggettiCiclo 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:

1. il nodo è un nodo radice della scena2. il nodo è collegato da valori a un nodo in

vita3. il nodo è collegato a uno script in vita4. esiste un collegamento esterno al nodo

Object model

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

Cristina Donati 57X3D

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

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

Cristina Donati 58X3D

#VRML V2.0 utf8#VRML V2.0 utf8

PROTO Gold [] { Material { ... } }PROTO Gold [] { Material { ... } }

PROTO Silver [] { Material { ... } } PROTO Silver [] { Material { ... } }

......

etc.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ì:

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

Cristina Donati 59X3D

Component

La specifica ISO 19775 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...

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

Cristina Donati 60X3D

Component

Time componentIl 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.

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

Cristina Donati 61X3D

Component

Networking componentInclude URL, URL relative, protocolli di linguaggio di

scripting, opzioni browser. Ne sono esempio X3DNetworkSensorNode, X3DUrlObject, Anchor, Inline e LoadSensor

Grouping componentInclude una lista di nodi collegati a essa come nodi figli.Consentono di stabilire relazioni fra nodi collegando i

valori assunti da essi.

Rendering componentInclude 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.

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

Cristina Donati 62X3D

Component

Shape componentSono associati ai Geometry nodes per definire l’aspetto 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 componentConsistono in 4 tipi di nodi: shape, geometry, geometry property e appearance. Insieme sono usati per descrivere gli elementi visivi del mondo X3D.

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

Cristina Donati 63X3D

Component

Geometry 2D componentUsa 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 componentIl testo in X3D è processato come una geometria. Posso definirne l’aspetto tramite texture, scegliere il tipo di carattere, lo stile, la direzione, la giustificazione e la lingua (codifica, ad esempio cirillico…)

Sound componentSono 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

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

Cristina Donati 64X3D

Component

Lighting componentContiene i nodi fonti di illuminazione per tutti gli oggetti shape dando un’approssimazione di come l’ambiente 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, l’illuminazione parte dal centro-SpotLight –definita come influenza angolare

Texturing componentTipi 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 l’illuminazione fornendo le giuste gradazioni di colore. Contengono node reference quali: ImageTexture, MovieTexture, MultiTexture, TextureCoordinate…

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

Cristina Donati 65X3D

Component

Navigation componentOgni scena può avere più viewpoint e la navigazione consente all’utente di spostarsi attraverso questi. Sono nodi che rapprentano la capacità di interagire dell’utente

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 l’utente può cambiare il suo punto di vista da angolature e distanze diverse•Flying: è il migliore nel caso di applicazioni che esplorano uno spazio

Geospatial componentComponenti che forniscono il supporto per applicazioni geografiche e geospaziali. Ne sono esempio i nodi Geocoordinate, GeoElavationGrid, GeoLocation, GeoLOD, GeoMetadata, GeoOrigin, GeoTouchSensor, GeoViewpoint, ….

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

Cristina Donati 66X3D

Component

Humanoid componentInclude i nodi necessari a rappresentare figure umane tridimensionali animate.

Nurbs (Non-uniform Rational B-Splines) componentForniscono un metodo efficiente e conveniente di generare linee curve e superfici complesse.

Scripting componentDescrivono i meccanismi di scripting access

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

Cristina Donati 67X3D

Component

Sensor componentPointing device sensor component

Si attivano puntando o cliccando una geometria

TouchSensorSphereSensorPlaneSensorCylinderSensor

Key device sensor componentSi attivano quando cambia lo stato di una

chiave o termina una stringaKeySensorStringSensor

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

Cristina Donati 68X3D

I file X3D sono pagine XML

La struttura è composta da:

Dichiarazione XML

Dichiarazione DTD

Dichiarazione X3DTipo profiloXMLNSXSD

Scena

Struttura

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

Cristina Donati 69X3D

Visualizzazione della paginaVisualizzazione della pagina

tramite Cortona VRML Clienttramite Cortona VRML Client

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

Cristina Donati 70X3D

Codice XML

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

Cristina Donati 71X3D

Come creare un file X3D

Dichiarazione versione XML e tipo di codifica:

<?xml version="1.0" encoding="UTF-8"?>

Il tipo di codifica per questo standard è UTF-8

•Dichiarazione del Doctype

<!DOCTYPE X3D PUBLIC "http://www.web3d.org/specifications/x3d-3.0.dtd" "file:///www.web3d.org/TaskGroups/x3d/translation/x3d-3.0.dtd">

Eventuali commentiad esempio:<!--Warning: transitional DOCTYPE in source .x3d file-->

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

Cristina Donati 72X3D

Come creare un file X3D

Dichiarazione del profilo X3D dopo l’apertura del tag X3D

<X3D profile="Immersive" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifica tions/x3d-3.0.xsd">

Esistono diversi tipi di profili in questo standard:CoreInterchangeInteractiveMPEG-4 interactiveImmersiveFull

Dichiarazione dei componentinon sempre è necessaria, serve nel caso in cui i componenti

utilizzati all’interno del mondo non siano contenuti nel profilo utilizzato.

Del tipo: COMPONENT <name> <level>

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

Cristina Donati 73X3D

Come creare un file X3D

Dichiarazione dei metadati sul mondo<head><meta content=“Turn the World.x3d" name="filename"/>

<meta content=“Cristina Donati" name="author"/> <meta content=“15 Maggio 2004" name="created"/> <meta content=“24 Maggio 2004" name="revised"/> <meta content="Semplice esempio di globo in rotazione e testo in movimento" name="description"/> <meta content="http://api.ei.unibo.it/~cristina/TurnTheWorld.x3d" name="url"/> <meta content="X3D-Edit, http://www.web3d.org/x3d/content/README.X3D-Edit.html" name="generator"/> </head>

Ovvero dichiarazione delle informazioni circa l’autore, il nome del file, la data di creazione e modifica,l’URL e il generatore utilizzato ad esempio

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

Cristina Donati 74X3D

Come creare un file X3D

Dichiarazione della scena<Scene>

<WorldInfo info="an introductory scene" title=“Turn the World"/>

Inserimento del viewpoint<Viewpoint description="Hello, world" orientation="0 1 0 3.14159"

position="0 0 -8"/>Questo nodo consente la visualizzazione, fornendo posizione e direzione specifiche in cui la scena può essere vista dall’utente. Nessun oggetto è visibile senza il suo inserimento.Orientation è la rotazione (asse, angolo in radianti) del Viewpoint, relativamente alla direzione dell’asse 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.

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

Cristina Donati 75X3D

Come creare un file X3D

Navigationinfo<NavigationInfo type="&quot;EXAMINE&quot; &quot;ANY&quot;"/>

NavigationInfo descrive la visuale e le caratteristiche fisiche dell’avatar dell’utente. Per l’ispezione di oggetti singoli, l’usabilità viene di solito migliorata con type="EXAMINE" "ANY“. I tipi di NavigationInfo '"WALK" "FLY"' supportano la rilevazione di collisioni telecamera-oggetto.

•Transform<Transform DEF="EarthCoordinateSystem">

Transform è un nodo di raggruppamento che può contenere la maggior parte di tipi di nodi. Il valore attribuito a DEF indica l’ID del nodo, pertanto una scelta di carattere descrittivo è la più indicata.

•Definizione di un gruppo<Group DEF="MiniWorld">

Group è un nodo di raggruppamento, i nodi appartenente ad esso sono i relativi children nodes.

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

Cristina Donati 76X3D

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 l’aspetto:<Shape>

<Appearance> <ImageTexture url="&quot;earth-topo.png&quot; &#10;&quot;earth-

topo.gif&quot; &#10;&quot;earth-topo-small.gif&quot; &#10;&quot;http://www.web3d.org/x3d/content/examples/course/earth-topo.png&quot; &#10;&quot;http://www.web3d.org/x3d/content/examples/course/earth-topo.gif&#10;&quot;http://api.ei.unibo.it/~cristina/earth-topo.png&quot; &#10;&quot;http://api.ei.unibo.it/~cristina/earth-topo.gif&quot;"/>

</Appearance> <Sphere/> </Shape>

Una volta aperto il tag shape si va a definire l’aspetto, 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 l’oggetto cui si applicherà, ovvero una sfera.

anteprima

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

Cristina Donati 77X3D

Come creare un file X3D

Ora passiamo a introdurre un sensore<TouchSensor DEF="Trigger" description="touch globe to start animation"/>

</Group>

TouchSensor tiene traccia della posizione e dello stato del dispositivo di puntamento, e rileva quando l’utente 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<Transform DEF="SimpleGeoStationarySatellite" rotation="1 0 0 .3"

scale="0.1 0.3 0.1" translation="0 0 5">

In questo caso il nodo di raggruppamento Transform serve per raggruppare gli elementi che comporranno la scritta animata.

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

Cristina Donati 78X3D

Come creare un file X3D

Come comporre la scritta animata:<Shape>

<Appearance> <Material diffuseColor="0.9 0.1 0.1"/> </Appearance> <Text string=“Enjoy turn the World !!"> <FontStyle size="3"/> </Text> </Shape> </Transform> </Transform>

Dichiaro il nodo shape al cui interno definisco l’aspetto, 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 quest’ultimo.

Anteprima non avendo ancora imposto rotazioni il testo è fermo dietro la sfera, anche perché non sono state create connessioni fra nodi

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

Cristina Donati 79X3D

Come creare un file X3D

Ora devo definire le animazioni, per prima cosa inserisco un timesensor:<TimeSensor DEF="OrbitalTimeInterval" cycleInterval="12.0" loop="true"/>Questo serve per generare eventi in modo continuo con lo scorrere del tempo.

Si devono definire ora le animazioni<ROUTE fromField="touchTime" fromNode="Trigger" toField="startTime" toNode="OrbitalTimeInterval"/> <OrientationInterpolator DEF="SpinThoseThings" key="0.00 0.25 0.50 0.75 1.00" keyValue="0 1 0 0, 0 1 0 1.5708, 0 1 0 3.14159, 0 1 0 4.7123889, 0 1 0 6.2831852"/>

ROUTE connette dei campi di nodi diversi per permettere la trasmissione di eventiOrientationInterpolator genera una serie di valori di rotazione Il risultato può essere inviato (tramite ROUTE) all’attributo 'rotation' di un nodo <Transform> oppure a un altro attributo di tipo Rotation Input tipico

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

Cristina Donati 80X3D

Come creare un file X3D

Prosegue la connessione dei campi per permettere la trasmissione di eventi

<ROUTE fromField="fraction_changed“ fromNode="OrbitalTimeInterval" toField="set_fraction" toNode="SpinThoseThings"/> <ROUTE fromField="value_changed" fromNode="SpinThoseThings" toField="rotation" toNode="EarthCoordinateSystem"/></Scene>Una volta terminate le connessioni posso chiudere la scena

Una volta chiuisa la scena proseguo chiudendo il file X3D

</x3d>

Vedi outputVedi codice

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

Cristina Donati 81X3D

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

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

Cristina Donati 82X3D

Alcuni esempi completi

Dal sito del Web3DConsortium:

• Scacchi su otto livelli

• Networking rerouting alternates routes

• Desk lamp

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

Cristina Donati 83X3D

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

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

Cristina Donati 84X3D

Alcuni esempi completi

Sul Web:

• Brat - http://www.octaga.com/brat.html -

• Dining Room - http://www.vizx3d.com/samples/DinningRoom/DinningRoomX3D.html -

• Gammy World- http://www.vizx3d.com/samples/GammyWorld/GammyWorld.html -

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

Cristina Donati 85X3D

Bibliografia

• Web3D Consortium, www.web3d.org, 30 maggio 2004• It-web3D, http://eureka.lucia.it/vrml/it2000/atti/materiali.html, 30 maggio

2004• Ignazio Locatelli, Paper X3D, reperibile all’indirizzo

http://eureka.lucia.it/vrml/it2000/atti/materiali.html, 30 maggio 2004• Web3D Consortium, www.web3d.org/x3d/content/x3dtooltipsitalian.html,

30 maggio 2004• HTML.IT, www.html.it/vrml/vrml_05.htm, 30 maggio 2004• X3dabstractspecification, ISO-IEC-19775, disponibile all’indirizzo

www.web3d.org/documentation/specification, 30 maggio 2004• Don Brutzman, X3D-Edit Authoring Tool for Extensible 3D Graphics,

presentazione .ppt reperibile all’indirizzo http://www.web3D.org/x3d.html, 30 maggio 2004

• Leonard Daly, Introducing X3D Authoring X3D, presentazione .ppt, scaricata dal sito www.web3d.org, 10 gennaio 2004