La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending.

Presentazioni simili


Presentazione sul tema: "1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending."— Transcript della presentazione:

1 1 Effetti impressionistici Daniele Marini

2 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending –Tone reproduction (correzione gamma, correzione colori)

3 3 riprodurre fedelmente la realtà: es. dellarancia, costruire un modello accurato: –Modello poliedrico –Modello spline –Modello procedurale/funzionale Approssimare la realtà con metodi impressionistici - aggiungere dettagli a un modello semplice

4 4 Scomporre la superficie da rendere in frammenti fragments della dimensione al più di un pixel; durante il rendering a ogni fragment si assegna il colore seguendo il modello di illuminazione scelto e modificandolo secondo una qualche regola: –Texture mapping --> usa una texture –Bump mapping --> perturba le normali –Environmental mapping --> simula riflessioni –…..

5 5 Fragments Le primitive sono rasterizzate e convertite in una immagine 2D. Rasterizzare vuol dire decidere quali quadrati di una griglia a valori interi in coordinate window sono occupati dalla primitiva, e assegnare un colore e altri valori Un quadrato della griglia con associati i valori di colore e profondità è chiamato fragment frammento Un frammento è un pixel virtuale I Pixel sono elementi del frame buffer; un frammento, che proviene da operazioni di rasterizzazione di una primitiva, viene combinato con il suo pixel corrispondente per produrre un nuovo pixel

6 6 Fragments Quando il frammento è stato costruito si può applicare: texturing, nebbia, antialiasing se sono inclusi nella descrizione del frammento Fatto ciò si possono applicare: alpha blending, dithering, operazioni logiche bit per bit (maschere,..), usando il frammento e il pixel già inserito nel framebuffer Infine il valore di colore del frammento (indice in LUT o quaterna RGBA) viene scritto nel pixel e visualizzato nella window usando la modalità di colore scelta.

7 7 Dithering Se la profondità di colore è limitata, si approssima la gamma dei colori attraverso con il dithering (esitare, tremare). alternando il colore di pixel adiacenti si ottengono le sfumature desiderate, visibili da una certa distanza l'occhio non è in grado di distinguere i piccoli punti singolarmente, ma coglie solo l'effetto d'insieme. tecnica di riproduzione dei colori a stampa con i retini

8 8 Dithering

9 9 errore cromatico: differenza tra il valore esatto del colore del pixel e quello più vicino, data una profondità di colore Il dithering compensa lerrore cromatico distribuendo la differenza sui pixel confinanti con il pixel considerato

10 10 Dithering algoritmo di Floyd-Steinberg: distribuisce l'errore cromatico sui pixel confinanti: – 7/16 assegnati al pixel a EST, –5/16 al pixel SUD, –3/16 al pixel SUD-OVEST, –1/16 al pixel SUD-EST

11 11 Alpha blending Senza blending ogni nuovo frammento sovrascriverebbe il colore già presente nel framebuffer come se il frammento fosse opaco Con il blending si può controllare quanta parte del colore esistente deve venir combinato col colore nel nuovo frammento alpha blending permette di creare un frammento trasparente, attraverso il quale si può vedere il colore già presente Compositing, painting e trasparenza si basano sul blending.

12 12 Compositing Una immagine di sintesi può essere il prodotto del rendering di molteplici elementi, per ciascuno dei quali si costruisce una immagine Il compositing mette assieme le diverse immagini per creare la scena completa

13 13 Compositing - alpha blending Alpha blending richiede alfa channel RGB Il quarto canale alfa contiene il valore di blending Trasparente: =0; opaco: =1 –Pixel sorgente: s=(s r,s g,s b,s a ) –pixel destinazione: d=(d r,d g,d b,d a ) –compositing: d=(b r s r +c r d r, …) –dove b e c sono i fattori di blending del pixel sorgente e pixel destinazione

14 14 Lordine con cui viene eseguito il compositing influenza il risultato glEnable(GL_BLEND) glBlendFunc(source_factor, destination_factor) Date n immagini da comporre con blending, al pixel i ogni immagine ha un colore C i i Sommando con blending le immagini si supera il valore di colore Si sostituisce C i con 1/n C i e i con 1/n i

15 15 Correzione del gamma Una variazione lineare dello stimolo produce una variazione logaritmica della sensazione percepita I monitor sono costruiti seguendo questo principio: un incremento della tensione di controllo produce un incremento logaritmico della intensità dellemissione Il gamma si può correggere con LUT

16 16 gamma Due monitor diversi producono immagini diverse Due problemi: calibrazione e riproduzione dei toni varia, tipici valori sono 1.5, 2, 2.5

17 17

18 18 Aliasing e anti aliasing Prodotto da insufficiente frequenza di campionamento

19 19

20 20 Possiamo campionare in posizioni regolari al centro del pixel:

21 21 Profili seghettati Perdita di dettagli Scomparsa della texture

22 22 Filtraggio: sovracampionare il segnale

23 23 Per ogni pixel si prende la media pesata del vicinato dei sovracampioni:

24 24 In OGL si può attivare anti aliasing di punti, linee e poligoni con: glEnable(GL_POINT_SMOOTH); glEnable(GL_LINE_SMOOTH); glEnable(GL_POLYGON_SMOOTH); Si può attivare anti aliasing con blending e compositing: glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONES_MINUS_SRC_ALPHA);


Scaricare ppt "1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending."

Presentazioni simili


Annunci Google