La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Programmazione Grafica e Laboratorio Daniele Marini

Presentazioni simili


Presentazione sul tema: "Corso di Programmazione Grafica e Laboratorio Daniele Marini"— Transcript della presentazione:

1 Corso di Programmazione Grafica e Laboratorio Daniele Marini
Pipeline di Rendering Corso di Programmazione Grafica e Laboratorio Daniele Marini

2 Pipeline - 1 Funzione principale della pipeline di rendering è generare (renderizzare) un’immagine bidimensionale dati: una camera virtuale, oggetti tridimensionali, sorgenti di luce, modelli di illuminazione, textures, ecc….

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

4 Application stage - 1 E’ sempre implementata via software
Quindi il programmatore ha pieno controllo dell’implementazione Non è suddidivisa 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 stage 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: Applic Geom Rast Model and View Transform Lighting Projection Clipping 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 l’applicazione 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 nell’origine e facendola guardare lungo l’asse negativo delle z. Dopo l’applicazione 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 l’interazione tra luce e materiali dei modelli della scena. In grafica real-time vengono utilizzati normalmente metodi locali, che calcolano il colore di un vertice considerando il materiale dell’oggetto, 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 all’orizzonte.

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 l’applicazione 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 (x’,y’) coordinate schermo + coordinata z di profondità
Riassunto coordinate Model and View Transform Lighting Projection Clipping Screen Mapping Normalized Device Coord. 4D (Omogenee) World Coord. 4D (Omogenee) Window Coord. 2D (x’,y’) coordinate schermo + coordinata z di profondità mantenuta a parte World Coord. 3D

17 Rasterizer stage - 1 Scopo di quest’ultima fase è assegnare il colore corretto ai pixel dell’immagine finale, memorizzati nel color buffer. In questa fase si risolve il problema della visibilità: le coordinate z (memorizzate nello Z-buffer) mi dicono per ogni pixel quale primitiva sia più “vicina” rispetto alle altre, e quindi quale sia 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 effetti di motion blur. Alla fine di queste operazioni, l’immagine può essere visualizzata.


Scaricare ppt "Corso di Programmazione Grafica e Laboratorio Daniele Marini"

Presentazioni simili


Annunci Google