1 / 39

Computer Graphics

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

eaton-watts
Télécharger la présentation

Computer Graphics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

More Related