Date post: | 02-May-2015 |
Category: |
Documents |
Upload: | drina-pellegrini |
View: | 221 times |
Download: | 3 times |
I formati nella Computer Grafica
Daniele Marini, Maurizio Rossi
Marco Ronchetti, Davide Selmo, Davide Gadia
Struttura di ambiente 3D
Abbiamo una struttura in cui gli oggetti possono essere classificati in:
- Ambiente della scena
- Oggetti nella scena
- Luci
- Camere
Problema della descrizione
• Come visualizziamo e memorizziamo gli oggetti presenti in una scena?
• Dobbiamo analizzare la struttura delle varie componenti presenti nella scena 3D, e capire quale migliore rappresentazione si adatta alla loro descrizione.
Approcci differenti
• Scrittura a mano della struttura in un formato di file
• Uso di programmi modellatori 3D (Maya, 3DStudio, ecc..)
• Uso di Linguaggi dedicati (VRML, X3D,…)
Cosa devo salvare o memorizzare?
• Cosa e come devo salvare?
• Quale tipo di informazioni mi servono per ricostruire una scena 3D?
• E per archiviare una immagine?
• Sintassi e Semantica per:
-descrizione delle scene 3D
-memorizzazione delle immagini di rendering
Problema della compatibilità
•Diversi programmi•Diversi parser di lettura •Diversi approci alla memorizzione -Faccio un formato unico, standard?Ogni modifica deve essere concordata
-Oppure lascio la libertà a formati proprietariFacili cambiamenti, problemi di compatibilità.
La filosofia Opensource
• Formato leggibile e comune a tutti e quindi Standard
• In questo genere di file la caratteristica principale è l’interscambiabilità delle informazioni, infatti avendo un codice aperto, tipicamente sono stringhe di caratteri ASCII facilmente interpretabili, è possibile scrivere e leggere sullo stesso file.
Come devo costruire un ambiente 3D?
• Uso di Linguaggi di Programmazione.•Mettono a disposizione un linguaggio semplice e potente in modo da poter ricostruire situazione complesse in scenari 3D.
• Uso di programmi modellatori 3D.
Linguaggi di programmazione (Open Source) volti alla costruzione di scene 3D
-VRML
-X3D (xml + vrml+ altro.....)
Memorizzazione delle informazioni
Differenti formati commerciali:
3ds (3d studio format)
Obj (AliasWavefront)
3DS (3D StudioMax format)
Iges (Initial Graphics Exchange Specification )
DXF (Drawing Interchange file format)
Formati di interscambio
• Seguono generalmente la filosofia OpenSource
• Usati per far comunicare differenti programmi di modellazione. Utilissimi nel caso di grosse produzioni e cooperazione in un team di persone.
• Formati usati: Obj 3ds Rib DXF
VRML 1.0
L’idea primordiale del VRML arriva da Tim Berners-Lee e Dave Raggett per discutere l’interfaccia di realtà virtuale per il WWW, durante la prima conferenza annuale sul World Wide Web tenutasi a Ginevra nella primavera del 1994.
VRML97 - Feature• Noto anche come VRML 2
• È uno standard riconosciuto: ISO/IEC 14772-1:1997
• È un Linguaggio che consente la simulazione di mondi virtuali tridimensionali.
• Descrizione:
-Ambienti virtuali contenenti oggetti, sorgenti luminose, immagini, suoni, filmati.
-Animazioni e interattività
-Impiego di link 3D a URL remoti e naturalmente a qualunque altro file di tipo .wrl (formato files VRML ).
VRML97 - Il formato• File di testo che utilizza caratteri ASCII (come l’HTML ad esempio)
Estensione file: *.wrl. Eventualmente compresso con Gzip *.wrz.
• Pro: VRML comparabile a quello che fanno i numerosi programmi di modellazione tridimensionale. Linguaggio di scripting.
• Contro: gli esiti raggiungibili da un programma di rendering sono in confronto decisamente superiori sia a livello di qualità sia di velocità.
• Il file contiene::- Nodes: il mondo è fatto di nodi che sono tipi di oggetti- Fields: descrivono le proprietà dei nodi
Esempio VRML97
#VRML V2.0 utf8
WorldInfo { title "Example 1"}
DEF FBOX Shape { appearance Appearance { material Material { diffuseColor 0 0.5 0 } } geometry Box { }}
NodeField
(uses default values)
VRML97 - Strumenti per la creazione del file
-Tools di authoring 3D (export in vrml)
Maya, Blender, Caligari TrueSpace ecc…
-Tools di authoring VRML97 visuali
Cosmo World 2.0, 3D Studio Max, Internet Space Builder, Internet Character Animator
-Editors VRML97 testuali
SitePad, VRMLPad, Vorlon, X3D-Edit
VRML - Come lo si usa
Il file VRML, viene interpretato e mostrato sul display da player freeware disponibili su web come.
Plug-in per Internet Explorer o Netscape:•Cosmo Player 2.0 (http://www.cosmosoftware.com/ )
•Cortona 4.2 (http://www.parallelgraphics.com/products/cortona/)
Player autonomi:
•FreeWRL
•GLView
•Blaxxun Contact – 3D (http://www.blaxxun.com)Blaxxun Contact – 3D (http://www.blaxxun.com)
Quesi tool leggono il codice contenuto nel file .wrl e lo traducono in ambienti 3D visualizzabili in real-time
VRML - Specifiche e link
VRML Consortium/Web3DVRML Consortium/Web3Dhttp://www.vrml.org/http://www.vrml.org/
VRML repository:VRML repository:http://vrml.sdsc.edu/http://vrml.sdsc.edu/
VRML97 SpecificationVRML97 Specificationhttp://www.web3d.org/Specifications/VRML97/http://www.web3d.org/Specifications/VRML97/ /
X3D (eXtensible 3D)• Sviluppato dal Web3D consortium:
www.web3D.org• Si basa su XML (eXtensible Markup
Language)• Standard: ISO/IEC 19775:2004
• Nasce per migliorare la specifica VRML97• Limiti principali di VRML97:
– Peso del Plug-in nel browser– Non sfrutta le estensioni 3D delle nuove GPU– Non consente estensioni al suo standard
Architettura di X3D• Si basa su:
1. Componenti2. Profili3. Livelli di servizio
• Lo sviluppo di X3D è stato fatto in collaborazione con ISO, W3C e MPEG-4
• Rispetto a VRML:– Aggiunge nuove caratteristiche– Aggiunge nuovi metodi di codifica dei dati– Presenta migliori API– Presenta una architettura modulare– È facilmente estendibile– Si conforma ad XML
I “Componenti” di X3D• Sono gruppi di funzionalità correlate
I “Profili” di X3D (1)• Definiscono raggruppamenti di Componenti:
• VRML97 Base.– Questo è il profilo che consente la compatibilità all'indietro verso lo standard
VRML 2.0, implementandone tutte le funzionalità immersive per la navigazione e interazione in mondi virtuali nell'architettura X3D.
• Full.– Questo è il profilo che include tutti i componenti dello standard X3D nella
versione attuale. Come tale è anche quello che fornisce il maggiore numero di funzionalità ma richiede lo sviluppo di applicazioni più pesanti.
• Interchange – Questo profilo è indirizzato allo scambio di dati di geometrie e animazioni tra
differenti sistemi autore. Si presta bene per una implementazione run-time leggera, che non richiede interazione, e può essere realizzata tramite applet Java o piccoli plug-in per browser. Presenta comunque delle possibilità di rendering più limitate rispetto alla specifica completa di X3D di cui non utilizza tutte le possibilità in termini di modelli di illuminazione.
I “Profili” di X3D (2)• Definiscono raggruppamenti di Componenti:
• Interactive– Questo profilo è finalizzato allo sviluppo di player leggeri in grado di gestire
e mostrare animazioni, grafica e interazione. In definitiva presenta le funzionalità del profilo Interchange a cui aggiunge le possibilità di picking, altre geometrie e modelli di illuminazione. È un punto di congiunzione con lo standard MPEG-4 cui si allinea.
• Extensibility.– Questo profilo definisce l'insieme di caratteristiche che gli sviluppatori
possono utilizzare per creare nuovi nodi e componenti per costruire nuove applicazioni. Presenta un insieme di caratteristiche base che possono essere composte per gestire la grafica, i comportamenti e l'interazione. Definisce anche le possibilità di scripting e le API che consentono agli sviluppatori di creare nuovi nodi e componenti che utilizzano le caratteristiche base. Ciò significa che tramite queste caratteristiche e API uno sviluppatore può ricreare qualsiasi nodo X3D standard non presente in questo profilo.
I “Livelli di Servizio”X3D• Tutte le specifiche (componenti) di X3D
possono essere implementate in modo variabile per fornire vari livelli di servizio.
• Questi consentono di definire gradi variabili di supporto delle specifiche, da parte delle applicazioni e dell’HW.
• Il livello di conformità è strettamente definito per ogni livello di servizio, e i profili specificano il grado di supporto dei livelli di componenti.
Il formato Obj•Creato da AliasWavefront SGI
•Le info sono organizzate in un file ASCII
•Posso definire all’interno:
-colore
-geometria 3D
-non posso comprimere
-contiene la definizione di uno o più oggetti
OBJ - La sua struttura
Ecco la descrizione di un file obj
Mtllib Definisco il meteriale (*.mtl) (optional)
# a comment line
V x y z Elenco dei vertici
vt u v [w] Elenco delle coordinate u,v (texture)
vn x y z Vettore normale
G Gruppo di appartennenza dell’oggetto (optional)
F n0 n1 n2 n3 Elenco faccie
Usemtl Colorazione (se esiste il materiale)
V -> verticiF -> faccieG-> gruppi
OBJ - Esempi di file
mtllib colors.mtl
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
g cube
usemtl Color1
f 1 2 4 3
f 3 4 6 5
f 5 6 8 7
usemtl Color2
f 7 8 2 1
f 2 8 6 4
f 7 1 3 5
Formato 3DS
• Costituito da una serie di chunks. Ognuno ha una struttura simile:
• short chunk_id;
• long chunk_len;
• Id indica un codice unico il quale identifica il tipo di dato in questo chunk e può indicare inoltre l’esistenza di chunk subordinati.
• len indica la lunghezza dei dati associato allo chunk.
• I chunk subordinati possono anche essi stessi avere subordiati chunks.
Altri formati
• Formato IGES usato per memorizzazione di superfici parametriche
• Formato DXF usato per la struttura di modelli architettonici (CAD)
RIB files
• Ideato dalla Pixar come supporto della RenderMan interface
• Modello per strutturare una scena 3D
• È quello usato per spiegare RenderMan
• Argomento di discussione durante la trattazione delle RenderMan interface
Formati di immagine Bitmap • Tipi di file immagine .bmp .tif .gif .jpg ………
• Il formato .bmp non è compresso,
• La compressione di immagine LZW usata in .tif e .gif è simmetrica e non degrada le immagini, ma comprime meno i file,
• Il formato .jpg (JPEG) comprime molto ma ha una compressione non simmetrica di tipo lossy, con degrado dell’immagine compressa,
• La grafica raster: fotografie e illustrazioni pittoriche.
• Vantaggi: si lavora sui pixel, effetti molto realistici, simili a quelli della pittura e grafica tradizionale (pennello, aerografo, matita, carboncino).
• SW di fotoritocco funzionano con immagini a punti. Operazioni sui punti.
• Contro: ingrandimento (su monitor o in stampa) solo ingrandendo la dimensione del pixel, che può diventare visibile, fino a creare effetti sgradevoli (pixelizzazione).
• Per elaborare (spostare, modificare, cancellare) una parte dell’immagine occorre letteralmente selezionare alcuni pixel e spostarli