Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.

Slides:



Advertisements
Presentazioni simili
L’ IPERBOLE.
Advertisements

Ombre e riflessioni in tempo reale
COORDINATE POLARI Sia P ha coordinate cartesiane
ELETTROMAGNETISMO APPLICATO ALL'INGEGNERIA ELETTRICA ED ENERGETICA
Macchina Fotografica Virtuale
Corso di Informatica grafica 1 Introduzione Quando si rappresentano modelli di oggetti 3D costituiti da facce poligonali secondo delle proiezioni alcune.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 prove.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 prove generali.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Matrici di Proiezione Prospettica
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Computer Graphics Marco Tarini Lezione 7: rasterizzazione la fabbrica dei frammenti Università dellInsubria Facoltà di Scienze MFN - Varese Corso di Laurea.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Architetture per la sintesi di immagini Daniele Marini Gennaio 2000.
1 Modelli di Illuminazione Daniele Marini. 2 Obiettivo Visualizzare scene cercando di simulare al meglio la realtà Interazione luce-materiali –Modellare.
Modelli del colore 2 Daniele Marini.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
Smoothing Daniele Marini.
1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending.
Lavorare con le matrici in OGL
Infomatica Grafica a.a DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Environment Mapping.
Relatore: Laureando: Prof. Luca Zaccarian Roberto Antonelli
14 giugno 2011 Rasterizzazione Prof. Roberto Pirrone.
Gerarchie Nella lezione precedente abbiamo imparato creare una gerarchia di oggetti usando i gruppi (edit>group)
GRAFICA DIGITALE Silvia Lombardi Trento, 18 Maggio 2012
Determinazione delle superfici visibili
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Cominciamo a parlare di tangenti.
Le proiezioni e la prospettiva
Effetti fotorealistici
Modelli Globali: Ray Tracing
Image Based Rendering Daniele Marini.
Daniele Marini, Maurizio Rossi
Texturing - Tessiture Daniele Marini.
Le ombre proiettate Daniele Marini.
1 Scan conversione di poligoni Daniele Marini. 2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione:
Dal modello alla visualizzazione: Verso il foto realismo Daniele Marini.
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Le trasformazioni Daniele Marini.
Le proiezioni e la prospettiva
Le proiezioni e la prospettiva
Programmazione grafica 1
Superfici nascoste Daniele Marini.
Texturing - Tessiture Daniele Marini.
1 Struttura di un sistema grafico e frame buffer Daniele Marini.
Modelli di Illuminazione
1 Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Controllare le proiezioni
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Introduzione a OpenGL Prof. Daniele Marini.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Corso Di Programmazione Grafica
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Introduzione al corso Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Display list e picking Daniele Marini Corso Di Programmazione Grafica e Laboratorio.
Controllare la prospettiva
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
Controllare la prospettiva
Architettura di OGL e pipe-line Daniele Marini Davide Gadia Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2005/2006.
Controllare le proiezioni Daniele Marini Corso Di Programmazione Grafica aa 2007/2008.
Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Ottimizzazione della scena: culling (decimazione) Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Controllare le proiezioni
Costruzione di interfacce Paolo Cignoni
Transcript della presentazione:

Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica

2 Pipeline - 1 Funzione principale della pipeline di rendering è generare (renderizzare) unimmagine bidimensionale, dati: – una foto camera virtuale, –oggetti tridimensionali, –sorgenti di luce, –modelli di illuminazione, –texture ed effetti –ecc….

3 Pipeline - 2 Fasi concettuali: Ogni fase può essere a sua volta una pipeline. Lelemento della pipeline più lento determina la velocità di rendering (misurata in frames per second, o fps ). ApplicationGeometryRasterizer

4 Application stage - 1 E sempre implementata via software Quindi il programmatore ha pieno controllo dellimplementazione Non è suddivisa in ulteriori pipeline Può essere eseguita in parallelo su numerosi processori per aumentare le prestazioni

5 Application stage - 2 Processi normalmente considerati e implementati in questa fase: –Collision detection –Input da joystick, tastiera, mouse, ecc…. –Geometry morphing, animazione via trasformazioni, ecc….. –Algoritmi di accelerazione Alla fine di questi processi la geometria viene inviata allo stadio successivo.

6 Geometry stage In questa fase viene eseguita la maggior parte di operazioni sui poligoni e sui vertici. E normalmente suddivisa in questo modo: ApplicGeomRast Model and View Transform LightingProjectionClipping Screen Mapping

7 Model and View Transform - 1 In questa fase vengono applicate le trasformazioni ai vertici e alle normali della geometria passata dall Application stage. Dopo lapplicazione delle trasformazioni, si dice che la geometria è descritta in coordinate mondo ( world coordinates ).

8 Model and View Transform - 2 In questa fase vengono applicate anche le trasformazioni di vista. Lo scopo è facilitare le proiezioni e il clipping, posizionando la camera virtuale nellorigine e facendola guardare lungo lasse negativo delle z ( prospettiva canonica ). Dopo lapplicazione di queste trasformazioni, si dice che la geometria è descritta in coordinate occhio o camera ( camera coordinates o eye coordinates ).

9 Lighting and Shading In questa fase normalmente vengono applicati modelli di illuminazione che cercano di simulare linterazione tra luce e materiali dei modelli della scena. In grafica real-time vengono utilizzati normalmente modelli di illuminazione locali, che calcolano il colore di un vertice considerando il materiale delloggetto, la posizione del vertice e la sua normale, e la posizione della luce.

