31
I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

Embed Size (px)

Citation preview

Page 1: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

I formati nella Computer Grafica

Daniele Marini, Maurizio Rossi

Marco Ronchetti, Davide Selmo, Davide Gadia

Page 2: 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

Page 3: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 4: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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,…)

Page 5: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 6: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 7: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 8: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 9: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

Linguaggi di programmazione (Open Source) volti alla costruzione di scene 3D

-VRML

-X3D (xml + vrml+ altro.....)

Page 10: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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)

Page 11: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 12: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 13: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 14: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 15: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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)

Page 16: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 17: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 18: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 19: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 20: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 21: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

I “Componenti” di X3D• Sono gruppi di funzionalità correlate

Page 22: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 23: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 24: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 25: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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  

Page 26: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 27: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 28: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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.

Page 29: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

Altri formati

• Formato IGES usato per memorizzazione di superfici parametriche

• Formato DXF usato per la struttura di modelli architettonici (CAD)

Page 30: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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

Page 31: I formati nella Computer Grafica Daniele Marini, Maurizio Rossi Marco Ronchetti, Davide Selmo, Davide Gadia

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