i formati nella computer grafica daniele marini. struttura di ambiente 3d abbiamo una struttura in...

Post on 02-May-2015

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

I formati nella Computer Grafica

Daniele Marini

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)

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

# linea di commento

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 appartenenza 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 altri chunk subordinati.

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 (dagli autori Lempel Ziv Welch) 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

top related