10 Projection - 1 In questa fase il volume di vista viene trasformato in un cubo con estremi in: (-1,-1,-1) e (1,1,1), chiamato volume di vista canonico. Esistono due tipi di proiezione: –Ortografica (o parallela): il volume di vista è un parallelepipedo, linee parallele rimangono parallele. –Prospettica: il volume di vista è un tronco di piramide a base rettangolare (frustum), linee parallele possono convergere allorizzonte.

11 Projection - 2 Proiezione ortografica

12 Projection - 3 Proiezione prospettica

13 Projection - 4 Le proiezioni, come le trasformazioni di modellazione e di vista, sono rappresentate da matrici 4x4. Dopo lapplicazione della proiezione, si dice che la geometria è descritta in coordinate dispositivo normalizzate ( normalized device coordinates ).

14 Clipping Solo le primitive interamente o parzialmente dentro il volume di vista devono essere passate al rasterizer stage. Le primitive in parte dentro il volume vanno clippate per eliminare le parti fuori dal volume.

15 Screen mapping Questa fase consiste nel mappare le coordinate tridimensionali (x,y,z) dei vertici nel cubo di lato unitario in coordinate bidimensionali (x,y) della finestra sullo schermo. Le coordinate z non sono modificate. Le coordinate (x,y) sono dette coordinate schermo ( screen coordinates ). Le coordinate schermo insieme alle coordinate z sono dette coordinate finestra ( window coordinates )

16 Riassunto coordinate Model and View Transform LightingProjectionClipping Screen Mapping World Coord. 3D World Coord. 4D (Omogenee) Normalized Device Coord. 4D (Omogenee) Window Coord. 2D (x,y) coordinate schermo + coordinata z di profondità mantenuta a parte

17 Rasterizer stage - 1 Scopo di questultima fase è assegnare il colore corretto ai pixel dellimmagine finale, memorizzati nel color buffer. In questa fase si risolve il problema della visibilità : le coordinate z (memorizzate nello Z-buffer) dicono, per ogni pixel, quale primitiva è più vicina rispetto alle altre, e quindi qual è il colore da assegnare. Vengono anche calcolate le informazioni relative alle texture.

18 Rasterizer stage - 2 Altri buffer possono essere utilizzati in questa fase per effettuare operazioni sui pixel: – Alpha channel, per effetti di trasparenza – Stencil buffer, per vari effetti come ombre e riflessioni – Accumulation buffer, per altri effetti come il motion blur. Alla fine di queste operazioni, limmagine può essere visualizzata.

19 La pipeline di OGL pixel data vertex data display list pixel operation evaluator rasterization per vertex op & primitive assembly texture assembly per fragment operation frame buffer genera vertici da spline trasformazioni anche su texture clipping, proiezione prospettica organizza texture mapping sfrutta memoria locale x texture possono essere riletti da FB operazioni su gruppi di pixel (BitBlt) no DL immediate mode effetti fog dithering hiddden surface masking...

20 Display List Tutti i dati (geometria o pixel di texture) sono salvate in una display list Se la display list non viene usata si opera in modalità immediata, cioè i dati sono processati immediatamente

21 Evaluator Tutte le primitive geometriche sono in ultima analisi descritte da vertici. Curve parametriche possono essere definite da punti di controllo e funzioni polinomiali (funzioni base). I vertici vengono ricavati dalla valutazione della curva parametrica. Fornisce anche normali, coordinate texture, colori e valori di coordinate spaziali di vertici dai punti di controllo

22 Per-vertex operation I vertici vengono convertiti nello spazio omogenee 4D Viene calcolata la proiezione prospettica Se le texture sono attivate vengono generate le coordinate texture e traformate per la proiezione Se il modello di illuminazione è abilitato viene calcolato in questa fase, usando coordinate, normali, posizione delle sorgenti di luce, proprietà dei materiali per calcolare il colore

23 Primitive assembly La parte prevalente dellassemblaggio delle primitive è il clipping Il clipping di linee può generare nuovi vertici in corrispondenza dellintersezione con i piani limite del frustum di visione Viene eseguita la divisione per la componente w ritornando nello spazio 3D Si applica la trasformazione window-to- viewport Se il face culling è abilitato si escludono le facce autonascoste

24 Pixel operation I pixel dallimmagine di input vengono spacchettati in funzione del formato di ingresso I dati sono scalati e rinormalizzati Se i pixel sono letti dal frame buffer vengono ancora riscalati e rinormalizzati Vengono gestiti anche i caratteri Il risultato viene trasferito al frame buffer, alla memoria texture o alla memoria centrale

25 Texture assembly Le texture vengono applicate alla geometria

26 Rasterization I dati geometrici e i pixel vengono convertiti in fragments Ogni fragment (quadrato) corrisponde a un pixel finale Se la conversione riguarda linee si applica lantialiasing Se la conversione riguarda poligoni si applica il colore derivante dal modello di illuminazione Ogni fragment conserva linformazione di profondità

27 Fragment operation Al fragment viene associato un texel, elemento di texture calcolato in precedenza Se previsto si calcola leffetto nebbia Si calcola alpha test per effetti di trsparenza, stencil test per effetti di mascheratura (es. ombre) e lo depth buffer test (z-buffer) per la rimozione delle facce nascoste Alla fine il fragment viene scritto nel frame buffer