400 likes | 558 Views
Lezione 2: hardware ergo triangoli. Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06. Computer Graphics. Marco Tarini. Riassunto puntata precedente 1/3. Computer Graphics ( CG ): molteplici applicazioni medicali
E N D
Lezione 2: hardware ergo triangoli Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Computer Graphics 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 applicazione interattiva acquisizione 3D / simulazione/ modellazione (e.g. 3Dstudio max, Maya) mondo reale/ modello matematico / artista 3D ... rendering Geometria Immagine/i preprocessing(modelling) M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 resto dell' applicazione • Ci occuperemo principalmente di: Real Time 3D Rendering rendering Scena 3D Immagine screen buffer ( array 2D di pixel ) N volte al sec ( e.g. N=60) M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 • C'è bisogno di muscoli potenza di calcolo • 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(come vedremo...) • sono piu' di 32 bit x pixel ~ M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 9 10 One-pixel polygons (~10M polygons @ 30Hz) GeForce 3 & Radeon 8 10 UNC/HP PixelFlow SGI R-Monster SGI Peak 7 IR 10 Nvidia TNT E&S Perf. Division Pxpl6 3DLabs SGI Cobalt Harmony UNC Pxpl5 Glint ('s/sec) Accel/VSIS SGI SkyWriter Voodoo 6 10 Megatek SGI VGX SGI E&S Freedom RE1 PC Graphics HP TVRX SGI RE2 HP VRX Flat shading Division VPX E&S 5 10 Textures Stellar GS1000 F300 UNC Pxpl4 SGI GT Antialiasing Gouraud shading HP CRX SGI Iris 4 10 86 88 90 92 94 96 98 00 Year M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 • Un po come ruota e strada sviluppi hardware tecniche algoritmiche tecnologia strada tecnologia ruota M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 primitivedirendering • anche riferito comeTransform and Lighting (T&L) paradigm screen buffer rendering Scena 3D • composta da primitive di pochissimi tipi: • punti • linee • MA SOPRATUTTO • triangoli M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ) v1 =( x1, y1, z1 ) v2 =( x2, y2, z2 ) z y M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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! "quad" "diagonal split" un quadrilatero? M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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) (n-2) triangoli! triangolarizzazione di poligono: (non un problema del tutto banale...) un poligono a n lati? M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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) triangoli! la superficie di un solido geometrico, per es. una sfera? M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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) questo è facile. Il contrario, che qualche volta è utile, MOLTO meno una superficie curva parametrica? per es. NURBS *, b-splines *... triangoli! * verdemo più avanti nel corso, se c'è tempo M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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) problema molto studiato, e (nel caso generale) difficile x x z z y y nuvola di punti ? (point clouds) triangoli! M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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) algoritmi di segmentation (e.g. "marching cubes" * ) triangoli che definiscono una iso-superficie volume? triangoli! * verdemo più avanti nel corso, se c'è tempo M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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) 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 superfici implicite? triangoli! M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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... applicazione interattiva acquisizione 3D / simulazione/ modellazione (e.g. 3Dstudio max, Maya) mondo reale/ modello matematico / artista 3D ... rendering Geometria Immagine/i preprocessing(modelling) M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 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 rendering Geometria Immagine/i preprocessing(modelling) M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 30/40
Riassuntino "al volo" Quads r e n d e r i n g Campi d'altezza Forme geo. di base Triangoli Superfici parametriche n-agoni Dati Volumetrici Superfici implicite Nuvole di punti M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 triangoli, triangoli, triangoli • rappresentare gli oggetti con triangoli • o al limite da punti, o linee un coniglio di porcellana? una teiera? M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 by Phillip Heckinger (3D modeller) 1994 M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 34/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 ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 Tutto l'hardware è progettato e ottimizzato principalmente per questo caso • Triangoli • ok, abbiamo capito • Quads • in un certo senso, perchèdiventano triangoli al volo • Segmenti • Punti M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 utili ad esempio per particle systems M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 utile ad esempio per fare renderingdi capelli peli etc (ma non è l'unico sistemae non è detto che sia il migliore) nVIDIA tech demo at SIGGRAPH 2001 nVIDIA quadro M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ 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 TIME!= M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 39/40