La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Antialiasing parzialmente tratto da: Han-Wei Shen

Presentazioni simili


Presentazione sul tema: "Antialiasing parzialmente tratto da: Han-Wei Shen"— Transcript della presentazione:

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

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

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

5 Il rendering è un processo di campionamento

6 Il rendering è un processo di campionamento
rendere una curva

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

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

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

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

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

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

17 Alcuni filtri di ricostruzione
Interpolazione bicubica

18 Box Molto semplice ma non molto buono

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

20 Bicubico Filtro passa basso ideale: nearestneighbor lineare bicubica

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

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

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

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

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 Differenti schemi di sovracampionamento
Formula comune: c(i,x,y): colore del campione i per pixel(x,y); wi: peso Diversi schemi di sovracampionamento

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 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 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 Multicampionamento: Quincunx
Genera 2 campioni per pixel w1=0.5, w2=0.125, w3=0.125, w4=0.125, w5= (filtro triangolare 2D ) Il campione centrale viene sovrapesato (pixel di centro= 0.5, pixel d’angolo = 4*0.125=0.5)

33 Quincunx Fatti prestare qualcosa dal vicino
Qualità comparabile al metodo 4x a metà del costo

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

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

38 Jittering: ATI - SMOOTHVISIONTM
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 ATI - SMOOTHVISIONTM 4x multi-sampling Quake3 screen shot
2x High-Quality mode Quake3 screen shot


Scaricare ppt "Antialiasing parzialmente tratto da: Han-Wei Shen"

Presentazioni simili


Annunci Google