Massimiliano Piscozzi – Sistemi multimediali.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

I tipi Strutturati.
LINGUAGGIO DI PROGRAMMAZIONE C
Estendere i linguaggi: i tipi di dato astratti
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
STRUTTURA DEL PERSONAL COMPUTER
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
2/11/2004Laboratorio di Programmazione - Luca Tesei1 Punto della situazione Da dove veniamo, dove andiamo.
Algoritmi e Programmazione
Università degli Studi di Modena e Reggio Emilia
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Introduzione al linguaggio C++ 5 lezioni
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
Modello del sistema di posta Elettronica
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 91 Il modello OAI (Object-Action Interface) Sintassi e semantica: la sintassi specifica.
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
INTRODUZIONE AD OMNET++
AA2003/04 © M.A. Alberti Programmazione Interfacce 1 Programmazione Corso di laurea in Informatica.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Linguaggi di markup1 LINGUAGGI DI MARKUP. Linguaggi di markup2 Documenti su Internet Internet permette (tra laltro) di accedere a documenti remoti In.
1 Linux day /11/2003 ADA. Dai requisiti al progetto Come nasce il progetto di una piattaforma e-learning Open Source.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dellInformazione Applicazione.
Corso di PHP.
Ing. Enrico Lecchini BetaTre S.r.l.
Javascript: fondamenti, concetti, modello a oggetti
Descrizione Semantica ad Alto Livello di Ambienti Virtuali in X3D
Gerarchia delle funzioni e modello FH
STRUTTURA GENERALE DI UN ELABORATORE
VRML97 -Appendice- Cristina Donati 1 VRML97. Il Virtual Reality Modeling Language (VRML) è un formato di file volto alla descrizione degli oggetti interattivi.
Introduzione alla programmazione Object Oriented
Massimiliano Piscozzi – Sistemi multimediali.
Massimiliano Piscozzi – Sistemi multimediali.
Massimiliano Piscozzi – Sistemi multimediali.
Sintassi base e struttura di un programma
Sistemi Informativi sul Web
Massimiliano Piscozzi – Sistemi multimediali.
I formati nella Computer Grafica
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Linguaggi e modelli computazionali LS Manni Tiziano
Prof. Reale Nicola Studentessa Parcesepe Federica
Corso di Programmazione Grafica e Laboratorio Daniele Marini
INTRODUZIONE A JAVASCRIPT
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Introduzione a Javascript
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
Servizi Internet Claudia Raibulet
Costruzione di Interfacce
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Eprogram informatica V anno.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
UNIMORE University of Modena and Reggio Emilia Scratch Simone Calderara
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Yahoo! Widget TV Marco Teodori Assistente Ricercatore - Fondazione.
Introduzione alle Classi e agli Oggetti in Java 1.
Progetto WELL-FIR Manuale Utente del Web GIS Versione 0.1.
Massimiliano Piscozzi –
Massimiliano Piscozzi –
Transcript della presentazione:

Massimiliano Piscozzi – Sistemi multimediali

Struttura del corso Introduzione a X3D Architettura interna di X3D Presentazione degli oggetti principali che compongono una scena X3D e corrispondente codifica in XML Creazione al computer di scene X3D Utilizzo del software X3D-Edit

Introduzione a X3D X3D: eXtensible 3D Cosè X3D?! Nuova generazione di specifiche grafiche per la descrizione di contenuti tridimensionali interattivi (ISO Open Standard) Successore di VRML97 –Nuove funzionalità –Codifica XML –Architettura a componenti più facilmente estendibile Cosa non è X3D?! Un programma di modellazione / animazione 3D Un linguaggio di programmazione

Aree di applicazione Presentazioni multimediali Pagine web Visualizzazione in ambienti RV immersivi Mondi virtuali multiutente Visualizzazione scientifica Formato di interscambio tra diverse applicazioni 3D Browsers X3D Maya 3D Studio Max

Funzionalità di X3D (1) Grafica 3D Geometria poligonale, geometria parametrica, trasformazioni gerarchiche, illuminazione, materiali e textures Grafica 2D Testo, forme planari inserite allinterno della gerarchica delle trasformazioni 3D Animazione Timers e interpolatori per gestire le animazioni in modo continuo, morphing e animazione di umanoidi (H-Anim) Audio e video Sorgenti audiovisive mappate sugli oggetti geometrici della scena Navigazione Gestione dei punti di vista, movimento dellutente nello spazio 3D, test di collisione, prossimità e visibilità

Funzionalità di X3D (2) Interazione con lutente Sensori per il picking e dragging via mouse, input da tastiera Oggetti definiti dallutente Possibilità di estendere le funzionalità built-in del browser creando nuovi data types Scripting Possibilità di cambiare dinamicamente la scena tramite linguaggi di programmazione e scripting Networking Possibilità di comporre una scena a partire da risorse distribuite sulla rete, hyperlinking di oggetti verso altre scene o risorse sul web Simulazione fisica Animazione di umanoidi (H-Anim), dataset geospaziali, integrazione col protocollo DIS (Distributed Interactive Simulation)

Struttura del corso Introduzione a X3D Architettura interna di X3D Presentazione degli oggetti principali che compongono una scena X3D e corrispondente codifica in XML Creazione al computer di scene X3D Utilizzo del software X3D-Edit

Architettura di X3D X3D/VRML files, streamsEventi esterni (pagine Web) XML VRML classic Binary Parser Scene graph manager X3D Node types Prototype, External Prototype SAI (Scene Authoring Interface) SAI Scene Authoring Interface EAI External Authoring Interface Scripting Engines (Ecmascript, Java...) API Browser Scene graphEvent graph

Eventi esterni (pagine Web) VRML classic Binary Parser Scene graph manager X3D Node types Prototype, External Prototype SAI (Scene Authoring Interface) SAI Scene Authoring Interface EAI External Authoring Interface Scripting Engines (Ecmascript, Java...) API Browser Event graph Architettura di X3D X3D/VRML files, streams XML Scene graph Da cosa è composto lo scene graph?! Quali sono le dichiarazioni X3D e come codificarle in XML?!

Scene graph (1) Lo scene graph: è la struttura fondamentale dellambiente run-time di X3D contiene tutti gli oggetti del sistema e le loro relazioni Primitive geometriche Materiali Sorgenti luminose Punti di vista Sensori Sorgenti audio · · · Transformation hierarchy: Descrive le relazioni spaziali fra gli oggetti da visualizzare Behaviour graph: Descrive le connessioni tra i campi degli oggetti e il flusso degli eventi attraverso il sistema

Scene graph (2) Lo scene graph: è un grafo aciclico orientato (DAG – direct acyclic graph) in cui i nodi possono contenere dei campi costituiti da nodi-figli Node A Node B Node C Node D Node ENode F Nodi radice Nodi figli

Scene graph Transformation hierarchy (1) Allinterno dello scene graph si può individuare una gerarchia delle trasformazioni (transformation hierarchy) che include tutti i nodi radice e i loro discendenti aventi una collocazione nello spazio 3D In base alla transformation hierarchy: i nodi radice sono posizionati rispetto al sistema di coordinate globale (world) della scena i nodi figli sono posizionati rispetto ad un sistema di coordinate locale (local) definito in termini di trasformazioni a partire dal sistema di coordinate del nodo padre

Sistema di coordinate globale Sistemi di coordinate locali (rispetto ai nodi padre) Ogni scena X3D definisce implicitamente un sistema di coordinate globali Scene graph Transformation hierarchy (2) x y z

Ogni scena X3D definisce implicitamente un sistema di coordinate globali Sistemi di coordinate locali (rispetto ai nodi padre) Le trasformazioni geometriche di un nodo coinvolgono tutti i suoi nodi discendenti Sistema di coordinate globale x y z

Sistemi di coordinate locali (rispetto ai nodi padre) Le trasformazioni geometriche di un nodo non coinvolgono il nodo padre Sistema di coordinate globale Ogni scena X3D definisce implicitamente un sistema di coordinate globali x y z Scene graph Transformation hierarchy (2)

Node C Scene graph Behaviour graph (1) Allinterno dello scene graph vi possono essere delle connessioni (routes) fra campi di nodi distinti esse costituiscono il behaviour graph Il behaviour graph : specifica come gli eventi si propagano nel sistema è modificabile dinamicamente reindirizzando (rerouting), aggiungendo o sopprimendo delle connessioni Node D Node ANode B

Scene graph Behaviour graph (2) Esempio di routing degli eventi: al trascorrere del tempo (tra 0 e 5 secondi) il cono si muove dalla posizione A alla posizione B A B Interpolatore fraction value key keyValue · · · Timer startTime endTime fraction · · · ConoTransf translation · · ·

