Filtro AntiAliasing – Filtro Anisotropo

Salve, dato che ho lasciato il discorso a metà con le schede video inseriamo anche questi due termini, ovvero AntiAliasing e Anisotropic Filtering. Essi sono degli effetti, molto usati dalle ultime piattaforme, che permettono di superare un problema di base del graphic drawing, ovvero disegnare su uno schermo non facendo vedere i singoli tratti nelle linee diagonali e l’applicazioni di texture con strech.

Spieghiamoci meglio: è noto a tutti che lo schermo è fatto di tanti puntini, chiamati pixel e, ognuno di essi è formato da 3 subpixel di colore rosso, verde e blu. Essi formano una griglia che vista da una certa distanza non fa notare questo dettaglio (ovvero che ci sono tanti puntini), facendo vedere il colore uniforme e in tutte le sfumature. Prendiamo il caso limite, ovvero tracciamo una linea nera su uno sfondo bianco. Quello che tutti avranno notato usando programmi come paint è che la linea viene perfetta sono se disegnata in verticale o in orrizzontale, e quasi perfetta se disegnata a 45°. Questo per la semplice ragione che la linea viene fatta su una griglia, ed è impossibile colorare un pixel della griglia solo in parte.

Ecco due rombi diegnati senza e con filtro AA (AntiAliasing). Nel primo si nota la linea diagonale meno accurata rispetto al rombo sulla destra.Difference

Questo problema è molto sentito nei giochi, dove da molto fastidio vedere i contorni delle cose quadrettati anzi che rotondi. Per ovviare a tale problema si è pensata una tecnica, nota col nome di AntiAliasing, che ha il compito di sfumare le linee nei bordi, facendole sembrare continue anzi che a tratti.

Vediamo qualche esempio:
Aliased
questo è un pavimento disegnato in prospettiva, senza anti aliasing.

Come si vede i quadrattini sembrano non avere la stessa dimensione e in fondo si vede un bel disastro…

Come si vedrebbe lo stesso pavimento con un effetto AntiAliasing?
AntiAliased
Eccovi serviti. Notiamo che nella parte alta il tratto è stato sostituito da una sfumatura grigia, rendendo più realistico il disegno.

Più in dettaglio la tecnica consiste nel mettere nelle vicinanze della non continuità del tratto delle sfumature dello stesso, ricreando un effetto ombra che distoglie dal tratto non continuo.

Zoom

Ecco uno zoom di come funziona l’AntiAliasing:
come potete vedere il rombo originale è costituito dalla parte nera. Per far sembrare la linea non “a scalini” sono stati introdotti dei pixel con altre sfumature sul bordo. L’effetto visivo è significativo. Il 4x o 8x ecc. è il livello di dettagli del filtro (un 8X deve prevedere più sfumature di un 4x e quindi ha bisogno di più potenza di calcolo per essere eseguito in tempi brevi). Se si usano questi filtri senza l’hardware oportuno, si corre il rischio di vedere scattare tutto poiché i fps – frame al secondo – diminuiscono, mostrando meno pagine (si dice che diminuisce il refresh video). Sotto una certa soglia, il nostro occhio si arrabbia, poiché invece di vedere un’immagine in movimento (come un film), vede tante sequenze in fila (come i singoli fotogrammi del film).

Altra cosa che si sente nominare è il filtro anisotropo.

Anche questo ha lo scopo di migliorare l’immagine, ma viene applicata alle texture. Questo filtro è computazionalmente molto dispendioso, ed è per questo che è diventato uno standard molto di recente, quando sono uscite schede video abbastanza potenti da supportarlo. Il principio che sta alla base di questo filtro è che qundo dobbiamo applicare una texture molto in prospettiva bisogna tirarla, ovvero bisogna diminuirne l’altezza, aumentarne la larghezza e farla diventare un trapezioide. Questo sicuramente ha enormi svantaggi, principalmente i dettagli che magari sono più importanti vengono cancellati causa lo strech oppure causa l’applicazione di una seconda texture sopra la prima, che ne va a coprire delle parti.

Questo filtro esegue calcoli molto sofisticati per fare lo strech della texture prima di passarla al rendering, calcolando oltre al cambiamento di dimensioni anche come fare lo strech (dando delle priorità ai diversi dettagli e all’applicazione di multi – texture).

Riporto qui un esempio di questo filtro dove si può apprezzare la linea tratteggiata in lontananza che nel primo caso viene coperta e i maggiori dettagli su bordo strada e nella parte alta dell’immagine:

Anisotropo

a sinistra senza filtro a destra con il filtro
Ricordo che non sempre la qualtà del filtro viene apprezzata, dato che le immagini differiscono molto dal contesto nelle quali le si vede. Se ad esempio si gioca ad un gioco dove le immagini non sono mai ferme e cambiano a forte velocità, non si fa troppo caso ai dettagli (oltre una certa soglia). Per questo se si applica un filtro, non sembra che ci sia un notevole guadagno visivo. Purtroppo viene subito agli occhi il calo di prestazioni dovuto al filtro, che spinge il gioco in una situazione dove la giocabilità risulta maggiormente limitata dai pochi fps (il discorso ovviamente vale con hardware di fascia media o bassa).

Detto questo, saluto tutti i lettori, a cui do appuntamento al prossimo articolo…

by Hochwart

Annunci

~ di Hochwart su giugno 13, 2007.

Una Risposta to “Filtro AntiAliasing – Filtro Anisotropo”

  1. […] e antialiasing : http://www.tomshw.it/forum/problemi/94977-filtri-antialiasing-e-anisotropo.html , https://underdeep.wordpress.com/2007/06/13/filtro-antialiasing-filtro-anisotropo/ . In piu’ , cortesemente , t’ indicherei di leggere con attenzione , queste indicazioni : […]

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger hanno fatto clic su Mi Piace per questo: