Architettura di OGL e pipe-line - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Architettura di OGL e pipe-line

Description:

... (BitBlt) no DL immediate mode effetti fog dithering hiddden surface masking ... * Display List Tutti i dati (geometria o pixel di texture) ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 28
Provided by: babodonte
Category:

less

Transcript and Presenter's Notes

Title: Architettura di OGL e pipe-line


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

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

Application
Geometry
Rasterizer
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

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 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
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 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
no DL immediate mode
genera vertici da spline
possono essere riletti da FB operazioni su
gruppi di pixel (BitBlt)
pixel data
display list
trasformazioni anche su texture
pixel operation
evaluator
organizza texture mapping sfrutta memoria locale
x texture
per vertex op primitive assembly
rasterization
texture assembly
per fragment operation
clipping, proiezione prospettica
effetti fog dithering hiddden surface masking ...
frame buffer
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
Write a Comment
User Comments (0)
About PowerShow.com