Fondamenti di Grafica Tridimensionale



Documenti analoghi
Fondamenti di Grafica Tridimensionale

Fondamenti di Grafica Tridimensionale

Grafica Computazionale

Grafica 3D per i beni culturali: 3D and rendering. Lezione 2: 23 Febbraio 2011

Grafica 3D per i beni culturali: 3D and rendering

Grafica 3D per i beni culturali: 3D and rendering. Lezione 2: 20 Febbraio 2014

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Grafica 3D per i beni culturali: 3D e rendering. Lezione 2: 25 Febbraio 2016

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Introduzione alla Computer Graphics

Corso di Grafica Computazionale

Computer Graphics. 188 MegaBytes / sec. Riassunto puntata precedente 1/3. Computer Graphics ( CG ): Lezione 2: hardware ergo triangoli

IR(3): Illuminazione Globale

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale

UNIVERSITÀ DEGLI STUDI DI SIENA

Grafica 3D Interattiva

Rendering. Visione Artificiale - 11 dicembre Agenda (1 di 2) - Rendering Real-Time e non Real Time. - Ambienti di moodellazione non Real Time

Pipeline di rendering. Pipeline di rendering. Outline. Grafica off-line vs Grafica real-time

Capitolo V : Il colore nelle immagini digitali

Grafica Real-Time, Hardware Grafico e Linguaggi di Shading. Alessandro Martinelli

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile

Grafica al calcolatore - Computer Graphics

ScuolaSI computer grafica 3d

WebGL. Lezione 18: 15 Maggio 2014

Grafica al calcolatore - Computer Graphics

Modelli per i materiali

SISTEMI di PERSONAL COMPUTER

Automazione Industriale (scheduling+mms) scheduling+mms.

Lunghezza ocale. Donato Di Bello

Pipeline di rendering

Applicazioni 3D avanzate

1.1 Modello di un Processo di Rendering. Gestore delle Geometrie (Ricostruzione delle Geoemtrie e Clipping)

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer

Information Visualization

Open Source 3D Engine. OpenGL Rendering System. Il Framework

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Processo di rendering

Linguaggi di programmazione

Similitudine e omotetia nella didattica della geometria nella scuola secondaria di primo grado di Luciano Porta

IMMAGINE BITMAP E VETTORIALI

3D e Realtà Virtuale

Decorazione Piastrelle

HDRI (High Digital Range Images)

Dimensione di uno Spazio vettoriale

Luci/Ombre. YAFARAY motore di rendering Open Source. Federico Frittelli aka fredfrittella. SUTURA-studio di progettazione.

Introduzione al Many/Multi-core Computing

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Immagini vettoriali. Immagini raster

Esame di INFORMATICA

Calcolatori Elettronici A a.a. 2008/2009

FONDAMENTI di INFORMATICA L. Mezzalira

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica.

1. PRIME PROPRIETÀ 2

La Videosorveglianza Criteri per il dimensionamento dello storage

Interazione luce - materia

ArcScene è l applicazione del sistema ArcGis che permette di visualizzare l informazione geografica in tre dimensioni Attraverso ArcScene è possibile

Sistema operativo: Gestione della memoria

Misure di base su una carta. Calcoli di distanze

Calendario delle lezioni


Capitolo 8 Rendering Globale. Dal modello locale ai modelli globali. Cap. 8 - Contenuti. Rendering Locale. Sezione 8.1. Limitazioni del modello locale

Premessa. GUI: organizzazione generale

Introduzione alla Virtualizzazione

Politecnico di Milano - Facoltà del design - Laboratorio di computer grafica C2 Michele Zannoni Giovanni Gigante Tutorial 05: Materiali in Maya

Architetture Applicative

Dimostrare alla Scuola media: dal perché al rigore spontaneamente

Le luci. L'illuminazione diretta. Informatica Grafica per le arti. L'illuminazione diretta. L'illuminazione diretta. L'illuminazione diretta

Esempi di algoritmi. Lezione III

ShareGrid Una piattaforma di calcolo condivisa per Grid Computing

Dalla Sfera a Luigi del film Cars L Algoritmo di Ray Tracing

Test percettivi per la valutazione del contrasto di immagini digitali

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base

Codifica delle immagini

Elaborazione e Visualizzazione di Modelli di Grandi Dimensioni di Terreni

Le texture. Informatica Grafica I. Le texture. Le texture. Le texture. Le texture. Le texture

Qui cade sua altezza

13. Campi vettoriali

La codifica delle immagini

GEOMETRIA DELLE MASSE

INFORMATICA 1 L. Mezzalira

Dispense di Informatica per l ITG Valadier

Slide Cerbara parte1 5. Le distribuzioni teoriche

Anna Montemurro. 2Geometria. e misura

Origini e caratteristiche dei calcolatori elettronici

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine

