La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Antialiasing parzialmente tratto da: Han-Wei Shen Daniele Marini Corso Di Programmazione Grafica aa2007/2008.

Presentazioni simili


Presentazione sul tema: "Antialiasing parzialmente tratto da: Han-Wei Shen Daniele Marini Corso Di Programmazione Grafica aa2007/2008."— Transcript della presentazione:

1 Antialiasing parzialmente tratto da: Han-Wei Shen Daniele Marini Corso Di Programmazione Grafica aa2007/2008

2 Programmazione Grafica aa2007/20082 Cos’è un alias? Alias - In telecomunicazione un falso segnale dovuto a interferenza tra frequenza del segnale e frequenza di campionamento –aliasing c’è ovunque in computer graphics poichè il rendering è un processo di campionamento –Esempi: linee a dente di sega (jagged lines) false tramature di texture (moirée)

3 Programmazione Grafica aa2007/20083 Aliasing spaziale di linee e di texture Osserviamo aliasing sia su singole linee o bordi (denti di sega) sia su texture (moirée)

4 Programmazione Grafica aa2007/20084 Aliasing temporale Si osserva aliasing anche in sequenze di immagini:

5 Programmazione Grafica aa2007/20085 Il rendering è un processo di campionamento

6 Programmazione Grafica aa2007/20086 Il rendering è un processo di campionamento rendere una curva

7 Programmazione Grafica aa2007/20087 Veloce rassegna di campionamento di segnali Due passi nella rappresentazione digitale di un segnale: campionamento e ricostruzione –Campionamento: da segnale continuo a campioni discreti –Ricostruzione: dai valori discreti al segnale continuo Aliasing può derivare da entrambi i passaggi

8 Programmazione Grafica aa2007/20088 Alias provocato da sotto- campionamento una ruota sembra girare in senso inverso Osserva solo a 1/4 della frequenza problema di sotto campionamento

9 Programmazione Grafica aa2007/20089 Alias provocato da sotto- campionamento segnale 1D segnale effettivo segnale campionato

10 Programmazione Grafica aa2007/200810 Alias provocato da sotto- campionamento segnale 2d: moirée aliasing moderato aliasing più forte

11 Programmazione Grafica aa2007/200811 Alias e spettro Si può comprendere il fenomeno dell’aliasing considerando che lo spettro di un segnale a supporto finito si ripete periodicamente Se la frequenza di campionamento è inferiore alla frequenza massima del segnale queste ripetizioni si sovrappongono nelle code

12 Programmazione Grafica aa2007/200812 Se aumentiamo la frequenza di campionamento? f=1 rpm 1 campione per rivoluzione 1 < campione/rivoluzione < 2 2 campioni/rivoluzione > 2 campioni/rivoluzione

13 Programmazione Grafica aa2007/200813 Quanto basta? qual’è la giusta frequenza di campionamento? teorema del campionamento (o limite di Nyquist) - la frequenza di campionamento deve essere almeno doppia della massima frequenza del segnale due campioni in questo periodo

14 Programmazione Grafica aa2007/200814 Si può evitare totalmente aliasing Dato il limite di Nyquist ? In realtà no – la frequenza massima potrebbe essere infinita, segnale non limitato in banda La maggior parte delle scene grafiche non sono bandlimited: bordi netti non possono mai venire campionati correttamente in modo digitale (point sampling) Come si può correggere o limitare l’aliasing?

15 Programmazione Grafica aa2007/200815 Ricostruzione Dopo aver campionato (idealmente) in modo corretto, dobbiamo ricostruire il segnale continuo Si procede usando filtri di ricostruzione

16 Programmazione Grafica aa2007/200816 Alcuni filtri di ricostruzione Filtri più comuni: Box - Interpolazione Nearest neighbour Filtro a tenda Interpolazione lineare

17 Programmazione Grafica aa2007/200817 Alcuni filtri di ricostruzione Interpolazione bicubica

18 Programmazione Grafica aa2007/200818 Box Molto semplice ma non molto buono

19 Programmazione Grafica aa2007/200819 Filtro triangolare Basato su interpolazione lineare. Migliore ma ancora non smooth 32x32 Nearest neighbor Lineare

20 Programmazione Grafica aa2007/200820 Bicubico Filtro passa basso ideale: nearestneighbor lineare bicubica

21 Programmazione Grafica aa2007/200821 Ricampionamento Supponiamo che i campioni siano a intervalli unitari: 0,1,2,3,4,… Ricampionare in modo che la loro distanza valga a –a < 1 produce magnification –a >1 produce minification

22 Programmazione Grafica aa2007/200822 Ri-campionamento Minification e Magnification – ricampiona il segnale a risoluzioni diverse Magnification Minification (in questo caso la minificazione è stata fatta male)

