Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 2: hardware ergo 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 ‧ / 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 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 ‧ / 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 2/3 applicazione interattiva mondo reale / modello matematico / artista 3D... Geometria Immagine/i rendering preprocessing (modelling) acquisizione 3D / simulazione / modellazione (e.g. 3Dstudio max, Maya)
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 ‧ / 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 Riassunto puntata precedente 3/3 Ci occuperemo principalmente di: Real Time 3D Rendering Scena 3D rendering Immagine screen buffer ( array 2D di pixel ) N volte al sec ( e.g. N=60 ) resto dell' applicazione
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 ‧ / 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 Problema challanging! per esempio: pixel = 32 bit = 4 bytes ("pixel depth") screen buffer = 1024 x 768 pixels ("screen resolution") frame rate = 60 Hrz ("fps") 188 MegaBytes / sec total = 4 x 1024 x 768 x 60 byte al sec ("fill-rate", in bytes )
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 ‧ / 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 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 ‧ / 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 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 ‧ / 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 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 ‧ / 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 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 ‧ / 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 Raytracing Rasterization based Image based (per es. light filed) Radiosity Point-splatting... Paradigmi 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 ‧ / 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 –~20 anni: dalla metà degli '80 (e.g.: SGI Iris ) –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 ‧ / 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 Hardware dedicato alla grafica storia Peak Perf. ( 's/sec) Year HP CRX SGI Iris SGI GT HP VRX Stellar GS1000 SGI VGX HP TVRX SGI SkyWriter SGI E&S F300 One-pixel polygons (~10M 30Hz) SGI RE2 RE1 Megatek UNC Pxpl4 UNC Pxpl5 UNC/HP PixelFlow Flat shading Gouraud shading Antialiasing SGI IR E&S Harmony SGI R-Monster Division VPX E&S Freedom Accel/VSIS Voodoo Glint Division Pxpl6 PC Graphics Textures SGI Cobalt Nvidia TNT GeForce 3 & Radeon 3DLabs
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 ‧ / 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 Progresso congiunto HW e Algoritmi Un po come ruota e strada tecnologia ruota tecnologia strada tecniche algoritmiche sviluppi hardware
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 ‧ / 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 anche riferito come Transform and Lighting (T&L) paradigm Scena 3D rendering screen buffer composta da primitive dipochissimi tipi: punti linee MA SOPRATUTTO triangoli primitive 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 ‧ / 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 x y z Rasterization-based HW-supported rendering punto primo: tutto sia composto da triangoli (3D) –o al limite da punti, o segmenti v 0 =( x 0, y 0, z 0 ) v 1 =( x 1, y 1, z 1 ) v 2 =( x 2, y 2, z 2 )
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 ‧ / 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 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 ‧ / 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 quadrilatero? "quad""diagonal split" due 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 ‧ / 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) un poligono a n lati? triangolarizzazione di poligono: (non un problema banale...) (n-2) 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 ‧ / 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 triangoli! Tutto sia composto da triangoli (3D) la superficie di un solido geometrico, per es. una sfera?
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 ‧ / 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) 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 ‧ / 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 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 ‧ / 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 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 ‧ / 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) una superficie curva parametrica? per es. NURBS *, b-splines *... triangoli! questo è facile. Il contrario, che qualche volta è utile, MOLTO meno * verdemo più avanti nel corso, se c'è tempo
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 ‧ / 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 Tutto sia composto da triangoli (3D) nuvola di punti ? (point clouds) triangoli! problema molto studiato, e (nel caso generale) difficile x y z x y 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 ‧ / 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 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 ‧ / 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 Tutto sia composto da triangoli (3D) volume? triangoli! algoritmi di segmentation (e.g. "marching cubes" * ) * verdemo più avanti nel corso, se c'è tempo triangoli che definiscono una iso-superficie
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 ‧ / 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 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 ‧ / 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 Tutto sia composto da triangoli (3D) superfici implicite? triangoli! nb: non c'e' un modo solo per farlo. Modo + semplice (non ottimo): campionare volume e estrarre isosuperfice a valore 0 triangoli che definiscono la superficie esplicitamente
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 ‧ / 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 Tornando allo schema generale... applicazione interattiva mondo reale / modello matematico / artista 3D... Geometria Immagine/i rendering preprocessing (modelling) acquisizione 3D / simulazione / modellazione (e.g. 3Dstudio max, Maya)
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 ‧ / 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 Tipica fase di preporsessing Geometria Immagine/i rendering preprocessing (modelling) diagonal split (da quad a 2 tri) può venire fatto anche qui, al volo diagonal split (da quad a 2 tri) può venire fatto anche qui, al volo 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 ‧ / 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 renderingrendering Triangoli Riassuntino Quads Campi d'altezza Forme geo. di base Superfici parametriche "al volo" n-agoni Dati Volumetrici Superfici implicite 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 ‧ / 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 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 ‧ / 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 rappresentare gli oggetti con triangoli –o anche quads –o al limite da punti, o linee 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 ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 34/40 by Phillip Heckinger (3D modeller) 1994 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 ‧ / 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 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 ‧ / 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 –in un certo senso, perchè diventano triangoli al volo Segmenti Punti Tutto l'hardware è progettato e ottimizzato principalmente per questo caso
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 ‧ / 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 Segmenti Punti utili ad esempio per particle systems
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 ‧ / 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 Per dirla tutta sulle primitive di rendering Triangoli –ok, abbiamo capito Quads –in un certo senso, perchè diventano triangoli al volo Segmenti Punti nVIDIA tech demo at SIGGRAPH 2001 nVIDIA quadro utile ad esempio per fare rendering di capelli peli etc (ma non è l'unico sistema e non è detto che sia il migliore)
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 ‧ / 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 nVIDIA technology demo at SIGGRAPH 2004 =REAL TIME!=