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.

Presentazioni simili


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

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

2 2 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 3 Aliasing spaziale di linee e di texture Osserviamo aliasing sia su singole linee o bordi (denti di sega) sia su texture (moirée)

4 4 Aliasing temporale Si osserva aliasing anche in sequenze di immagini:

5 5 Il rendering è un processo di campionamento

6 6 rendere una curva

7 7 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 8 Alias provocato da sotto- campionamento una ruota sembra girare in senso inverso Osserva solo a 1/4 della frequenza problema di sotto campionamento

9 9 Alias provocato da sotto- campionamento segnale 1D segnale effettivo segnale campionato

10 10 Alias provocato da sotto- campionamento segnale 2d: moirée aliasing moderato aliasing più forte

11 11 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 12 Se aumentiamo la frequenza di campionamento? f=1 rpm 1 campione per rivoluzione 1 < campione/rivoluzione < 2 2 campioni/rivoluzione > 2 campioni/rivoluzione

13 13 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 14 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 15 Ricostruzione Dopo aver campionato (idealmente) in modo corretto, dobbiamo ricostruire il segnale continuo Si procede usando filtri di ricostruzione

16 16 Alcuni filtri di ricostruzione Filtri più comuni: Box - Interpolazione Nearest neighbour Filtro a tenda Interpolazione lineare

17 17 Alcuni filtri di ricostruzione Interpolazione bicubica

18 18 Box Molto semplice ma non molto buono

19 19 Filtro triangolare Basato su interpolazione lineare. Migliore ma ancora non smooth 32x32 Nearest neighbor Lineare

20 20 Bicubico Filtro passa basso ideale: nearestneighbor lineare bicubica

21 21 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 22 Ri-campionamento Minification e Magnification – ricampiona il segnale a risoluzioni diverse Magnification Minification (in questo caso la minificazione è stata fatta male)

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

24 24 Minification Raddoppiamo la distanza tra i campioni Si ha un effetto di sfocatura

25 25 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 26 Tecniche di Antialiasing in tempo reale Tecniche pratiche usate in hardware grafico Lavorano nello spazio schermo

27 27 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 28 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 29 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 30 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 31 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 32 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 33 Quincunx Fatti prestare qualcosa dal vicino Qualità comparabile al metodo 4x a metà del costo

34 34 FLIPQUAD Pesi: 0.25 per campione Si comporta meglio di Quincunx

35 35 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 36 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 37 Confronto 4X - Quincunx 4X FSAA 4X Quincunx

38 38 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 39 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."

Presentazioni simili


Annunci Google