23 Programmazione Grafica aa2007/200823 Magnification facile da usare, ricampiona in modo semplice il segnale da ricostruire Segnale ricostruito Ricampionamento a frequenza doppia del segnale ricostruito

24 Programmazione Grafica aa2007/200824 Minification Raddoppiamo la distanza tra i campioni Si ha un effetto di sfocatura

25 Programmazione Grafica aa2007/200825 Minification Più difficile La frequenza del segnale è troppo alta per evitare aliasing Soluzioni possibili: –Accresci l’ampiezza del filtro passa basso del filtro ideale sinc - sfoca l’immagine –Prima sfoca l’immagine (con qualunque metodo), poi ricampionala

26 Programmazione Grafica aa2007/200826 Tecniche di Antialiasing in tempo reale Tecniche pratiche usate in hardware grafico Lavorano nello spazio schermo

27 Programmazione Grafica aa2007/200827 Algoritmi basati su spazio schermo Approccio comune: campiona più fittamente la scena e calcola la media (sovracampionamento) È più difficile: i bordi hanno infinite frequenze idea risultato

28 Programmazione Grafica aa2007/200828 Differenti schemi di sovracampionamento Formula comune: c(i,x,y): colore del campione i per pixel(x,y) ; w i : peso Diversi schemi di sovracampionamento

29 Programmazione Grafica aa2007/200829 Campionamento perturbato (Jittered) Il campionamento regolare non può eliminare l’aliasing, può solo ridurlo! Perché ? Poiché i bordi richiedono la presenza di alte frequenze infinite –Questo dà anche luogo a oscilazioni ai bordi Jittering rimpiazza l’aliasing con rumore Si usa nel ray tracing Esempio:

30 Programmazione Grafica aa2007/200830 Tecniche di multicampionamneto con A-buffer Prende >1 campione / pixel, suddivide la computazione tra campioni entro il pixel –Lighting –Texturing Fattori di forza: aliasing dei bordi e accurato trattamento della trasparenza

31 Programmazione Grafica aa2007/200831 A-buffer Per trattare meglio i bordi si usa una maschera di ricoprimento per pixel La maschera di ricoprimento, la profondità e il colore costituiscono un fragment Durante il rendering i fragment possono esser scartati quando necessario (test di profondità) Quando tutti i poligoni sono stati resi, i fragment vengono fusi in un solo colore visibile –Costa in memoria!

32 Programmazione Grafica aa2007/200832 Multicampionamento: Quincunx Genera 2 campioni per pixel w 1 =0.5, w 2 =0.125, w 3 =0.125, w 4 =0.125, w 5 =0.125 (filtro triangolare 2D ) Il campione centrale viene sovrapesato (pixel di centro= 0.5, pixel d’angolo = 4*0.125=0.5)

33 Programmazione Grafica aa2007/200833 Quincunx Fatti prestare qualcosa dal vicino Qualità comparabile al metodo 4x a metà del costo

34 Programmazione Grafica aa2007/200834 FLIPQUAD Pesi: 0.25 per campione Si comporta meglio di Quincunx

35 Programmazione Grafica aa2007/200835 FSAA (full screen anti-aliasing) Rendi la scena a una risoluzione molto più alta poi fanne la media Nvidia GeForce 2: usa ordered grid supersampling (OGSS) 3dfx voodo 5: rotated grid supersampling (RGSS) – elimina meglio alias 2x or 4x: numero di subpixels per ciascun pixel Costoso: l’intera scena può dover essere resa più volte! OGSS RGSS

36 Programmazione Grafica aa2007/200836 Multisampling AA Nvidia GeForce3 – per accrescere performance 2x RGSS e 4x OGSS Non si inviano più texture per subpixels – usa la stessa texture di colore per i subpixels Usata solo sui pixel di contorno – GPU ha più intelligenza (è la maggiore differenza dal sovra campionamento)

37 Programmazione Grafica aa2007/200837 Confronto 4X - Quincunx 4X FSAA 4X Quincunx

38 Programmazione Grafica aa2007/200838 Jittering: ATI - SMOOTHVISION TM usa un pattern di campionamento jittered Ogni pixel ha (2x, 4x, 8x) locazioni di campionamneto alternative pre- programmate, jittered. Pseudo-random-look (La visione umana è meno sensibile a configurazioni di campionamento casuali) Possibili locazioni per SMOOTHVISION 4x

39 Programmazione Grafica aa2007/200839 ATI - SMOOTHVISION TM Quake3 screen shot 4x multi-sampling SMOOTHVISION™ 2x High-Quality mode


Scaricare ppt "Antialiasing parzialmente tratto da: Han-Wei Shen Daniele Marini Corso Di Programmazione Grafica aa2007/2008."

Presentazioni simili


Annunci Google