Lambiente run-time Lambiente run-time di X3D: visualizza la scena (rendering) riceve input da diverse sorgenti (sensori) e coordina lelaborazione degli eventi gestisce lo stato corrente dello scene graph gestisce i collegamenti tra il browser X3D e applicazioni esterne per lhyperlinking e laccesso tramite API gestisce il ciclo di vita dei singoli oggetti (sia gli oggetti built-in sia quelli definiti dallutente)

Lobject model Il sistema X3D è costituito da un insieme di entità astratte chiamate oggetti Fields (campi) Derivati dalloggetto X3DField rappresentano dei concetti semplici come ad esempio valori booleani, stringhe di caratteri, array di valori in virgola mobile,... Nodes (nodi) Derivati dalloggetto X3DNode rappresentano dei concetti più complessi e possono contenere uno o più fields per memorizzare dei dati interni o per spedire e ricevere degli eventi Alcuni oggetti (dichiarazioni ROUTE, PROTO, metadata, informazioni su Components e Profiles) non sono né campi né nodi

Lobject model: i campi (1) Fields Un campo può contenere: un singolo valore di un dato tipo (SF...) un array di valori dello stesso tipo (MF...) Tipi definiti in X3D: SFBool, MFBool TRUE / FALSE SFColor, MFColor (R G B) componenti (0,1) SFColorRGBA, MFColorRGBA (R G B A) componenti (0,1) SFDouble, MFDouble floating-point in doppia precisione SFFloat, MFFloat floating-point in singola precisione SFInt32, MFInt32 intero a 32-bit

Lobject model: i campi (2)...tipi definiti in X3D: SFImage, MFImage immagine bidimensionale non compressa larghezza, altezza, n° componenti larghezza x altezza valori (pixels) SFNode, MFNode nodo X3D SFRotation, MFRotation (x y z a): rotazione di a radianti rispetto allasse (x y z) SFString, MFString stringa codificata in UTF-8 SFTime, MFTime valore in doppia precisione: secondi a partire dal 1° gennaio 1970, 00:00:00 SFVec2d, MFVec2d vettore bidimensionale di double SFVec2f, MFVec2f vettore bidimensionale di float SFVec3d, MFVec3d vettore tridimensionale di double SFVec3f, MFVec3f vettore tridimensionale di float

Lobject model: i nodi (1) Nodes I nodi sono istanziati dichiarandoli in un file o usando codice procedurale a run-time Si possono creare nuovi tipi di nodi (meccanismo di prototyping) –Diventano parte dellambiente run-time –Vengono trattati come gli oggetti built-in La maggior parte dei tipi dei nodi implementano delle funzionalità aggiuntive attraverso lereditarietà di interfacce (proprietà e funzionalità comuni)

Lobject model: i nodi (2) Ciascun nodo contiene zero o più campi che definiscono: lo stato persistente del nodo i valori che il nodo può spedire e ricevere sotto forma di eventi Vi sono 4 tipi di accesso ai campi di un nodo: initializeOnly: non riceve e non spedisce eventi inputOnly: è permessa la sola ricezione di eventi outputOnly: è permessa la sola spedizione di eventi inputOutput: sono permesse sia la ricezione sia la spedizione di eventi

Lobject model: i nodi (3) Regole per lassegnazione dei nomi ai campi: Tutti i nomi composti da più parole cominciano con una minuscola, mentre le successive iniziali sono maiuscole –Esempio: nomeCompostoDaVarieParole I campi inputOnly hanno il prefisso set_ –Esempio: set_foo –Eccezioni: addChildren, removeChildren, alcuni campi del tipo SFTime I campi outputOnly hanno il suffisso _changed –Esempio: foo_changed –Eccezioni: i campi di tipo SFBool (ex: isActive), alcuni campi del tipo SFTime I campi inputOutput aggiungono al proprio nome il prefisso set_ o il suffisso _changed a seconda che siano usati nella ricezione o nellinvio di eventi –Esempio: foo, set_foo, foo_changed

Lobject model: i nodi e il flusso degli eventi Gli eventi sono il mezzo primario per generare dei comportamenti nellambiente run-time –Gli eventi in output sono connessi agli eventi in input in modo dichiarativo Per poter stabilire una connessione (ROUTE) fra due campi occorre associare ai nodi un nome –Costrutto DEF / USE Gli eventi sono generati da sensori o script e poi propagati lungo il behaviour graph –Una cascata di eventi è caratterizzata dallo stesso timestamp Nodo campoA campoB campoC campoD · · · initializeOnly inputOnly outputOnly inputOutput