Sistemi Multimediali II
Lezione 2: hardware ergo triangoli
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2004/05
Marco Tarini
Riassunto puntata precedente 1/3
• Computer Graphics ( CG ):
– molteplici applicazioni
–
–
–
–
–
–
–
–
–
–
medicali
industriali
beni culturali
militari 
telecomunicazioni
commerciali
ricerca scientifica (scivis)
intrattenimento: games
intrattenimento: movies
e altro (realta' virtuale....)
– campo in forte progresso
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 2/40
Riassunto puntata precedente 2/3
acquisizione 3D
/ simulazione
/ modellazione
mondo reale
/ modello matematico
/ artista 3D ...
(e.g. 3Dstudio max, Maya)
Geometria
preprocessing
(modelling)
rendering
Immagine/i
applicazione interattiva
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 3/40
Riassunto puntata precedente 3/3
• Ci occuperemo principalmente di:
Real Time 3D Rendering
Scena 3D
resto dell'
applicazione
rendering
Immagine
N volte al sec
screen buffer
( e.g. N=60 )
( array 2D di pixel )
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 4/40
Real Time 3D Rendering
Problema challanging!
per esempio:
• pixel = 32 bit = 4 bytes ("pixel depth")
• screen buffer = 1024 x 768 pixels ("screen resolution")
• frame rate = 60 Hrz ("fps")
• total = 4 x 1024 x 768 x 60 byte al sec ("fill-rate", in bytes)
188 MegaBytes / sec
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 5/40
Real Time 3D Rendering
• Fill-rates molto elevati
– Anticipazione:
...e il fill-rate non è sempre il collo di bottiglia
– Anticipazione 2:
...e quella e' una sottostima del fill-rate.
• manca il fattore depth-complexity ~
~ x2.5
• sono piu' di 32 bit x pixel
• C'è bisogno di muscoli potenza di calcolo
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 6/40
Real Time 3D Rendering
• Problema difficile
– fortunatamente,
processo massicciamente parallelizzabile
• Ingrediente base della soluzione:
hardware specializzato
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 7/40
Sistemi Multimediali II
• Ci occuperemo principalmente di:
Real-Time
Hardware-Based
3D Rendering
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 8/40
Hardware specializzato per il rendering
• Vantaggio: efficienza
• computazioni più ripetute hard-wired nel chipset
• parallelismo rendering/resto-dell-applicazione:
– rendering nella scheda grafica
– resto dell'applicazione libera di utilizzare la CPU e RAM base
MA SOPRATTUTTO:
• sfruttamento del parallelismo implicito nel problema di
rendering
– sotto forma di parallelismo di pipeline
– sotto forma di parallelismo in ogni fase del pipeline
• Svantaggio: rigidità
• vincola l'approccio usato per fare rendering...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 9/40
Paradigmi di rendering
•
•
•
•
•
•
Raytracing
Rasterization based
Image based (per es. light filed)
Radiosity
Point-splatting
...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 10/40
Hardware dedicato alla grafica
• storia
– ~20 anni:
• dalla metà degli '80 (e.g.: SGI Iris - 1986)
– dalla metà dei '90, il fiaccola passa dai mainframes ai PC
– progressi enormi
• nella efficienza
– piu' che "Moore’s Law": ~2.4x / year invece di ~1.6 / year
• nella funzionalità
– i dettagli storici saltiamoli per ora
» a mano a mano che vedremo le tecniche diremo quando
sono state introdotte
– filosofia di fondo rimasta la stessa
• paradigma di rendering:
basato principalmente su rasterizzazione di triangoli
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 11/40
Hardware dedicato alla grafica
• storia
109
One-pixel polygons (~10M polygons @ 30Hz)
GeForce 3
& Radeon
108
UNC/HP PixelFlow
Peak
Perf.
SGI
R-Monster
SGI
IR
107
Division
Pxpl6
UNC Pxpl5
('s/sec)
SGI SkyWriter
106
SGI VGX
Flat
shading
105
UNC Pxpl4
HP VRX
SGI GT
SGI Iris
86
88
Gouraud
shading
90
Megatek
E&S Freedom
SGI
RE2
E&S
F300
Stellar GS1000
HP CRX
104
HP TVRX
SGI
RE1
Nvidia TNT
E&S
3DLabs
SGI
Harmony
Cobalt
Glint
Accel/VSIS
Voodoo
PC Graphics
Division VPX
Textures
Antialiasing
92
Year
94
96
98
00
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 12/40
Progresso congiunto HW e Algoritmi
tecnologia
ruota
tecnologia
strada
sviluppi hardware
tecniche algoritmiche
• Un po come ruota e strada
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 13/40
Rasterization-based HW-supported rendering
• anche riferito come
Transform and Lighting (T&L) paradigm
Scena 3D
rendering
screen
buffer
composta da primitive di
pochissimi tipi:
• punti
primitive
• linee
MA SOPRATUTTO
• triangoli
di
rendering
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 14/40
Rasterization-based HW-supported rendering
• punto primo: tutto sia composto da triangoli (3D)
– o al limite da punti, o segmenti
x
v0 =( x0, y0, z0 )
v2 =( x2, y2, z2 )
y
v1 =( x1, y1, z1 )
z
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 15/40
Rasterization-based HW-supported rendering
• tutto sia composto da triangoli (3D)
– o al limite da punti, o segmenti
• non tutto nasce composto di triangoli...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 16/40
Tutto sia composto da triangoli (3D)
due triangoli!
un quadrilatero?
"quad"
"diagonal split"
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 17/40
Tutto sia composto da triangoli (3D)
un poligono a n lati?
(n-2) triangoli!
triangolarizzazione di poligono:
(non un problema banale...)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 18/40
Tutto sia composto da triangoli (3D)
la superficie di
un solido geometrico,
per es. una sfera?
triangoli!
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 19/40
Tutto sia composto da triangoli (3D)
la superficie di
un solido geometrico,
per es. una cono?
triangoli!
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 20/40
Tutto sia composto da triangoli (3D)
un campo d'altezza?
(array 2D di altezze,
e.g. per modellare un terreno?)
triangoli!
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 21/40
Esempio di campo di altezza triangolato
• "height field"
• un esempio tipico:
– campo d'altezza per modellare un terreno...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 22/40
Tutto sia composto da triangoli (3D)
una superficie curva
parametrica?
triangoli!
per es. NURBS *, b-splines *...
questo è facile. Il contrario, che qualche
volta è utile, MOLTO meno
* verdemo
avanti
M
a r c o T apiù
rin
i ‧ S inel
s t ecorso,
m i Mse
u lc'è
t i mtempo
e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 23/40
Tutto sia composto da triangoli (3D)
x
x
y
z
z
y
nuvola di punti ?
(point clouds)
triangoli!
problema molto studiato,
e (nel caso generale) difficile
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 24/40
da nuvola di punti a triangoli: esempio
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 25/40
Tutto sia composto da triangoli (3D)
triangoli
che definiscono
una
iso-superficie
volume?
triangoli!
algoritmi di segmentation
(e.g. "marching cubes" * )
* verdemo
avanti
M
a r c o T apiù
rin
i ‧ S inel
s t ecorso,
m i Mse
u lc'è
t i mtempo
e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 26/40
Da dataset volumetrico a triangoli: esempio
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 27/40
Tutto sia composto da triangoli (3D)
triangoli
che definiscono
la superficie
esplicitamente
superfici implicite?
triangoli!
nb: non c'e' un modo solo per farlo.
Modo + semplice (non ottimo): campionare volume e
estrarre isosuperfice a valore 0
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 28/40
Tornando allo schema generale...
acquisizione 3D
/ simulazione
/ modellazione
mondo reale
/ modello matematico
/ artista 3D ...
(e.g. 3Dstudio max, Maya)
Geometria
preprocessing
(modelling)
rendering
Immagine/i
applicazione interattiva
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 29/40
Tipica fase di preporsessing
Geometria
preprocessing
(modelling)
diagonal split
(da quad a 2 tri)
può venire fatto
anche qui, al volo
rendering
Immagine/i
Tutto il resto che abbiamo visto
nei lucidi precedenti
(trasformazione
in triangoli) tipicamente qui
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 30/40
Riassuntino
Forme geo.
di base
Superfici
parametriche
n-agoni
Dati Volumetrici
Superfici implicite
"al volo"
Triangoli
Quads
Campi d'altezza
r
e
n
d
e
r
i
n
g
Nuvole di punti
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 31/40
Modellare direttamente con triangoli
• rappresentare gli oggetti con triangoli
– o al limite da punti, o linee
una teiera?
un coniglio
di porcellana?
triangoli, triangoli, triangoli
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 32/40
Modellare direttamente con triangoli
• rappresentare gli oggetti con triangoli
– o anche quads
– o al limite da punti, o linee
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 33/40
Modellare direttamente con triangoli
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t by
à Phillip
d e l l ’Heckinger
I n s u b r (3D
i a -modeller)
34/40 1994
Un limite di questo approccio
• Non sempre e' semplice modellare le entità da
rappresentare con triangoli...
– esempi:
• nuvole
• fuoco
• pelliccia
by Niniane Wang
(non real time)
by N. Adabala uni florida
(non real time)
by M. Turitzin and J. Jacobs
Stanford Uni (real time!)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 35/40
Per dirla tutta sulle primitive di rendering
• Triangoli
– ok, abbiamo capito
Tutto l'hardware è progettato
e ottimizzato
principalmente per
questo caso
• Quads
– in un certo senso, perchè
diventano triangoli al volo
• Segmenti
• Punti
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 36/40
Per dirla tutta sulle primitive di rendering
• Triangoli
– ok, abbiamo capito
• Quads
utili ad esempio
per particle systems
– in un certo senso, perchè
diventano triangoli al volo
• Segmenti
• Punti
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 37/40
Per dirla tutta sulle primitive di rendering
• Triangoli
– ok, abbiamo capito
• Quads
– in un certo senso, perchè
diventano triangoli al volo
utile ad esempio per fare
rendering
di capelli peli etc
(ma non è l'unico sistema
e non è detto che sia il migliore)
• Segmenti
• Punti
nVIDIA tech demo at SIGGRAPH 2001
nVIDIA quadro
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 38/40
nVIDIA technology demo at SIGGRAPH 2004
=REAL
M
a r c TIME!=
o Tarini ‧ Sistemi M
u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 39/40
Scarica

ppt