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 aa2005/2006.

Presentazioni simili


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

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

2 Programmazione Grafica aa2005/20062 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 aa2005/20063 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 aa2005/20064 Aliasing temporale Si osserva aliasing anche in sequenze di immagini:

5 Programmazione Grafica aa2005/20065 Il rendering è un processo di campionamento

6 Programmazione Grafica aa2005/20066 Il rendering è un processo di campionamento rendere una curva

7 Programmazione Grafica aa2005/20067 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 aa2005/20068 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 aa2005/20069 Alias provocato da sotto- campionamento segnale 1D segnale effettivo segnale campionato

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

11 Programmazione Grafica aa2005/200611 Se aumentiamo la frequenza di campionamento? f=1 rpm 1 campione per rivoluzione 1 < campione/rivoluzione < 2 2 campioni/rivoluzione > 2 campioni/rivoluzione

12 Programmazione Grafica aa2005/200612 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

13 Programmazione Grafica aa2005/200613 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?

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

15 Programmazione Grafica aa2005/200615 Filtri di ricostruzione Filtri più comuni: Box Filtro a tenda Sinc = sin(  x)/  x

16 Programmazione Grafica aa2005/200616 Box Molto semplice ma non molto buono Si chiama anche nearest neighbor

17 Programmazione Grafica aa2005/200617 Filtro triangolare Basato su interpolazione lineare. Migliore ma ancora non smooth 32x32 Nearest neighbor Lineare

18 Programmazione Grafica aa2005/200618 Sinc Filtro passa basso ideale: nearestneighbor lineare bicubica

19 Programmazione Grafica aa2005/200619 Ricampionamento Allargare o ridurre il segnale 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

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

21 Programmazione Grafica aa2005/200621 Magnification facile da usare, ricampiona in modo semplice il segnale da ricostruire Segnale ricostruito Ricampionamento a frequenza doppia del segnale ricostruito

22 Programmazione Grafica aa2005/200622 Minification Raddoppiamo la distanza tra i campioni Si ha un effetto di sfocatura

23 Programmazione Grafica aa2005/200623 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

24 Programmazione Grafica aa2005/200624 Tecniche di Antialiasing in tempo reale Tecniche pratiche usate in hardware grafico Lavorano nello spazio schermo

25 Programmazione Grafica aa2005/200625 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

26 Programmazione Grafica aa2005/200626 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

27 Programmazione Grafica aa2005/200627 Campionamento perturbato (Jittered) Il campionamneot regolare non può eliminare l’aliasing, può solo ridurlo! Perché ? Poiché i bordi richiedono la presenza di alte frequenze infinite Jittering rimpiazza l’aliasnig con rumore Si usa nel ray tracing Esempio:

28 Programmazione Grafica aa2005/200628 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

29 Programmazione Grafica aa2005/200629 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 possibile (test di profondità) Quando tutti i poligoni sono stati resi, i fragment vengono fusi in un solo colore visibile –Costa in memoria!

30 Programmazione Grafica aa2005/200630 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 ) Tutti i pixel producono lo stesso effetto sull’immagine (pixel di centro= 0.5, pixel d’angolo = 4*0.125=0.5)

31 Programmazione Grafica aa2005/200631 Quincunx Fatti prestare qualcosa dal vicino Qualità comparabile al metodo 4x a metà del costo

32 Programmazione Grafica aa2005/200632 FLIPQUAD Pesi: 0.25 per campione Si comporta meglio di Quincunx

33 Programmazione Grafica aa2005/200633 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

34 Programmazione Grafica aa2005/200634 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)

35 Programmazione Grafica aa2005/200635 Confronto 4X - Quincunx 4X FSAA 4X Quincunx

36 Programmazione Grafica aa2005/200636 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

37 Programmazione Grafica aa2005/200637 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 aa2005/2006."

Presentazioni simili


Annunci Google