Computer Graphics Lezione 2: hardware ergo triangoli Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 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 Marco Tarini ‧ Computer Graphics ‧ 2006/07 ‧ Università dell’Insubria - 2 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 Marco Tarini ‧ Computer Graphics ‧ 2006/07 ‧ Università dell’Insubria - 3 Riassunto puntata precedente 3/3 • Ci occuperemo principalmente di: Real Time 3D Rendering Scena 3D resto dell' applicazione Marco Tarini ‧ Computer Graphics ‧ rendering Immagine N volte al sec screen buffer ( e.g. N=60 ) ( array 2D di pixel ) 2006/07 ‧ Università dell’Insubria - 4 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 Marco Tarini ‧ Computer Graphics ‧ 2006/07 ‧ Università dell’Insubria - 5 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 (come vedremo...) • sono piu' di 32 bit x pixel • C'è bisogno di muscoli potenza di calcolo Marco Tarini ‧ Computer Graphics ‧ 2006/07 ‧ Università dell’Insubria - 6 Real Time 3D Rendering • Problema difficile – fortunatamente, processo massicciamente parallelizzabile • Ingrediente base della soluzione: hardware specializzato Marco Tarini ‧ Computer Graphics ‧ 2006/07 ‧ Università dell’Insubria - 7 Sistemi Multimediali II • Ci occuperemo principalmente di: Real-Time Hardware-Based 3D Rendering Marco Tarini ‧ Computer Graphics ‧ 2006/07 ‧ Università dell’Insubria - 8 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... Marco Tarini ‧ Computer Graphics ‧ 2006/07 ‧ Università dell’Insubria - 9 Paradigmi di rendering • • • • • • Raytracing Rasterization based Image based (per es. light filed) Radiosity Point-splatting ... Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 10 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 11 Hardware dedicato alla grafica : storia • aumento potenza 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 Marco Tarini ‧ Computer Graphics ‧ Year 94 96 98 00 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 12 Hardware dedicato alla grafica : storia • aumento potenza Virtua Fighter Dead or Alive 3 Dawn (SEGA) (Tecmo Corp., Xbox) (NVIDIA) 50K triangles/sec 100M triangles/sec 200M triangles/sec 1995 2001 2002 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 13 Hardware dedicato alla grafica : storia • aumento capabilities • • • • • • • • • • • • • • • • • • transform and lighting HW supported… polygon fill HW supported… color interpolation (Goroud) HW supported… texture mapping HW supported… per-pixel shading (Phong) HW supported… alpha blending HW supported… fog computation HW supported… Z-buffers HW supported… bump-mapping HW supported… environment mapping (“Cube-maps”) HW supported… stencil buffers (per pixel masks) HW supported… color transform matrices HW supported… paletted textures HW supported… multiple texture accesses HW supported… texture filtering (MIP-maps) HW supported… Level-of-Detail computation HW supported… dependent texturing HW supported… … • Programmable HW Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 14 Hardware dedicato alla grafica : storia • Progresso congiunto HW e Algoritmi tecnologia ruota Marco Tarini ‧ Computer Graphics ‧ tecnologia strada sviluppi hardware tecniche algoritmiche – Un po come ruota e strada 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 15 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 16 Paradigmi di rendering Rendering Paradigm: (Triangle-) Rasterization Based • • • • • • Raytracing detto anche: Transform and Lighting Rasterization based ( Tlight & Lfiled) ) Image based (per es. Radiosity I. Che si usino solo Point-splatting le seguenti primitive di rendering : triangoli, segmenti, punti ... Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 17 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 Marco Tarini ‧ Computer Graphics ‧ v1 =( x1, y1, z1 ) z 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 18 Rasterization-based HW-supported rendering • tutto sia composto da triangoli (3D) – o al limite da punti, o segmenti • non tutto nasce composto di triangoli... Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 19 Tutto sia composto da triangoli (3D) due triangoli! un quadrilatero? "quad" "diagonal split" Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 20 Tutto sia composto da triangoli (3D) un poligono a n lati? (n-2) triangoli! triangolarizzazione di poligono: (in 3D, non un problema del tutto banale...) Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 21 Tutto sia composto da triangoli (3D) la superficie di un solido geometrico, per es. una sfera? Marco Tarini ‧ Computer Graphics ‧ triangoli! 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 22 Tutto sia composto da triangoli (3D) la superficie di un solido geometrico, per es. una cono? Marco Tarini ‧ Computer Graphics ‧ triangoli! 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 23 Tutto sia composto da triangoli (3D) un campo d'altezza? (array 2D di altezze, e.g. per modellare un terreno?) Marco Tarini ‧ Computer Graphics ‧ triangoli! 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 24 Esempio di campo di altezza triangolato • "height field" • un esempio tipico: – campo d'altezza per modellare un terreno... Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 25 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 M a r c o più T aavanti r i n i nel ‧ Ccorso, o m p use t ec'è r Gtempo r a p h i c s ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 26 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 27 da nuvola di punti a triangoli: esempio Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 28 Tutto sia composto da triangoli (3D) triangoli che definiscono una iso-superficie volume? triangoli! algoritmi di segmentation (e.g. "marching cubes" * ) * verdemo M a r c o più T aavanti r i n i nel ‧ Ccorso, o m p use t ec'è r Gtempo r a p h i c s ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 29 Da dataset volumetrico a triangoli: esempio Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 30 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 31 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 32 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 33 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 34 Modellare direttamente con triangoli • rappresentare gli oggetti con triangoli – o al limite da punti, o linee un coniglio di porcellana? una teiera? triangoli, triangoli, triangoli Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 35 Modellare direttamente con triangoli • rappresentare gli oggetti con triangoli – o anche quads – o al limite da punti, o linee Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 36 Modellare direttamente con triangoli Marco Tarini ‧ Computer Graphics ‧ Phillip 1994 2 0 0 6 / 0 7 ‧ U n i v e r s i t àby d e l l ’ Heckinger I n s u b r i(3D a - modeller) 37 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) Marco Tarini ‧ Computer Graphics ‧ by M. Turitzin and J. Jacobs Stanford Uni (real time!) 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 38 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 39 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 Marco Tarini ‧ Computer Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 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 Marco Tarini ‧ Computer Graphics ‧ nVIDIA tech demo at SIGGRAPH 2001 nVIDIA quadro 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 41 nVIDIA technology demo at SIGGRAPH 2004 =REAL M aTIME!= rco Tarini ‧ Comput er Graphics ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 42