Nel campo della computer grafica 3D, il filtro anisotropico è una tecnologia che migliora la qualità dell'immagine della trama. Viene utilizzata principalmente per migliorare la chiarezza dell'immagine sotto angoli di visione obliqui. Questa tecnologia non funziona allo stesso modo in tutte le direzioni, ma piuttosto nella direzione in cui si osserva la texture, attraverso filtri mirati per ridurre la sfocatura e preservare i dettagli, soprattutto ad angoli di visione estremi.
Il filtraggio anisotropico preserva la "nitidezza" delle texture ed evita la perdita di dettagli dell'immagine utilizzando le normali tecniche mipmap.
Il filtraggio isotropico tradizionale riduce la risoluzione di entrambi gli assi xey a ciascun livello, quindi durante il rendering su un piano inclinato rispetto alla fotocamera, la frequenza dell'asse verticale sarà La riduzione si tradurrà in una risoluzione orizzontale insufficiente. Ciò farà sì che l'aliasing in altre direzioni venga evitato, ma le texture in altre direzioni potrebbero diventare sfocate.
Al contrario, il filtro anisotropico consente di filtrare le texture con proporzioni diverse. Ad esempio, quando la risoluzione della texture è 256px × 256px, questa tecnologia di filtro può ridurla a 128px × 128px e ridurla ulteriormente a risoluzioni non quadrate come 256px × 128px e 32px × 128px. Ciò non solo migliora il dettaglio della texture agli angoli smussati, ma mantiene anche la chiarezza in altre direzioni quando è necessario evitare l'aliasing.
Nelle applicazioni pratiche, diversi gradi di filtraggio anisotropico possono essere regolati tramite impostazioni sviluppate. Questo rapporto è il rapporto di anisotropia massimo supportato dal processo di filtraggio. Ad esempio, un filtro anisotropico 4:1 produrrà un effetto più chiaro sulle texture smussate rispetto a un filtro 2:1. Ciò significa che nel caso di texture molto distorte, il filtraggio 4:1 mostrerà un dettaglio maggiore rispetto al filtraggio 2:1. Tuttavia, la maggior parte delle scene non richiede una precisione così elevata e mostrerà solo differenze specifiche in un gran numero di particelle influenzate dalla distanza.
L'hardware grafico moderno pone un limite superiore a questo livello di filtraggio per evitare progettazioni hardware eccessivamente complesse e rendimenti visivi decrescenti.
Il vero filtraggio anisotropico viene in genere eseguito al volo in base ai pixel. Nel rendering dell'hardware, quando una texture viene campionata in modo anisotropico, vengono prelevati più campioni attorno ad essa in base alla forma proiettata di quel pixel. Alcuni degli approcci software originali utilizzavano tabelle ad area sommata e ogni passaggio di campionamento poteva essere esso stesso un'istanza mipmap filtrata, aggravando il processo di campionamento. Ad esempio, se sono necessari 16 campioni lineari tripli, potrebbe essere necessario prelevare 128 campioni dalla texture memorizzata, poiché il filtraggio mipmap lineare triplo richiede quattro campioni come base per ogni mipmap. Questa complessità potrebbe non essere necessaria in alcuni casi.
Il numero di campioni per il filtraggio anisotropico può comportare requisiti di larghezza di banda estremamente elevati. Ogni campione di trama può superare i quattro byte, quindi ogni pixel anisotropo può richiedere fino a 512 byte di dati per essere recuperato dalla memoria della trama. Ciò rende comune che i dispositivi di visualizzazione video richiedano una larghezza di banda di 300-600 MB/s e che le operazioni di filtraggio delle texture in alcune scene richiedano centinaia di GB/s. Fortunatamente, qualcosa aiuta a ridurre questa penalizzazione delle prestazioni: i punti campione possono condividere campioni memorizzati nella cache, tra punti adiacenti o all'interno dello stesso pixel. Anche con 16 campioni, è possibile che non tutti i 16 siano necessari perché solo i pixel più distanti e fortemente inclinati saranno particolarmente critici.
Combinando queste tecniche, il filtraggio anisotropico sta diventando sempre più comune nei moderni hardware grafici e driver video. Gli utenti possono regolare il rapporto di filtraggio tramite le impostazioni del driver e gli sviluppatori possono anche implementare le proprie esigenze di filtraggio delle texture tramite API, consentendo di presentare dettagli dell'immagine più ricchi. Tuttavia, hai mai pensato a come queste tecnologie possano evolversi ulteriormente nella futura presentazione delle immagini?