Fasi di creazione di un programma

Il controllo della visualizzazione

I tre concetti si possono descrivere in modo unitario dicendo che f e iniettiva, suriettiva, biiettiva se e solo se per ogni b B l equazione

Rendering 13/01/2014. Marco Tarini - Video Game Dev - Univ Insubria (recall?) Game Engine

Generatore radiologico

Codifica delle immagini

RADIOSITY TUTORIAL. versione originale su:

Benvenuti in Maya 7 e nel mondo della Computer

Trasformazioni 2D. Grande differenza rispetto alla grafica raster!

Elaborazione testi: immagini

3DE Modeling Color. E il modulo che si occupa della costruzione di modelli 3D con tessitura a colori.

Transcript:

Fondamenti di Grafica Tridimensionale La Pipeline Grafica Marco Di Benedetto marco.dibenedetto@isti.cnr.it

Visualizzazione dell Informazione noi siamo qui Informazione mondo reale (es: 3D scans) creazione (es: videogames) Calcolo (es: Sci-Vis) Modellazione Trovare la rappresentazione più adeguata per... Visualizzazione (rendering) Trasformare la rappresentazione in immagine(i) sullo schermo

La Pipeline di Rendering Def: La serie di passi che trasformano la descrizione geometrica di una scena in un immagine sullo schermo

Esempio di pipeline di rendering Esempio su una scena fatta da un triangolo nello spazio 3D punto da dove fotografo la scena Il triangolo è descritto dalle posizioni dei suoi 3 vertici V0,V1 e V2: 3 punti in 3 dimensioni Ma lo schermo è piatto!...

Primo passo: Transform Trasformare le coordinate tridimensionali in coordinate bidimensionali 3D transform 2D Il risultato dipende da dove fotografo la scena.....e con cosa: uno zoom? un grandangolo?

Secondo passo: Rasterization Trasformare la descrizione per vertici 2D del triangolo nell insieme di pixel da accendere 2D 2D Rasterization Qui il triangolo è descritto con 3 punti 2D Qui il triangolo è descritto con un insieme di pixel

Lighting E la luce? Di che colore sono i pixel? La scena comprende anche: descrizione delle fonti di luce descrizione delle proprietà ottiche dei materiali L interazione luce-materia viene modellata qui (in questo esempio di pipeline) : 3D Transform & Lighting 2D Rasterization

Qualche altro dettaglio... Sottosistema Geometrico 3D Transform & Lighting 2D Sottosistema Raster Rasterization fragments Il frammento è lo stadio precedente al pixel. Non tutti i frammenti diventeranno per forza pixel Texture Mapping & Shading Z-Buffering Blending Display

Texture mapping, Z-Buffering, Blending Texture mapping: un immagine è associata ad un poligono. Il colore dei frammenti generati dalla rasterizzazione del poligono dipendono dall immagine Z-buffering: più oggetti possono essere proiettati sulle stesse coordinate, ed ognuno genera un frammento. Lo Z-buffering è un algoritmo che determina quale dei frammenti in conflitto diventerà il pixel Blending (blending = mischiare, fondere insieme): capita che il colore del pixel debba essere ottenuto mescolando il colore di più frammenti (relativi alla medesima posizione). Es: materiali semitrasparenti...vedremo tutto in dettaglio..

Caratteristiche La pipeline Rasterization-Based si basa su un assunzione: Il mondo è fatto di punti, linee e poligoni L implementazione hardware della pipeline (la scheda grafica) si basa su un assunzione più stretta: Il mondo è fatto di triangoli, segmenti e punti

Tutto sia composto da triangoli (3D)

Tutto sia composto da triangoli (3D)

Tutto sia composto da triangoli (3D)

Tutto sia composto da triangoli (3D)

Tutto sia composto da triangoli (3D)

Esempio di campo di altezza triangolato "height field" un esempio tipico: campo d'altezza per modellare un terreno...

Tutto sia composto da triangoli (3D)

Tutto sia composto da triangoli (3D)

da nuvola di punti a triangoli: esempio

Tutto sia composto da triangoli (3D)

Da dataset volumetrico a triangoli: esempio

Tutto sia composto da triangoli (3D)

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!)

Per dirla tutta sulle primitive di rendering Triangoli ok, abbiamo capito Quads in un certo senso, perchè diventano triangoli al volo Segmenti Punti

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

Per dirla tutta sulle primitive di rendering Triangoli ok, abbiamo capito Quads in un certo senso, perchè diventano triangoli al volo Segmenti Punti

Caratterisiche L illuminazione è locale alla primitiva (triangolo, punto, linea) renderizzata L illuminazione viene calcolata via via che si disegnano le primitive...niente ombre portate...niente inter-reflection (luce che rimbalza su un oggetto e ne illumina un altro) detto in altro modo: il paradigma di rendering raster-based non codifica il concetto di scena

Altri paradigmi di rendering: Ray-Tracing In un certo senso l opposto del raster-based Il principio: si seguono a ritroso i raggi di luce che giungono all osservatore Il raggio incontra una fonte di luce punto di vista viewport raggio il raggio rimbalza sulla superficie

Caratteristiche È un paradigma di rendering globale Modella facilmente le ombre portate Modella la inter-reflection speculare (luce su una superficie liscia) Anche la inter-reflection diffusa, ma meno bene (luce su una superficie non speculare: un muro)

Altri paradigmi (Illuminazione globale) Radiosity Le superfici sono partizionate in pezzetti (patch) Si pre-calcola quanta parte dell energia che esce da una patch arriva ad ogni altra patch della scena Photon mapping Si simula la luce con uno sciame di fotoni che arte dalle sorgenti e interagisce con le superfici Computazionalmente proibitivo fino a qualche tempo fa

Paradigmi e hardware grafico Le schede grafiche sono pensate per il paradigma Transform&Lighting Oggi la pipeline di rendering è interamente a carico della scheda grafica La CPU si limita a descrivere la scena

Cenni storici sull hardware grafico Riprendiamo lo schema della pipeline di rendering 3D Transform & Lighting 2D Rasterization Fino a metà degli anni 90 tutte le parti della pipeline erano eseguite dalla CPU

Cenni storici sull hardware grafico 1995-1997: 3DFX Voodoo 3D CPU Transform & Lighting 2D Rasterization Memoria Centrale Memoria Video bus PCI (parallelo 32 bit, 66 Mhz, larghezza di banda 266 MB/s, condiviso)

Cenni storici sull hardware grafico 1998: NVidia TNT, ATI Rage 3D CPU Transform & Lighting 2D Graphics accelerator Rasterization Memoria Centrale Memoria AGP bus AGP Memoria Video Accelerated Graphics Port Bus dedicato tra scheda madre e scheda grafica AGP 1x 1.0: 66 x 2 = 133 MHz, trasferimento dati a 533 MB/s AGP 1x 2.0: 66 x 4 = 266 MHz, trasferimento dati a 1066 MB/s AGP 1x 3.0: 66 x 8 = 533 MHz, trasferimento dati a 2133 MB/s

Cenni storici sull hardware grafico 1998: NVidia TNT, ATI Rage CPU 3D Transform & Lighting 2D Graphics accelerator Rasterization Memoria Centrale Memoria AGP bus AGP Memoria Video Accelerated Graphics Port Bus dedicato tra scheda madre e scheda grafica AGP 1x 1.0: 66 x 2 = 133 MHz, trasferimento dati a 533 MB/s AGP 1x 2.0: 66 x 4 = 266 MHz, trasferimento dati a 1066 MB/s AGP 1x 3.0: 66 x 8 = 533 MHz, trasferimento dati a 2133 MB/s

Cenni storici sull hardware grafico 2001: Vertex Shader. Programmare il chip della scheda grafica (GeForce3, Radeon 8500) CPU Graphics accelerator 3D 2D Transform & Lighting Rasterization Memoria Centrale Memoria AGP Vertex Shader bus AGP Memoria Video I programmi non possono contenere branching e sono limitati in lunghezza

Cenni storici sull hardware grafico 2002-3: Pixel (o fragment) Shader (GeForceFX, Radeon 8500) CPU GPU: Graphical Processing Unit 3D 2D Transform & Lighting Rasterization Vertex Shader Pixel Shader Memoria Centrale Memoria AGP bus AGP Memoria Video

Cenni storici sull hardware grafico 2004-5: PCI-Express, branching negli shader (GeForce 6800-7800, ATI Radeon 9200) CPU GPU: Graphical Processing Unit 3D 2D Transform & Lighting Rasterization Vertex Shader Pixel Shader Memoria Centrale Memoria AGP bus PCIE Memoria Video

Cenni storici sull hardware grafico 2007: geometry shader, stesso hardware per tutti gli shaders (NVidia 8800) CPU GPU: Graphical Processing Unit 3D 2D Transform & Lighting Rasterization Vertex Shader Pixel Shader Memoria Centrale Memoria AGP Geometry Shader bus PCI-E Memoria Video

Note sulla GPU odierne Modello di computazione SIMD (single intruction multiple data): sfrutta l'alto grado di parallelismo insito nella pipeline Potenza di calcolo: performance delle GPU NVidia Ecco il perchè del General Purpose Computation on GPU.

Note sulla GPU odierne Stima delle prestazioni: I produttori scrivono tanti numeri, tra i quali: Trasformazioni per secondo (sottosistema geometrico) Fill-rate ( frammenti al secondo) Dimensioni - Memoria Video I primi due sono da prendersi con le molle Sono prestazioni picco, nella pratica valgono solo su apposito esempio

EOF