Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.