Title: Diapositiva 1
1X3D
X3D
Cristina Donati
1
2Percorso
- Introduzione a X3D
- Obiettivi di progettazione
- Un po di storia
- Obiettivi principali della specifica X3D
- Caratteristiche
- Mercati coinvolti
- Architettura
- Componenti
- Esempi
X3D
Cristina Donati
2
3Introduzione
- X3D è uno standard di formato di file potente ed
estensibile per descrivere ambienti virtuali
tridimensionali distribuiti per la rete.
X3D
Cristina Donati
3
4Introduzione
- X3D è sviluppato dal Web 3D Consortium,
associazione non profit responsabile della
definizione degli standard grafici 3D per il web.
Web 3D lavora in stretto contatto con altre
associazioni quali the International Standards
Organization (ISO), the World Wide Web Consortium
(W3C) e the MPEG-4 Committee, per facilitare al
massimo l'interoperabilità e l'adozione dei
propri standard da parte delle industrie.
X3D
Cristina Donati
4
5Introduzione
- X3D fornisce
- XML encoding rende possibile l'incorporazione del
3D nell'architettura web service e negli ambienti
distribuiti e facilita il trasferimento di dati
3D fra applicazioni. - Scene Authoring Interface fornisce contenuti 3D
in tempo reale e controlla facilmente la loro
integrazione in un'ampia gamma di applicazioni
web e non.
X3D
Cristina Donati
5
6Introduzione
- X3D è il successore di VRML (standard ISO
-ISO/IEC 14772-11997- per web basati su grafica
3D) - Il campo di azione dell'X3D va a sovrapporsi al
già affermato VRML97. Infatti, questo standard,
nasce come sforzo per migliorare la specifica
Vrml97, cercando di prendere spunto da quanto di
buono essa contiene e di correggere le palesi
difficoltà di implementazione o diffusione da
essa mostrate. - I progressi dell'X3D rispetto il VRML riguardano
nuove caratteriche, applicazioni avanzate di
interfacce programmatori, formati addizionali di
codifica dei dati, conformità più ristretta e
un'architettura costituita da componenti che
fornisce l'approccio modulare di supporto allo
standard.
X3D
Cristina Donati
6
7Obiettivi di progettazione
- Separare l'architettura di runtime dalla codifica
dei dati - Supportare svarietà formati di codifica, incluso
l'Extensible Markup Language (XML) - Aggiungere nuove grafiche, comportamenti e
oggetti interattivi - Fornire alternative application programmer
interfaces (API) nella scena 3D - Modularizzare l'architettura in componenti
- Definire sottoinsiemi della specifica ( "
Profiles" ) che soddisfino le differenti
necessità di mercato - Permettete alla specifica di essere realizzata a
diversi livelli di servizio - Eliminare, dove possibile, comportamenti non
specificati o non sufficientemente specificati
X3D
Cristina Donati
7
8Un po' di storia
- Fase iniziale del processo di definizione del
nuovo standard portata avanti da uomini della
Platinum (società che nella seconda metà del 98
aveva mostrato un grosso interesse per il settore
andando ad acquistare alcune tra le principali
tecnologie disponibili). - Modalità di avanzamento del processo
profondamente diverse da quelle che avevano
caratterizzato la definizione di Vrml 1.0 e Vrml
2.0.
X3D
Cristina Donati
8
9Un po' di storia
- Colpo di scena in occasione di VRML99 tenutosi a
Paderborn in Germania a febbraio. La Platiunum
annunciò la liquidazione del settore 3D con
licenziamenti a valanga una mossa che sorprese
un po tutti, visto che arrivava 6 mesi dopo
l'acquisizione di risorse strategiche nel
settore. - Dopo un iniziale periodo di sbandamento, la
comunità internazionale web3d prese in mano il
processo di definizione dello standard X3D. Si
formò un team di sviluppo (periodo marzo-aprile
1999) capeggiato da Don Brutzman, attuale
coordinatore del processo di definizione.
X3D
Cristina Donati
9
10Un po' di storia
- Ancora una volta il processo di definizione delle
nuove specifiche è sembrato troppo lento e
soprattutto non in linea con la storia recente di
Vrml che aveva visto la mailing list www-vrml
sempre in primo piano in particolare nel periodo
che va dallaprile al giugno 99 molto forti erano
le lamentele circa un processo di
standardizzazione che sembrava procedere in modo
autonomo rispetto alla comunità web3d.
X3D
Cristina Donati
10
11Un po' di storia
- Un evento 'imprevisto' sbloccò la situazione.
Shout Interactive, società emergente nel settore
Vrml e una tra le maggiori promotrici di X3D,
sottomise al Web3D Consortium una proposta di
specifica, fornendo anche una parziale
implementazione già attiva. Subito dopo anche
Blaxxun rilasciava un propria proposta, seguita a
ruota da un'altra di New Objectivity. - Queste iniziative hanno probabilmente colto
leggermente di sorpresa il team di sviluppo di
X3D, obbligandolo di fatto a modificare il
procedimento di sviluppo della specifica.
X3D
Cristina Donati
11
12Un po' di storia
- Si giunse alla definizione ufficiale di una
Request For Proposal in cui far confluire le
diverse proposte che già erano state presentate
(o che stavano per essere completate). - Partendo da queste il compito del team X3D
dovrebbe essere quello di giungere alla
definizione di un unico standard che sia in grado
di sommare gli aspetti positivi di ognuna. Da
poco è stata rilasciata una nuova draft di
specifica per x3d. Il procedimento di definizione
e soprattutto di valutazione è tuttora pienamente
in corso.
X3D
Cristina Donati
12
13Un po' di storia
PROPOSITI SCADENZA
Specification draft 30/04/04
Implementazione browser 08/08/04
Dimostrazione Fine giugno
Valutazione 08/08/04
Inizio ISO submission I settimana di luglio
II round valutazione
ISO submission
X3D
Cristina Donati
13
14Obiettivi principali della specifica X3D
- Definizione di un core, un nucleo molto compatto
della specifica che possa essere implementato
velocemente, senza errori e con ridottissime
dimensioni dei files risultanti. Questo comporta
la possibilità di ottenere plug-in dalle
dimensioni molto piccole (dell'ordine anche del
centinaio di Kb) e quindi facilmente
incorporabili nei browser html. Da sottolineare è
che questo permette che contenuti X3D possano
essere distribuiti addirittura con delle semplici
applet Java che funzionano da viewer. - E' da sottolineare come questo permetta di
distribuire contenuti X3D utilizzando come viewer
delle semplici applet Java.
X3D
Cristina Donati
14
15Obiettivi principali della specifica X3D
- Estendibilità Il core dovrebbe prevedere la
possibilità di essere esteso con quelli che
vengono definiti profili. Dovrebbe dunque essere
presente un meccanismo che consente l'estensione
del plug-in (o del viewer Java). - Integrazione con XML Sarà dunque possibile creare
contenuti X3D con una sintassi a tag XML.
X3D
Cristina Donati
15
16Obiettivi principali della specifica X3D
- X3D non comporta la morte di VRML.
- VRML97 è uno standard ISO e in quanto tale
rimarrà attivo. - La sintassi X3D è praticamente identica alla
sintassi Vrml, con piccole varianti che nelle
intenzioni dovrebbero semplificare la scrittura
del codice e renderlo più semplice e coerente.
X3D
Cristina Donati
16
17Obiettivi principali della specifica X3D
X3D
Cristina Donati
17
18Cosa ha portato a definire il nuovo standard X3D?
- La necessità di disporre di un plug-in lato
client per visualizzare i file VRML che spesso
raggiunge dimensioni superiori anche ai 3Mb. Se
si pensa che meno del 10 degli utenti della rete
ha installato un plug-in vrml si possono
comprendere molte delle resistenze delle aziende
nella sua adozione come mezzo di comunicazione di
massa.Non solo molto spesso le funzionalità più
evolute non sono implementate nello stesso modo
su tutti i plug-in e addirittura su alcuni non
funzionano. Questo è dovuto essenzialmente alla
complessità della specifica Vrml97. La specifica
attuale è a detta di tutti troppo complessa per
permettere agli sviluppatori di browsers di
ottenere prodotti leggeri e privi di bug.
X3D
Cristina Donati
18
19Cosa ha portato a definire il nuovo standard X3D?
- Problema di estensioni che limita Vrml nella sua
versione attuale. Attualmente non esiste un modo
(a parte l'utilizzo dei PROTO) per realizzare
estensioni alle funzionalità preimpostate. Se
qualcuno volesse aggiungere collision object to
object o ombre dovrebbe realizzare soluzioni
proprietarie e, eventualmente, richiedere una
successiva modifica dello standard.
X3D
Cristina Donati
19
20Cosa ha portato a definire il nuovo standard X3D?
- A fronte di queste problematiche il Web3D
Consortium ha lanciato la proposta di definizione
di un nuovo standard. Inizialmente denominato
VRML-NG (Next-Generation) - È stato poi ribattezzato X3D, dove la X andrebbe
a sottolineare sia l'aspetto di estendibilità che
la sua integrazione con XML, il nuovo standard
per la definizione di contenuti per il web.
X3D
Cristina Donati
20
21Caratteristiche
- X3D ha un ricco insieme di caratteristiche per
sostenere applicazioni come ingegneria e
visualizzazione scientifica, presentazioni
multimediali, intrattenimento e titoli didattici,
pagine web e mondi virtuali condivisi. L'insieme
di caratteristiche X3D include - grafica 3D geometria poligonale, geometria
parametrica, trasformazioni gerarchiche,
illuminazione, materiali e multi-pass/multi-stage
texture. - grafica 2D
- Animazione
- Interazione di utente
- Navigazione
- Oggetti definiti dall'utente
- Scripting
- Rete di servizi
- Simulazione fisica animazione Humanoid
geospatial datasets integrazione con protocolli
Distributed Interactive Simulation (DIS)
X3D
Cristina Donati
21
22Caratteristiche
- Una caratteristica importante di file X3D è la
capacità di comporre scene includendo e
riportando altre scene tramite l'hyperlinking. Ad
esempio, se consideriamo il file earth.wrl,
specifica un mondo che contiene una sfera che
rappresenta la terra, possiamo includere
riferimenti ad altri file X3D rappresentativi
delle città sulla terra (per esempio, file
paris.wrl). - L'inclusione di file gerarchici permette la
creazione di mondi arbitrariamente grandi e
dinamici. Quindi, X3D assicura che ogni file sia
descritto completamente dagli oggetti contenuti
in esso.
X3D
Cristina Donati
22
23Caratteristiche
- X3D è stato creato con l'intenzione di essere
usato e distribuito sul web. - Diversi meccanismi e oggetti rendono possibile e
supportano questo obiettivo - in-lining di altri file X3D o VRML
- hyperlinking ad altri file
- utilizzo di formati standard per altri file
- accesso ai mondi X3D da parte di programmi
esterni che utilizzano SAI (scene authoring
interface) - definizione di differenti codifiche delle
funzionalità astratte per soddifare svariati
utilizzi.
X3D
Cristina Donati
23
24Caratteristiche chiave
- X3D integra XML
- X3D è intercambiabile supporta geometria,
animazioni, tessiture e accensioni - X3D è estensibile i componenti possono essere
aggiunti per estendere le funzionalità di
applicazioni e servizi, esiste un set di
Interchange con script e di proto nodes, ma ne
possono essere aggiunti di nuovi
X3D
Cristina Donati
24
25- X3D è definito set standardizzati di estensioni
per soddisfare gli specifici bisogni delle
applicazioni - X3D è basato su VRML include le capacità e gli
sviluppi del VRML97 - X3D è proiettato su diverse applicazioni dai
cellulari ai supercomputer
X3D
Cristina Donati
25
26- X3D è tempo reale grafica di alta qualità, tempo
reale, interattività e inclusione di audio e
video come dati 3D. - X3D è conforme rende facile costruire
implementazioni prive di bug e consistenti
X3D
Cristina Donati
26
27Mercati coinvolti
- Il consorzio web 3D focalizza la propria
attenzione su tre mercati principali e su
diversimercati secondari. - MERCATI PRINCIPALI
- 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.
X3D
Cristina Donati
27
28Mercati 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
X3D
Cristina Donati
28
29Mercati coinvolti
- Visual Simulation (XMSF)
- Extensible Modeling and Simulation Framework
(XMSF) è destinato a sostenere
l'interoperabilità verso la gamma di modelli e
simulazioni includendo metodi costruttivi,
virtuali e reali. Utilizza X3D e XML Web services
per dar vita a una nuova generazione di
simulazioni distribuite.
X3D
Cristina Donati
29
30Mercati coinvolti
- Geospatial
- Education
- Technical Training and Documentation
- Entertainment and Games
X3D
Cristina Donati
30
31Architettura
- Archittettura component-based che supporta la
creazione di diversi profili che possono essere
individualmente supportati. - I componenti possono essere singolarmente estesi
o modificati aggiungendo nuovi livelli, o nuovi
componenti possono essere aggiunti introducendo
nuove caratteristiche, ad es. lo streaming.
Attraverso questo meccanismo i vantaggi delle
specifiche possono diffondersi velocemente perchè
lo sviluppo in un'area non rallenta quello delle
altre.
X3D
Cristina Donati
31
32Architettura
- L'architettura X3D descrive l'interazione fra
contenuti multimediali 2D e 3D e applicazioni.
Contiene sia elementi dichiarativi (quali oggetti
e e struttura delle relazioni fra oggetti) che
procedure (codice eseguibile). X3D stabilisce una
gerarchia di oggetti rappresentando lo spazio
temporale della grafica 3D e la scena che può
essere dinamicamente modificata tramite diversi
meccanismi. - X3D include il supporto per un ricco set di
caratteristiche grafiche 2D e 3D, animazioni,
interazioni utente e navigazione nello spazio 3D.
X3D
Cristina Donati
32
33Architettura
- Gli autori di contenuti X3D iniziano generalmente
scrivendo un file X3D o una stringa contenente lo
stato iniziale dell'applicazione, contenente gli
statements dichiarativi e procedurali che
descrivono il suo comportamento. - Un file X3D può essere
- puramente dichiarativo, descrivendo i
comportamenti in termine di oggetti e di
collegamenti fra le proprietà degli stessi - puramente procedurale, con elementi visivi e di
comportamento costruiti dinamicamente come parti
dell'applicazione eseguita. - Spesso una scena è una combinazione di entrambe.
- Browser è un programma che implementa X3D runtime
environment - Generator o authoring tool è un programma che
genera contenuti X3D per il runtime.
X3D
Cristina Donati
33
34Architettura
- The scene graph
- La struttura fondamentale di X3D è scene graph,
che descrive gli elementi visivi e
comportamentali (nodes) e le loro relazioni
reciproche. X3D scene graph è un grafo orientato
aciclico. - Ogni nodo può contenere uno o più nodi figli, e
così via. Un nodo figlio può avere più di un nodo
padre. Non sono permessi cicli un nodo non può
avere se stesso come antenato nello scene graph.
In aggiunta a questa relazione gerarchica, i nodi
possono referenziarsi a vicenda, ad esempio un
nodo può contenere come campo un puntatore a un
altro nodo.
X3D
Cristina Donati
34
35Architettura
- Runtime environment
- Mantiene lo stato dello scene graph, restituire
la scena quando necessario, ricevere input da una
varietà di risorse, quali ad esempio sensori, ed
eseguire cambiamenti sullo scene graph
rispondendo alle istruzioni del sistema
comportamentale. - Gestisce il ciclo di vita degli oggetti.
- Coordina il processo degli eventi
- Gestisce l'interoperabilità fra il browser X3D e
l'applicazione host per la consegna dei file,
hyperlinking, integrazione delle pagine e accesso
esterno programmatico. -
X3D
Cristina Donati
35
36Architettura
- Network delivery
- I contenuti X3D sono progettati per diffondersi
nel World Wide Web e nelle reti a banda larga
utilizzando protocolli standard di trasporto,
MIME content type identification, e
indirizzamento tramite URL. - Inlining
- Tecnica tramite cui è possibile comporre una
scena X3D assemblando sul sistema client per
opera del browser diversi file scaricati
separatamente. Questa tecnica permette la
creazione di contenuti modulari e riutilizzabili,
migliorando l'esperienza dell'utente grazie alla
riduzione del tempo di risposta successivamente
al caricamento della scena iniziale. - Hyperlinking
- caratteristica che consente di attaccare URL agli
oggetti, queste saranno caricate dal browseral
click dell'utente sull'oggetto.
X3D
Cristina Donati
36
37Profili, componenti, livelli
- X3D è una specifica complessa e per gestire la
complessità ha adottato un'architettura modulare. - Contrariamente al VRML, che richiedeva l'adozione
dell'intero pacchetto di caratteristiche
compliance, X3D permette agli sviluppatori di
supportare un sottoinsieme delle specifiche
(Profiles), composti da blocchi modulari di
funzionalità (Components). - Non tutti i contenuti richiedono le stesse
qualità di visualizzazione e le stesse
performance, pertando X3D consente alle
specifiche di essere supportate con differenti
qualità del servizio (Levels). - Unendo profili, componenti e livelli otteniamo
diverse gamme di confomant implementations a
seconda della piattaforma e dell'applicazione di
cui abbiamo bisogno.
X3D
Cristina Donati
37
38Profili, componenti, livelli
- PROFILES
- Sottoinsieme delle specifiche X3D per incontrare
le esigenze di applicazioni, piattoforme e
mercati. - Ogni profilo rappresenta un insieme di
caratteristiche volte a soddisfare le esigenze. - Per esempio Interchange profile per scambiare
contenuti fra authoring system contiene le
caratteristiche richieste per specificare
geometria, gruppi, apparenza e animazioni, ma non
contiene l'interattività, i controlli di
navigazione, lo scripting e le altre
caratteristiche contenute nella specifica X3D. - Per semplificare l'implementazione o ridurre la
memoria richiesta la descrizione di un profilo
deve contenere specifiche restrizioni su certe
caratteristiche, quali la limitazione delle
dimensioni degli degli array ad esempio. Browser
e authoring tool sono considerati conformi a un
particolare profilo se non implementano l'intera
specifica X3D.
X3D
Cristina Donati
38
39Profili, componenti, livelli
- COMPONENTI
- Le capacità dell'X3D sono definite da blocchi
distinti di funzionalità o componenti. I
componenti sono divisi in gruppi quali Geometry,
Grouping, Lighting, Texturing, Pointing Device
Sensors, e Navigation. Rispettando le specifiche
necessarie al contenuto i componenti possono
essere mescolati, se il browser supporta i
componenti richiesti non avrà problemi a
restituirli. - I Component possono essere supportati a diversi
livelli, o qualità di servizio. Qualsiasi X3D
component assegna uno schema di numerazione dei
livelli a seconda della qualità di servizio da
essi fornita, un alto livello indica la presenza
(o assenza) di determinate caratteristiche,
semantiche maggiormente definite e più severe
richieste di conformità.
X3D
Cristina Donati
39
40Profili, componenti, livelli
- I contenuti e le applicazioni devono specificare
il profilo richiesto e i componenti che devono
essere supportati e a quale livello. - Un browser X3D può usare le informazioni degli
header del file per caricare solo i profili o i
componenti richiesti e caricare dinamicamente i
nuovi moduli dei programmi se i contenuti della
scena richiedono componenti aggiuntivi non
disponibili sul client. - Se un profilo, un componente o un livello non è
specificato il browser utilizzerà i valori di
default. -
X3D
Cristina Donati
40
41Application programmer interfaces (APIs)
- X3D fornisce un ricco set di APIs, che forniscono
alla scena l'accesso all'esecuzione. Le APIs
offrono estensioni delle funzionalità per i
browser e l'integrazione di risorse interne ed
esterne per generare comportamenti dinamici. - L'accesso può essere interno -usato per creare
elementi personalizzati dentro lo scene graph - o esterno -connettendo al programma elementi
esterni alla scena, per esempio collocati su un
applicazione host quale il web browser. - X3D APIs sono specificate come un set di servizi
indipendenti dal linguaggio nella Interface
Definition Language (IDL). I servizi delle API
X3D sono limitate a differenti e popolari
linguaggi di programmazione e di scripting,
incluso Java e ECMAScript, e interoperabili con
componenti tecnologici quali COM, DOM and CORBA.
X3D
Cristina Donati
41
42Data encodings
- I contenuti e le applicazioni X3D possono essere
codificate in diversi formati. - L'ISO 19775 contiene alcune specifiche al
riguardo, definendo tre formati concreti di
codifica - Extensible Markup Language (XML)
- Virtual Reality Modeling Language (VRML97) utf-8
- Binary
- Questi possono esser a loro volta compressi
utilizzando gzip oppure non compressi. - I browser e i generators possono supportare uno o
tutti i formati di codifica, a seconda delle
necessità delle applicazioni e delle richieste di
conformità di uno specifico componente o profilo.
X3D
Cristina Donati
42
43Field
- Field è una proprietà o un attributo di un nodo.
- Ci sono due classi generali di field
- che contengono un singolo valore (dove un valore
può essere un singolo numero, un vettore, o
un'immagine). Il loro nome inizia per SF - che contengono una lista ordinata di multipli
valori. Se field ha zero valori, il valore è
vuoto ma continua a essere rappresentato. Il loro
nome inizia con MF.
X3D
Cristina Donati
43
44Conformità
Di un file X3D
- Come primo elemento contiene X3D header statement
- Tutte le entità sono contenute all'interno della
specifica funzione della corrispondente entità
dell' ISO/IEC 19775 e il file X3D segue le
relazioni definite dalla grammatica e dalla
sintassi. - La sequenza delle entità segue le relazioni
specificate dall'ISO/IEC 19775 riproducendo la
struttura da esso specificata. - Tutti i field values nel file X3D seguono le
relazioni specificate dall'ISO/IEC 19775
producendo la struttura specificata dalla stesso.
- Nessun nodo nel file X3D è diverso da quello
specificato per il profilo applicabile, a meno
che sia richiesto per la codifica o per quelli
definiti da entità PROTO o EXTERNPROTO. - Il file X3D è codificato secondo le regole
dell'ISO/IEC 19776. - Non rientra nei comportamenti descritti come
undefined dall' ISO/IEC 19775.
X3D
Cristina Donati
44
45Conformità
Di un generatore
- È conforme all'ISO/IEC 19775 se tutti i file X3D
da esso generati sono sintatticamente corretti e
soddisfano le richieste della conformità dei file
X3D.
X3D
Cristina Donati
45
46Conformità
Di un browser
- È capace di leggere qualsiasi file X3D conforme
al profilo supportato dal browser - Implementa le funzionalità specificate per tutte
le abstract interfaces - Presenta le caratteristiche grafiche e audio dei
nodi X3D in qualunque file X3D conforme alle al
profilo applicabile. - Gestisce correttamente l'interazione utente e
generazione di eventi come specificato per il
profilo applicabile. - Soddisfa i requisiti minimi di supporto per
browser inerenti al profilo applicabile come
elencati dalle relative tabelle.
X3D
Cristina Donati
46
47Browser
- Il browser si occupa dell'interpretazione,
dell'esecuzione e della presentazione del file
X3D, mostrando le figure e i suoni presenti nello
scene graph. Questa presentazione è nota come
virtual world e la navigazione ha luogo tramite
l'utente. - Viewer è la posizione e l'orientamento del mondo,
e i browser forniscono paradigmi di navigazione
quali walking o flying per consentire all'utente
il movimento nel mondo virtuale.
X3D
Cristina Donati
47
48Browser
- Oltre alla navigazione, il browser fornisce una
serie di meccanismi che consentono all'utente
l'interazione con il mondo tramite i sensor nodes
definiti nello schema gerarchico della scena. I
sensori rispondono all'interazione con l'utente
tramite oggetti geometrici nel mondo, il
movimento attraverso il mondo e il passare del
tempo. Inoltre, Scene Access Interface (SAI)
fornisce meccanismi per prendere gli input
dell'utente e modificare il viewpoint corrente. - Gli autori possono anche usare linguaggi di
programmazione o script, vincolati al SAI, per
implementare il loro algoritmo di navigazione. - La visualizzazione degli oggetti geometrici nel
mondo X3D segue il modello concettuale sviluppato
per riprodurre le caratteristiche fisiche della
luce. X3D lighting model descrive quindi come
l'apparenza e la luce nel mondo si combinano per
creare i colori visualizzati.
X3D
Cristina Donati
48
49Browser
- Cortona (Parallel Graphics)
- Contact (blaxxun)
- Piveron/CosmoPlayer (Nexternet)
- Octagon free player (Octaga)
- Xj3D (Yumetech)
- Flux (Media Machines)
X3D
Cristina Donati
49
50Development Tools
- Text Editor
- XML Editors
- X3D-Edit
- VizX3D
- VRML-X3D Translators
X3D
Cristina Donati
50
51The scene graph
- 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.
X3D
Cristina Donati
51
52The scene graph
- 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.
X3D
Cristina Donati
52
53Runtime environment
- 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
X3D
Cristina Donati
53
54Object model
- 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
X3D
Cristina Donati
54
55Object model
- 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.
X3D
Cristina Donati
55
56Object model
- 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
X3D
Cristina Donati
56
57Prototype semantics
- 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.
X3D
Cristina Donati
57
58Prototype semantics
- VRML V2.0 utf8
- PROTO Gold Material ...
- PROTO Silver Material ...
- ...
- etc.
VRML V2.0 utf8 EXTERNPROTO
GoldFromLibrary "http//.../materials.wrlGold"
... Shape appearance
Appearance material GoldFromLibrary
geometry ...
Un materiale da questa libreria può essere usato
così
X3D
Cristina Donati
58
59Component
- 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... -
X3D
Cristina Donati
59
60Component
- 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.
X3D
Cristina Donati
60
61Component
- 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.
X3D
Cristina Donati
61
62Component
- 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.
X3D
Cristina Donati
62
63Component
-
- 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
X3D
Cristina Donati
63
64Component
- 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
X3D
Cristina Donati
64
65Component
- 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, .
X3D
Cristina Donati
65
66Component
- 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
X3D
Cristina Donati
66
67Component
- 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
X3D
Cristina Donati
67
68Struttura
- I file X3D sono pagine XML
- La struttura è composta da
- Dichiarazione XML
- Dichiarazione DTD
- Dichiarazione X3D
- Tipo profilo
- XMLNS
- XSD
- Scena
X3D
Cristina Donati
68
69- Visualizzazione della pagina
- tramite Cortona VRML Client
X3D
Cristina Donati
69
70Codice XML
X3D
Cristina Donati
70
71Come creare un file X3D
- Dichiarazione versione XML e tipo di codifica
- lt?xml version"1.0" encoding"UTF-8"?gt
- Il tipo di codifica per questo standard è UTF-8
- Dichiarazione del Doctype
- lt!DOCTYPE X3D PUBLIC "http//www.web3d.org/specif
ications/x3d- 3.0.dtd" - "file///www.web3d.org/TaskGroups/x3d/tr
anslation/x3d-3.0.dtd"gt - Eventuali commenti
- ad esempio
- lt!--Warning transitional DOCTYPE in source
.x3d file--gt
X3D
Cristina Donati
71
72Come creare un file X3D
- Dichiarazione del profilo X3D dopo lapertura del
tag X3D - ltX3D profile"Immersive"
- xmlnsxsd"http//www.w3.org/2001/XMLSchema-ins
tance" xsdnoNamespaceSchemaLocation"http//www.
web3d.org/specifica tions/x3d-3.0.xsd"gt - 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 ltnamegt ltlevelgt
X3D
Cristina Donati
72
73Come creare un file X3D
- Dichiarazione dei metadati sul mondo
- ltheadgt
- ltmeta contentTurn the World.x3d"
name"filename"/gt - ltmeta contentCristina Donati"
name"author"/gt - ltmeta content15 Maggio 2004"
name"created"/gt - ltmeta content24 Maggio 2004"
name"revised"/gt - ltmeta
- content"Semplice esempio di globo in
rotazione e testo in movimento"
name"description"/gt - ltmeta content"http//api.ei.unibo.it/cristi
na/TurnTheWorld.x3d" name"url"/gt - ltmeta content"X3D-Edit, http//www.web3d.or
g/x3d/content/README.X3D-Edit.html"
name"generator"/gt - lt/headgt
- Ovvero dichiarazione delle informazioni circa
lautore, il nome del file, la data di creazione
e modifica,lURL e il generatore utilizzato ad
esempio
X3D
Cristina Donati
73
74Come creare un file X3D
- Dichiarazione della scena
- ltScenegt
- ltWorldInfo info"an introductory scene"
titleTurn the World"/gt - Inserimento del viewpoint
- ltViewpoint description"Hello, world"
orientation"0 1 0 3.14159" position"0 0 -8"/gt - 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.
X3D
Cristina Donati
74
75Come creare un file X3D
- Navigationinfo
- ltNavigationInfo type"quotEXAMINEquot
quotANYquot"/gt - 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
- ltTransform DEF"EarthCoordinateSystem"gt
- 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
- ltGroup DEF"MiniWorld"gt
- Group è un nodo di raggruppamento, i nodi
appartenente ad esso sono i relativi children
nodes.
X3D
Cristina Donati
75
76Come 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 - ltShapegt
- ltAppearancegt
- ltImageTexture url"quotearth-topo.pn
gquot 10quotearth-topo.gifquot
10quotearth-topo-small.gifquot
10quothttp//www.web3d.org/x3d/content/exampl
es/course/earth-topo.pngquot 10quothttp//w
ww.web3d.org/x3d/content/examples/course/earth-top
o.gif10quothttp//api.ei.unibo.it/cristina/e
arth-topo.pngquot 10quothttp//api.ei.unibo
.it/cristina/earth-topo.gifquot"/gt - lt/Appearancegt
- ltSphere/gt
- lt/Shapegt
- 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
X3D
Cristina Donati
76
77Come creare un file X3D
- Ora passiamo a introdurre un sensore
- ltTouchSensor DEF"Trigger" description"touch
globe to start animation"/gt - lt/Groupgt
- 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
- ltTransform DEF"SimpleGeoStationarySatellite"
rotation"1 0 0 .3" - scale"0.1 0.3 0.1" translation"0 0 5"gt
- In questo caso il nodo di raggruppamento
Transform serve per raggruppare gli elementi che
comporranno la scritta animata.
X3D
Cristina Donati
77
78Come creare un file X3D
- Come comporre la scritta animata
- ltShapegt
- ltAppearancegt
- ltMaterial diffuseColor"0.9 0.1
0.1"/gt - lt/Appearancegt
- ltText stringEnjoy turn the World !!"gt
- ltFontStyle size"3"/gt
- lt/Textgt
- lt/Shapegt
- lt/Transformgt
- lt/Transformgt
- 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.
Anteprima non avendo ancora imposto rotazioni il
testo è fermo dietro la sfera, anche perché non
sono state create connessioni fra nodi
X3D
Cristina Donati
78
79Come creare un file X3D
- Ora devo definire le animazioni, per prima cosa
inserisco un timesensor - ltTimeSensor DEF"OrbitalTimeInterval"
cycleInterval"12.0" loop"true"/gt - Questo serve per generare eventi in modo
continuo con lo scorrere del tempo. - Si devono definire ora le animazioni
- ltROUTE fromField"touchTime" fromNode"Trigger"
toField"startTime" toNode"OrbitalTimeInterval"/gt
- ltOrientationInterpolator 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"/gt - 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 ltTransformgt oppure a un altro
attributo di tipo Rotation Input tipico
X3D
Cristina Donati
79
80Come creare un file X3D
- Prosegue la connessione dei campi per permettere
la trasmissione di eventi - ltROUTE fromField"fraction_changed
fromNode"OrbitalTimeInterval" - toField"set_fraction" toNode"SpinThoseThings
"/gt - ltROUTE fromField"value_changed"
fromNode"SpinThoseThings" - toField"rotation" toNode"EarthCoordinateSyst
em"/gt - lt/Scenegt
- Una volta terminate le connessioni posso chiudere
la scena - Una volta chiuisa la scena proseguo chiudendo il
file X3D - lt/x3dgt
- Vedi output
- Vedi codice
X3D
Cristina Donati
80
81Come 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
X3D
Cristina Donati
81
82Alcuni esempi completi
- Dal sito del Web3DConsortium
- Scacchi su otto livelli
- Networking rerouting alternates routes
- Desk lamp
-
X3D
Cristina Donati
82
83Come 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
X3D
Cristina Donati
83
84Alcuni esempi completi
- Sul Web
- Brat
- - http//www.octaga.com/brat.html -
- Dining Room
- - http//www.vizx3d.com/samples/DinningRoom/Dinni
ngRoomX3D.html - - Gammy World
- - http//www.vizx3d.com/samples/GammyWorld/GammyW
orld.html - -
X3D
Cristina Donati
84
85Bibliografia
- 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
allindirizzo http//eureka.lucia.it/vrml/it2000/a
tti/materiali.html, 30 maggio 2004 - Web3D Consortium, www.web3d.org/x3d/content/x3dtoo
ltipsitalian.html, 30 maggio 2004 - HTML.IT, www.html.it/vrml/vrml_05.htm, 30 maggio
2004 - X3dabstractspecification, ISO-IEC-19775,
disponibile allindirizzo www.web3d.org/documentat
ion/specification, 30 maggio 2004 - Don Brutzman, X3D-Edit Authoring Tool for
Extensible 3D Graphics, presentazione .ppt
reperibile allindirizzo 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 -
X3D
Cristina Donati
85