Che cos'è un filtro nei giochi. Filtraggio anisotropico

Test di prestazione:

E ora, quando abbiamo familiarizzato con i concetti di base di filtraggio e levigatura delle texture, possiamo passare alla pratica.

Configurazione del computer:
Processore: Intel Core 2 Quad Q6600 @ 3200 MHz (400 x 8, 1.3125 V)
Scheda video: Palit Nvidia GeForce 8800GT
Scheda madre: Asus P5Q PRO TURBO
Memoria: 2x2048 MB DDR2 Corsair XMS2 a 1066 MHz, 5-5-5-15
Alimentazione: Corsair CMPSU-850HXEU 850W
Dispositivo di raffreddamento della CPU: Zalman CNPS9700 LED
Sistema operativo: Windows 7 Ultimate x64
Versione del driver video: Nvidia 195.62 x64

Il principale soggetto di prova nei nostri test odierni è stato il vecchissimo, ma non meno famoso Counter-Strike: Source, poiché questo è uno dei pochi giochi veramente diffusi che fornisce una vasta gamma di diverse impostazioni di anti-aliasing e filtro. Nonostante l'antichità del motore (2004), questo gioco riesce comunque a caricare bene anche la piattaforma più moderna. Ecco un così ricco assortimento di impostazioni presentate all'utente:

I test di anti-aliasing e di filtraggio sono stati effettuati nel benchmark integrato, con una risoluzione di 1280x1024. Tutte le altre impostazioni sono state prese al massimo, come nello screenshot sopra. Per avvicinare il più possibile il risultato alla verità, ogni parametro è stato testato tre volte, dopodiché è stata trovata la media aritmetica dei valori risultanti.

E quindi, cosa abbiamo ottenuto:

I risultati sono stati abbastanza inaspettati. La tecnologia di coveragesampling (CSAA), che per definizione dovrebbe consumare meno risorse di MSAA, mostra qui un quadro completamente opposto. Le ragioni di questo fenomeno possono essere molte. Innanzitutto, va tenuto conto del fatto che le prestazioni quando l'anti-aliasing è abilitato dipendono in gran parte dall'architettura della GPU. Sì, e l'ottimizzazione delle varie tecnologie del gioco stesso e della versione del driver svolgono un ruolo altrettanto importante. Pertanto, i risultati quando si utilizzano altre schede video, o anche una versione di driver diversa, potrebbero essere completamente diversi.

I test con l'anti-aliasing disabilitato (contrassegnati in blu per la leggibilità) hanno mostrato un'immagine approssimativamente uguale, che indica una piccola differenza nei carichi sulla scheda video.

Inoltre, c'è una chiara corrispondenza tra gli indicatori FPS, quando si utilizza lo stesso metodo di anti-alias, per AF 8x e AF 16x. Allo stesso tempo, la differenza va da 1 a 4 fps (con l'eccezione di MSAA 8x, dove la differenza è di 11 fps). Ciò suggerisce che l'utilizzo del filtro 16x può essere molto utile se è necessario migliorare la qualità dell'immagine senza un calo significativo delle prestazioni.

Eppure, è necessario fare una riserva sul fatto che è semplicemente irrealistico ottenere gli stessi valori di FPS direttamente nel gioco, dal momento che molte scene si rivelano molto più difficili, soprattutto con molti giocatori.

Prove di immagini:

E quindi, cosa abbiamo? Abbiamo appreso gli effetti delle diverse configurazioni delle impostazioni sulle prestazioni. "Ma perché tutto questo è necessario?" - tu chiedi. Per migliorare la qualità dell'immagine visualizzata, risponderò. C'è un aumento? Per rispondere a questa domanda, suggerisco di dare un'occhiata ai seguenti screenshot:

Billinear / MSAA 2xTrilineare / MSAA 2xAF 2x / MSAA 2x
AF 2x / CSAA 8xAF 2x / MSAA 8xAF 2x / CSAA 16x
AF 2x / CSAA 16xQAF 8x / MSAA x2AF 8x / CSAA 8x
AF 8x / MSAA 8xAF 8x / CSAA 16xAF 8x / CSAA 16xQ
AF 16x / MSAA 2xAF 16x / CSAA 8xAF 16x / MSAA 8x
AF 16x / CSAA 16xAF 16x / CSAA 16xQBillinear / CSAA 16xQ

Come puoi vedere, semplicemente non c'è alcuna differenza particolare nelle combinazioni "superiori" AF 8x / MSAA 8x (CSAA 8x). Ma allo stesso tempo, c'è un notevole calo delle prestazioni, specialmente quando si utilizza Coverage Sampling AntiAliasing.

Conclusioni:

Sicuramente tra chi leggerà questo articolo ci saranno giocatori di Cs:s, HL2 e altri giochi basati sul motore Source. Troveranno questo articolo più interessante e informativo rispetto al resto. Tuttavia, lo scopo di questo scritto era solo quello di parlare delle moderne tecnologie che aiutano a migliorare la percezione visiva dei giochi. E test - come un modo per mostrare in pratica la teoria dichiarata.

Naturalmente, per l'affidabilità della testimonianza, è stato necessario condurre test di prestazione sia su altri chip video che su giochi aggiuntivi.

Comunque sia, tornando all'argomento di questo articolo, ognuno sceglie con quali impostazioni giocare. E non darò consigli o raccomandazioni, perché sono destinati a fallire in anticipo. Spero che la teoria di cui sopra con i test ti aiuti a familiarizzare con le tecnologie descritte.

Di Stormcss


Calciando con rabbia con i piedi

Con l'avvento dei giochi 3D, iniziarono a comparire problemi che non erano nei giochi 2D: dopotutto, ora è necessario visualizzare un'immagine tridimensionale su un monitor piatto. Se l'oggetto è parallelo al piano dello schermo vicino ad esso, non c'è problema: un pixel corrisponde a un texel (un texel è un pixel di un'immagine bidimensionale sovrapposta a una superficie 3D). Ma cosa succede se l'oggetto è inclinato o è lontano? Dopotutto, ci sono diversi texel per pixel e poiché il monitor ha un numero limitato di pixel, il colore di ciascuno deve essere calcolato da diversi texel attraverso un determinato processo: il filtraggio.


Per semplificare la comprensione, immaginiamo che ogni pixel sia un "buco" quadrato nel monitor, facciamo uscire "raggi di luce" dai nostri occhi e i texel si trovino su una griglia quadrata dietro il monitor. Se posizioniamo la griglia parallela al monitor immediatamente dietro di essa, la luce di un pixel coprirà solo un texel. Ora inizieremo a spostare la griglia: cosa otterremo? Il fatto che il nostro punto luminoso di un pixel coprirà più di un texel. Ora ruotiamo il reticolo: otteniamo la stessa cosa: un punto di un pixel coprirà molti texel. Ma dopotutto, un pixel può avere un colore e se vi cadono molti texel, allora abbiamo bisogno di un algoritmo con il quale ne determineremo il colore: si chiama filtraggio delle texture.


Questo è l'algoritmo di filtraggio più semplice: si basa sul fatto che prendiamo il colore texel più vicino al centro del punto luminoso dal pixel come colore del pixel. Il vantaggio di questo metodo è evidente: carica di meno la scheda video. Ci sono anche molti svantaggi: il colore di un texel centrale può differire in modo significativo dal colore di dozzine e persino centinaia di altri texel che cadono nel punto dal pixel. Inoltre, la forma della macchia stessa può cambiare seriamente, mentre il suo centro può rimanere nella stessa posizione e, di conseguenza, il colore del pixel non cambierà. Ebbene, lo svantaggio principale è il problema del "blockiness": quando ci sono pochi texel per pixel (cioè un oggetto vicino al giocatore), allora otteniamo che con questo metodo di filtraggio una parte sufficientemente ampia dell'immagine viene riempita con un colore, che porta a "blocchi" ben visibili dello stesso colore sullo schermo. La qualità dell'immagine finale è... semplicemente terribile:


Quindi non sorprende che tale filtraggio non sia più utilizzato oggi.


Con lo sviluppo delle schede video, il loro potere ha iniziato a crescere, quindi gli sviluppatori di giochi sono andati oltre: se prendi un texel per il colore di un pixel, allora va male. Ok, prendiamo il colore medio da 4 texel e lo chiamiamo filtro bilineare? Da un lato, le cose miglioreranno: il blocco scomparirà. Ma arriverà il nemico numero due: l'immagine sfocata vicino al giocatore: ciò è dovuto al fatto che l'interpolazione richiede più texel di quattro.

Ma non è questo il problema principale: il filtraggio bilineare funziona bene quando l'oggetto è parallelo allo schermo: quindi puoi sempre selezionare 4 texel e ottenere un colore “medio”. Ma qui il 99% delle trame è inclinato verso il giocatore e si scopre che stiamo approssimando 4 scatole rettangolari (o trapezi) come 4 quadrati, il che non è corretto. E più la trama è distorta, minore è la precisione del colore e più forte è la sfocatura:


Va bene, hanno detto gli sviluppatori del gioco, poiché 4 texel non sono sufficienti, prendiamo due per quattro e per un colore più accurato utilizzeremo la tecnologia di texturing MIP. Come ho scritto sopra, più la trama è lontana dal lettore, più texel saranno nel pixel e più difficile sarà per la scheda video elaborare l'immagine. MIP-texture, d'altra parte, significa memorizzare la stessa trama a risoluzioni diverse: ad esempio, se la dimensione della trama originale è 256x256, le sue copie vengono archiviate in memoria a 128x128, 64x64 e così via, fino a 1x1:


E ora non solo la texture stessa viene utilizzata per il filtraggio, ma anche la mipmap: a seconda che la texture sia più lontana o più vicina dal giocatore, viene presa una mipmap più piccola o più grande della texture e 4 texel più vicini al centro di i pixel sono già presi su di esso e una filtrazione bilineare. Successivamente, prendiamo 4 texel più vicini al pixel, già la trama originale, e di nuovo otteniamo il colore "medio". Successivamente, il colore "medio" viene preso dai colori medi della mipmap e della trama originale e assegnato al pixel: ecco come funziona l'algoritmo di filtraggio trilineare. Di conseguenza, carica la scheda video un po' più del filtro bilineare (devi anche elaborare la mipmap), ma la qualità dell'immagine risulta essere migliore:


Come puoi vedere, il filtraggio trilineare è decisamente migliore del filtraggio bilineare, e ancor di più del filtraggio puntiforme, ma l'immagine "lava" ancora a lunghe distanze. E l'immagine sfocata si ottiene perché non teniamo conto del fatto che la trama può essere inclinata rispetto al giocatore - e questo è esattamente il problema che risolve il filtro anisotropico. In breve, il principio del filtraggio anisotropico è il seguente: viene presa una texture MIP che viene impostata lungo la direzione della vista, dopodiché i suoi valori di colore vengono mediati con il colore di un certo numero di texel lungo la direzione della vista. Il numero di texel varia da 16 (per il filtraggio x2) a 128 (per x16). In parole povere, al posto di un filtro quadrato (come nel filtro bilineare), viene utilizzato un filtro allungato, che consente di selezionare il colore desiderato per un pixel dello schermo con una qualità migliore. Poiché possono esserci un milione o anche più pixel sullo schermo e ogni texel pesa almeno 32 bit (colore a 32 bit), il filtraggio anisotropico richiede un'enorme larghezza di banda della memoria video: decine di gigabyte al secondo. Requisiti di memoria così elevati sono ridotti a causa della compressione delle texture e della memorizzazione nella cache, ma ancora su schede video con memoria DDR o bus a 64 bit, la differenza tra il filtraggio anisotropico trilineare e x16 può raggiungere il 10-15% fps, ma l'immagine dopo tale filtraggio è il migliore:

Filtraggio delle texture.

Il filtraggio risolve il problema di determinare il colore di un pixel in base ai texel disponibili da un'immagine di texture.

Viene chiamato il metodo più semplice di mappatura delle texture campionamento puntuale(campionamento a punto singolo). La sua essenza è che per ogni pixel che compone il poligono, viene selezionato un texel dall'immagine della trama, situata più vicino al centro del punto luminoso. Si è verificato un errore perché più texel determinano il colore di un pixel e solo uno è stato selezionato.

Questo metodo è molto impreciso e il risultato della sua applicazione è la comparsa di protuberanze. Vale a dire, ogni volta che i pixel sono più grandi dei texel, si osserva un effetto di sfarfallio. Questo effetto si verifica se una parte del poligono è sufficientemente lontana dal punto di vista, in modo che molti texel si sovrappongano contemporaneamente nello spazio occupato da un pixel. Si noti che se il poligono è molto vicino al punto di vista e i texel sono più grandi dei pixel, si osserva un altro tipo di degrado della qualità dell'immagine. In questo caso, l'immagine inizia a sembrare a blocchi. Questo effetto si verifica quando la trama può essere piuttosto grande, ma la limitazione della risoluzione dello schermo disponibile rende impossibile rappresentare correttamente l'immagine originale.

Secondo metodo - filtraggio bilineare(Bi-Linear Filtering) consiste nell'utilizzare una tecnica di interpolazione. Per determinare i texel che dovrebbero essere utilizzati per l'interpolazione, viene utilizzata la forma principale del punto luminoso: un cerchio. In sostanza, il cerchio è approssimato di 4 texel. Il filtro bilineare è una tecnica per rimuovere la distorsione dell'immagine (filtraggio), come le trame "a blocchi" quando vengono ingrandite. Quando l'oggetto ruota o si muove lentamente (avvicinandosi/rimuovendosi), i pixel possono "saltare" da un punto all'altro, ad es. appare il blocco. Per evitare questo effetto, viene utilizzato il filtro bilineare, che utilizza la media pesata del colore di quattro texel adiacenti per determinare il colore di ciascun pixel e, di conseguenza, determina il colore della trama di sovrapposizione. Il colore del pixel risultante viene determinato dopo aver eseguito tre operazioni di fusione: prima si mescolano i colori di due coppie di texel, quindi si mescolano i due colori risultanti.

Lo svantaggio principale del filtraggio bilineare è che l'approssimazione viene eseguita correttamente solo per i poligoni paralleli allo schermo o al punto di osservazione. Se il poligono viene ruotato di un angolo (e lo è nel 99% dei casi), viene utilizzata l'approssimazione errata, poiché un'ellisse dovrebbe essere approssimata.

Gli errori di aliasing della profondità derivano dal fatto che gli oggetti più lontani dal punto di vista appaiono più piccoli sullo schermo. Quando l'oggetto si sposta e si allontana dal punto di osservazione, l'immagine della trama sovrapposta all'oggetto rimpicciolito diventa sempre più compressa. Alla fine, l'immagine della trama applicata all'oggetto diventa così compressa da visualizzare errori di rendering. Questi errori di rendering sono particolarmente indesiderabili nell'animazione, dove tali artefatti di movimento causano sfarfallio e effetti di rallentamento in una parte dell'immagine che dovrebbe essere ferma e stabile.

I seguenti rettangoli con struttura bilineare possono servire come illustrazione dell'effetto descritto:

Riso. 13.29. Ombreggiatura di un oggetto utilizzando il metodo di filtraggio bilineare. L'aspetto di artefatti di "alias di profondità", espresso dal fatto che più quadrati si fondono in uno solo.

Per evitare errori e simulare il fatto che gli oggetti a distanza appaiano meno dettagliati di quelli più vicini al punto di vista, una tecnica nota come mappatura mip. In breve, il mip-mapping è una sovrapposizione di trame che hanno un diverso grado o livello di dettaglio, quando, a seconda della distanza dal punto di osservazione, viene selezionata una trama con il dettaglio necessario.

Mip-texture (mip-map) consiste in un insieme di immagini prefiltrate e ridimensionate. In un'immagine associata a un livello mip-map, un pixel è rappresentato come la media di quattro pixel dal precedente livello a risoluzione più alta. Quindi, l'immagine associata a ciascun livello mipmap è quattro volte più piccola del livello mipmap precedente.

Riso. 13.30. Le immagini associate a ciascun livello mip-map della trama dell'onda.

Da sinistra a destra, abbiamo i livelli mip-map 0, 1, 2 e così via. Più piccola diventa l'immagine, più dettagli si perdono, fino a quando non si avvicina alla fine, quando non è visibile altro che una sfocatura di pixel grigi.

Il livello di dettaglio, o semplicemente LOD, viene utilizzato per determinare quale livello mip-map (o livello di dettaglio) deve essere selezionato per strutturare l'oggetto. Il LOD deve corrispondere al numero di texel applicati per pixel. Ad esempio, se la texture si verifica con un rapporto vicino a 1:1, il LOD sarà 0, il che significa che verrà utilizzato il livello mip-map con la risoluzione più alta. Se 4 texel si sovrappongono a un pixel, il LOD sarà 1 e verrà utilizzato il livello mip con risoluzione inferiore successiva. Solitamente, allontanandosi dal punto di vista, l'oggetto che merita più attenzione ha un valore LOD più alto.

Sebbene mipmapping risolva il problema degli errori di "aliasing della profondità", il suo utilizzo può introdurre altri artefatti. Man mano che l'oggetto si allontana dal punto di vista, c'è una transizione da un livello di mappa mip basso a uno alto. Quando un oggetto è in uno stato di transizione da un livello mip-map a un altro, appare un tipo speciale di errore di rendering, noto come "mip-banding" - banding o layering, ad es. confini di transizione chiaramente distinguibili da un livello mip-map all'altro.

Riso. 13.31. Il nastro rettangolare è costituito da due triangoli strutturati con un'immagine ondulata, dove gli artefatti "mip-banding" sono indicati da frecce rosse.

Il problema degli errori di "mip-banding" è particolarmente acuto nell'animazione, poiché l'occhio umano è molto sensibile agli spostamenti e può facilmente notare il luogo di una netta transizione tra i livelli di filtraggio quando ci si sposta attorno a un oggetto.

Filtraggio trilineare(filtro trilineare) è il terzo metodo che rimuove gli artefatti di "mip-banding" che si verificano quando viene utilizzata la testurizzazione mip. Con il filtro trilineare, per determinare il colore di un pixel, viene preso il valore di colore medio di otto texel, quattro di due trame vicine e, come risultato di sette operazioni di fusione, viene determinato il colore del pixel. Quando si utilizza il filtro trilineare, è possibile visualizzare un oggetto strutturato sullo schermo con transizioni fluide da un livello mip al successivo, che si ottiene determinando il LOD interpolando due livelli mip-map adiacenti. Risolvendo così la maggior parte dei problemi legati al mip-texturing e agli errori dovuti al calcolo errato della profondità della scena ("aliasing di profondità").

Riso. 13.32. Mappa MIP piramidale

Di seguito è mostrato un esempio di utilizzo del filtro trilineare. Anche in questo caso, viene utilizzato lo stesso rettangolo, strutturato con un'immagine simile a un'onda, ma con transizioni fluide da un livello mip all'altro grazie all'uso del filtro trilineare. Notare l'assenza di errori di rendering evidenti.

Riso. 13.33. Rettangolo con texture a onda reso utilizzando mipmapping e filtraggio trilineare.

Esistono diversi modi per generare trame MIP. Uno è semplicemente prepararli in anticipo utilizzando pacchetti grafici come Adobe PhotoShop. Un altro modo è generare trame MIP al volo, ad es. durante l'esecuzione del programma. Le texture pre-MIP significano un ulteriore 30% di spazio su disco delle texture nell'installazione del gioco base, ma consentono un controllo più flessibile sulla loro creazione e consentono di aggiungere effetti diversi e dettagli aggiuntivi a diversi livelli MIP.

Si scopre che il mipmapping trilineare è il meglio che può essere?

Ovviamente no. Si può notare che il problema non è solo nel rapporto tra dimensioni pixel e texel, ma anche nella forma di ciascuno di essi (o, per essere più precisi, nei rapporti di forma).

Il metodo mipmapping funziona meglio per i poligoni che sono direttamente "faccia a faccia" con il punto di vista. Tuttavia, i poligoni obliqui rispetto al punto di vista distorcono la trama di sovrapposizione in modo che i pixel possano essere sovrapposti con regioni di aspetto diverso e di forma quadrata dell'immagine della trama. Il metodo di miptexturing non tiene conto di ciò e provoca l'effetto di sfocare troppo l'immagine della texture, come se fossero stati utilizzati i texel sbagliati. La soluzione a questo problema è campionare più texel che compongono la trama e questi texel dovrebbero essere scelti tenendo conto della forma "mappata" del pixel nello spazio della trama. Questo metodo è chiamato filtraggio anisotropico("filtraggio anisotropico"). Il mip-texturing regolare è chiamato "isotropico" (isotropico o uniforme) perché filtriamo sempre insieme aree quadrate composte da texel. Il filtraggio anisotropico significa che la forma dell'area texel che utilizziamo cambia a seconda delle circostanze.

Descrizione degli algoritmi di texturing: filtraggio delle texture

Filtraggio delle texture

Di recente, le aziende di computer grafica 3D si sono costantemente impegnate per aumentare i dettagli e la qualità dell'immagine nel rendering del computer. Nuove tecnologie e architetture di rendering 3D vengono costantemente sviluppate, migliorati e modernizzati algoritmi di compressione per aumentare la larghezza di banda della memoria e anche l'architettura della memoria sta subendo modifiche. Sfortunatamente, il divario tra le idee avanzate nella grafica 3D e i normali PC è piuttosto ampio: realismo nei giochi moderni, ecc. realizzato utilizzando tecnologie sviluppate 1-2 anni fa. Inoltre, la potenza dei normali PC è molto limitata, motivo per cui per i giochi vengono utilizzati algoritmi abbastanza semplici, di cui parleremo in questo articolo: si tratta di texture e, più in dettaglio, di filtraggio delle texture.

Se avessimo un computer ideale con prestazioni di gran lunga superiori a quello attuale, saremmo in grado di visualizzare un'immagine in tempo reale con una resa molto realistica. Sarebbe possibile contare milioni, persino miliardi di pixel, affinché ognuno di essi imposti il ​​proprio colore: in questo caso, l'immagine semplicemente non può essere distinta dal video reale. Ma sfortunatamente, finora questi sono solo sogni: è ancora troppo difficile per i computer esistenti elaborare simultaneamente il disegno di oggetti mentre si spostano, ecc. Inoltre, finora c'è una catastrofica mancanza di larghezza di banda della memoria. Per garantire una buona qualità nelle applicazioni 3D, sono in fase di sviluppo tecnologie che semplificano il processo di disegno di un'immagine.

Una delle tecnologie più utilizzate che semplificano il calcolo di un'immagine con una qualità sufficientemente buona è la texturizzazione. Una texture è un'immagine 2D sovrapposta a un oggetto 3D oa qualsiasi superficie. Prendiamo come esempio la seguente situazione: sei uno sviluppatore e vuoi che l'utente veda un muro di mattoni. Viene creata una cornice da parete 3D e puoi selezionare i mattoni separatamente. Ora prendiamo un'immagine 2D di un mattone e la mettiamo su un mattone in una cornice 3D, e così via: l'intero muro. Il risultato è un normale muro 3D e il chip grafico non ha bisogno di disegnare e calcolare ogni pixel: calcola le coordinate del wireframe 3D, a cui è allegata l'immagine 2D.

C'è un altro concetto nella strutturazione che dovrebbe essere discusso. Quando si sovrappone un'immagine 2D, viene suddivisa in molti frammenti colorati. Questo viene fatto per ridimensionare l'oggetto: la trama è bidimensionale e l'oggetto tridimensionale dovrebbe cambiare quando ci si avvicina o si allontana. Anche la trama deve cambiare per mantenere realismo e qualità. Quindi, la trama è divisa in molti frammenti colorati, che sono chiamati texel (texel - elementi di trama). In futuro, ad esempio, quando ci si avvicina a un oggetto, non c'è bisogno di ricaricare una nuova texture: i texel vengono prelevati dalla texture originale e aumentati. Ovviamente la qualità si perde, ma rimane ad un livello abbastanza alto, inoltre, con questo approccio, il processore grafico e la memoria vengono notevolmente scaricati.

Mip-Mapping (mappatura mip)

Il movimento è una caratteristica di tutti gli oggetti renderizzati; anche se l'oggetto stesso è fermo, cambia comunque quando l'angolo di visuale del personaggio cambia a causa del suo movimento. Pertanto, anche la trama posizionata sull'oggetto deve muoversi: ciò comporta alcune complicazioni e un'elaborazione aggiuntiva. Ma cosa succede se guardiamo l'oggetto da qualche angolazione, ad esempio il pavimento? Il pavimento può occupare una vasta area e, per mantenere il realismo, più è lontano da noi, più piccoli sono i suoi componenti (ad esempio le piastrelle). Per garantire ciò, la trama deve essere ridotta in un certo modo. Sfortunatamente, la semplice modifica della risoluzione delle trame può portare a un effetto piuttosto spiacevole, quando una trama si fonde visivamente con un'altra. Un altro brutto effetto può verificarsi se il texel è più grande del numero di pixel richiesto. Questo accade quando si osserva una trama molto lontana. Entrambe le situazioni si verificano quando viene applicato l'anti-alias tradizionale. E qui ci sono esempi reali di questi casi: in questo abstract non ci sono

Per mitigare tali situazioni è stato creato il mip-mapping (mip-mapping). Questa tecnologia funziona in modo molto semplice: la trama originale viene generata in diverse situazioni in modo tale da visualizzare correttamente la trama a diverse distanze e con diversi angoli di vista. Quando ti avvicini a un oggetto, viene mostrata una trama con una risoluzione più alta e quando ti allontani, con una bassa. Pertanto, la mappatura mip migliora la qualità dell'immagine e riduce la frastagliatura. Di seguito sono riportate le stesse immagini, solo con la mappatura mip abilitata: non ci sono immagini in questo abstract.

Hai notato un miglioramento della qualità? È particolarmente evidente nella seconda immagine con un motivo giallo-rosso. Nota: non solo la qualità delle texture lontane è migliorata: anche quelle vicine hanno un aspetto molto migliore. In generale, l'immagine con mip-mapping sembra molto meglio che senza: non ci sono molte distorsioni e distorsioni che si notano durante la normale visualizzazione.

Filtrazione

La texture a punti è, forse, il tipo principale di texture. Nella texture puntiforme, un singolo pezzo di texture (texel) viene selezionato e utilizzato come valore di colore per i pixel. Il fatto è che questo metodo comporta una certa imprecisione e, di conseguenza, un deterioramento della qualità dell'immagine. Un'immagine del genere con gli standard esistenti è semplicemente inaccettabile. Di seguito è riportata una texture che è stata elaborata mediante texture a punti (parte inferiore dell'immagine). L'immagine mostra il deterioramento teorico della qualità quando si sceglie una dimensione texel troppo grande.

Filtrazione Bilineare

Un'altra tecnica di texturing è il filtraggio bilineare. Il principio di funzionamento di questo metodo di texturing è molto simile al metodo point, ma in contrasto con esso, non viene utilizzata l'immagine intera, ma un blocco di 4 texel per selezionare il colore dei pixel. Pertanto, viene aumentata la precisione nella scelta del colore del pixel e si ottiene una migliore resa dei singoli piccoli dettagli dell'immagine.

Questa immagine mostra un esempio di rendering di un'immagine utilizzando il filtro bilineare e la mappatura mip.

Filtraggio trilineare

Il filtraggio bilineare ha ricevuto la sua seconda nascita sotto forma di filtraggio trilineare, il cui principio è esattamente lo stesso, ma viene utilizzato un algoritmo di calcolo migliorato, che aumenta la precisione del disegno. Il filtro trilineare, come il filtro bilineare, utilizza blocchi di 4 texel, proprio come nel filtro bilineare, l'immagine viene normalizzata, quindi l'immagine viene normalizzata dal blocco limite di 4 texel. L'ultimo passaggio è analizzare il confine di entrambi i blocchi, a seguito del quale vengono corretti eventuali errori e incongruenze sul confine di questi 2 blocchi. Nel filtro bilineare, è abbastanza comune vedere le linee che appaiono ai confini dei blocchi che scompaiono quando viene utilizzato il filtro trilineare. Inoltre, quando si utilizza il filtro trilineare, le distorsioni e le irregolarità vengono rimosse meglio quando ci si sposta e quando si cambia l'angolo di campo. Di seguito è riportato un diagramma dell'utilizzo del filtro trilineare ed è in azione.

Va notato che alcuni difetti a distanza decente si verificano anche quando si utilizza il filtraggio trilineare. Questo perché è stato originariamente progettato per ridurre la distorsione tra i livelli mip-map.

L'immagine si ottiene solo ad angoli di visuale più diretti, con una resa reale, le forme geometriche dell'oggetto possono essere violate. Guarda l'immagine di SGI:

Filtraggio anisotropico

La forma degli oggetti con texture, sia con filtro bilineare che trilineare, può essere distorta, perché entrambi questi filtri sono isotropi - l'immagine viene filtrata in una forma specifica - a forma di quadrato. La maggior parte degli oggetti formati non si adatta a questa forma definita e immutabile: per la loro elaborazione di alta qualità, è necessario utilizzare un altro tipo di filtraggio: anisotropico. Anisotropia è composta da diverse parole in latino e significa letteralmente "Ani" - non "iso" - una certa forma e "tropia" - un modello - cioè modelli indeterminati. Il nome di questa tecnologia riflette la sua implementazione tecnica. Il filtraggio anisotropico di solito opera con almeno 8 texel, in tutte le direzioni dei livelli mip-map, utilizzando in anticipo un modello di forma indefinita. Di conseguenza, il rumore e la distorsione degli oggetti vengono rimossi e l'immagine nel suo insieme è di migliore qualità.

Confronta le due immagini: nella prima è stato utilizzato il filtraggio anisotropico di 16 texel, con l'aiuto del quale sono scomparse le distorsioni tra i livelli di mip-map e il rumore dell'immagine, nella seconda immagine è stato disattivato il filtraggio anisotropico.

Prestare attenzione alle grandi distanze dell'immagine: le differenze tra il filtraggio anisotropo e quello isotropo sono evidenti. La qualità della trama con filtro anisotropico rimane simile all'originale anche a lunghe distanze; con il filtraggio isotropico, c'è la tendenza a "smussare" l'immagine, di conseguenza, la qualità è persa. Il filtraggio anisotropico, come il filtraggio trilineare, riduce la rugosità della trama. Ma quando si utilizza il filtraggio anisotropico, la qualità è ancora migliore, perché. per utilizza un numero molto maggiore di blocchi per il confronto. Ecco un altro esempio che mostra il filtraggio anisotropico in azione:

Per molto tempo, le schede grafiche di livello consumer non hanno mostrato la qualità dell'immagine possibile con il filtraggio anisotropico. Con l'avvento di chip grafici come NVIDIA GeForce2 e ATI Radeon, è diventato possibile utilizzare il filtraggio anisotropico, che analizza blocchi di 16 texel nell'hardware. Le schede video GeForce3 e Radeon 8500 utilizzano già un filtro anisotropico a 32 texel. L'immagine seguente mostra un'immagine simile a quella che si otterrebbe con un filtraggio anisotropico professionale a 64 texel:

Futuro…

Nel prossimo futuro, il filtraggio anisotropico sarà utilizzato sempre più frequentemente. Per i chip grafici di prossima generazione, sono già in fase di sviluppo nuove tecnologie per eliminare urti e angolarità negli oggetti. Nel prossimo futuro vedremo un'immagine elaborata utilizzando blocchi multitexel. Ci saranno schede video in grado di supportare hardware per il filtraggio anisotropico utilizzando unità da 128 texel. La qualità dell'immagine sarà notevolmente migliorata e le prestazioni aumenteranno.

Inoltre:

Anti-aliasing e filtraggio anisotropico oggi: cosa, dove e quanto? Prima parte

In effetti, un articolo con un titolo del genere potrebbe iniziare con una banalità, come "ogni utente di computer ha mai visto il lavoro di tali tecniche di miglioramento delle immagini 3D come l'anti-aliasing o il filtro anisotropico". O questo: "mentre le nostre navi solcano lo spazio, i programmatori NVIDIA e ATI sono alla ricerca di modi per migliorare le prestazioni delle note tecniche di miglioramento delle immagini". Il secondo luogo comune ha molte più possibilità di essere vivo, nel senso che è già intrigante con una specie di parvenza del fatto che indagheremo la questione di chi e come "ottimizzato" nei loro piloti.

Tuttavia, forse, faremo a meno dei luoghi comuni. Perché è molto più interessante speculare sul tema di quante tecniche di miglioramento dell'immagine sono diventate disponibili ora per un semplice utente, o, sarebbe più corretto dire, per un semplice giocatore. Oggi i giocatori sono i consumatori più attivi di tutte le nuove tecnologie e innovazioni in 3D. In generale, oggi un potente acceleratore 3D è necessario solo per giocare agli ultimi giochi per computer con potenti motori 3D che funzionano con shader complessi di varie versioni. Ora non sorprenderai nessuno con il gioco con pixel shader versione 2.0: nel mondo dei giochi, un tale divertimento sta lentamente diventando un evento quotidiano. La maggior parte dei giochi viene ancora rilasciata sul modello shader 1.1 perché la cosa più importante per gli sviluppatori di giochi è assicurarsi che il loro gioco funzioni discretamente bene sull'hardware che la stragrande maggioranza dei giocatori ha. Realizzare un motore super sofisticato ora è un grosso spreco e persino un rischio. Giudicate voi stessi: lo sviluppo di un motore della classe Doom 3 o Half-Life 2 (beh, aggiungiamo qui il pioniere degli shader 2.0 in tutto il suo splendore, nato da un'idea di Crytek - FarCry, per ottenere una vera onnipresente trinità) prende un'enorme quantità di tempo, che porta allo sviluppo ulteriori difficoltà: è necessario sviluppare il motore in modo tale che le innovazioni e gli sviluppi originali non diventino obsoleti durante la creazione del motore.

Se dubiti che ciò possa accadere, allora è completamente vano: nel caso di Half-Life 2, tutto era esattamente così (e Doom 3 è stato sviluppato tenendo d'occhio GeForce 3 ed è uscito quando GeForceFX). Inoltre, lo sviluppo di motori di questa classe è associato a costi di sviluppo elevati: i programmatori di talento non sono economici oggi. E ultimamente molta attenzione (anche più del necessario) è stata riservata, per così dire, alla "politica" relativa ai motori di gioco.

Sì, è vero, avete sentito bene, il 3D ha da tempo una sua politica basata, ovviamente, sugli interessi di due colossi della struttura dei processori grafici: ATI e NVIDIA. Il Canada severo sta combattendo da tempo contro la soleggiata California e finora non c'è fine in vista di questo confronto, che, ovviamente, va a vantaggio solo di noi consumatori ordinari. Ora non è sufficiente sviluppare un motore interessante: per avere successo, devi ottenere il supporto della diva californiana NVIDIA o della canadese ATI, fortunatamente, ora sia il primo che il secondo hanno i propri programmi di affiliazione per gli sviluppatori di giochi. NVIDIA chiama un programma del genere "Il modo in cui è pensato per essere giocato", mentre ATI lo chiama "Get it in the game". Tutto è abbastanza eloquente e chiaro: NVIDIA dice che "devi giocare in questo modo", e per niente così, e ATI assicura che qualunque cosa vogliamo, entreremo sicuramente nel gioco stesso. Abbastanza allettante, non è vero? I motori della classe "Doom 3" e "Half-Life 2" (nel caso del quest'ultimo, il motore si chiama Source, tuttavia per facilità di percezione lo chiameremo "Half-Life 2" per mantenere l'associazione corretta) e sono inizialmente sviluppati in stretta collaborazione con ingegneri dei produttori di chip grafici in modo che i giochi funzionino al meglio sul GPU di un unico produttore.

Pertanto, come possiamo vedere, è molto problematico fare rivoluzioni nel campo dei nuovi motori grafici 3D, e quindi proprio queste rivoluzioni nel mondo dei motori di gioco non accadono così spesso. Tuttavia, la qualità dell'immagine deve essere migliorata in qualche modo. Se semplicemente aumentiamo il numero di poligoni nel fotogramma, ottenendo così un'immagine visivamente più bella per la percezione, alla fine arriveremo alla conclusione che l'acceleratore non sarà in grado di elaborare la scena con un frame rate accettabile, ma all'immagine mancherà ancora qualcosa. Le scale di pixel rimarranno comunque e la qualità delle trame non migliorerà. Esistono modi meno ovvi per migliorare la qualità di un'immagine tridimensionale su un monitor: filtro anisotropico e anti-aliasing. Queste tecniche di miglioramento dell'immagine non hanno nulla a che fare con il motore 3D stesso e, naturalmente, non possono rendere il motore più bello, ma possono lavorare con trame e immagini in modo tale che in uscita, cioè sul monitor, possiamo vedere un'immagine visivamente più bella e morbida.

È nel campo del filtraggio anisotropico e dell'anti-alias che un numero enorme di ottimizzazioni dei driver viene effettuato sia da NVIDIA che da ATI. Le aziende hanno approcci e politiche diversi per quanto riguarda queste stesse ottimizzazioni, a volte non del tutto eque nei confronti degli utenti. Tuttavia, il nostro articolo è progettato solo per capire cosa è buono e cosa è male negli approcci di entrambi i produttori di GPU e cosa oggi può migliorare la qualità dell'immagine nei giochi 3D.

Cos'è l'anti-aliasing e con cosa si mangia?

Prima di iniziare ad entrare nei dettagli su un argomento così scottante come l'ottimizzazione dell'anti-aliasing e vari tipi di filtraggio delle texture, non fa male (e ancor di più è necessario) acquisire alcune conoscenze teoriche sull'argomento della nostra conversazione di oggi.

Quindi, antialiasing: cos'è e perché è necessario. Innanzitutto, nella parola "anti-aliasing" è necessario evidenziare la sua parte - "anti". È molto chiaro che questa parte della parola implica che il fenomeno stesso dell'"anti-aliasing" mira a combattere qualcosa. Come puoi immaginare, nel nostro caso - con "alias". Pertanto, per noi in questo momento è importante capire chiaramente cosa sia il famigerato "aliasing".

Per cominciare, devi capire chiaramente che l'immagine che tu ed io possiamo guardare quotidianamente sugli schermi dei nostri monitor è costituita dalle cosiddette piccole particelle, che comunemente vengono chiamate pixel. Una buona analogia in questo senso è l'esempio della carta a quadretti. L'immagine sul monitor è la stessa carta a quadretti, solo in questo caso sono molto, molto piccoli. Se dicono che la risoluzione dello schermo è 1024 x 768 con colore a 32 bit, significa che 1024 punti si adattano orizzontalmente sul monitor e 768 punti verticalmente.Inoltre, ogni punto può essere dipinto con un colore disponibile nella tavolozza a 32 bit . Al momento, il colore a 32 bit è il limite di ciò che possiamo ottenere sullo schermo di un computer. Le migliori menti dell'umanità (come Carmack) parlano già della necessità di passare al colore a 64 bit e sottolineano gli ovvi svantaggi della tavolozza a 32 bit. Un tempo, quando si passava dal colore a 16 bit a quello a 32 bit, questa esigenza era chiaramente giustificata e c'erano ragioni reali per cui valeva la pena passare a 32 bit. Il passaggio al colore a 64 bit oggi è più che eccessivo. Proprio come nel caso di 16 e 32 bit, si dovrà aspettare molto tempo prima che gli acceleratori di tutti i livelli siano in grado di elaborare il colore a 64 bit a una velocità accettabile.

La stragrande maggioranza degli articoli che toccano i principi dell'imaging 3D in un modo o nell'altro e in cui viene discusso l'anti-aliasing sono pieni di un esempio semplice, ma allo stesso tempo più efficace, che può essere utilizzato per capire abbastanza bene cosa l'anti-aliasing è. Guarda la scritta ingrandita "Aggiorna", realizzata in Word'e, e poi semplicemente ingrandita in Photoshop. Non sembra molto buono, vero? Ai lati delle lettere è visibile il cosiddetto pettine o, come viene anche chiamato, "scala". In sostanza, questo stesso "pettine" o "scala" è aliasing. Puoi immaginare un altro esempio sotto forma di un oggetto geometrico, ad esempio una piramide. Lungo i suoi bordi è ben visibile anche lo stesso “pettine”. Ora guarda un'altra immagine della stessa piramide, ma con una risoluzione doppia. Sembra già molto meglio e il "pettine" è quasi invisibile. Come accennato in precedenza, questo effetto, che attenua il "pettine", è stato ottenuto grazie al fatto che abbiamo aumentato la risoluzione di 2 volte.

Cosa significa questo? Supponiamo di aver reso una piramide con una risoluzione di 200x200 pixel (sopra abbiamo già chiarito in dettaglio la questione di cosa sono i pixel e perché sono necessari). Abbiamo aumentato il numero di punti in verticale e in orizzontale esattamente di 2 volte, ovvero abbiamo ottenuto un'immagine con una risoluzione di 400 punti in verticale e 400 punti in orizzontale. Ciò significa anche che il numero di punti sul nostro oggetto che era nella scena è raddoppiato. Che cosa ha dato in relazione al nostro effetto di aliasing? Ovviamente, è diventato minimo, cioè smussato - dopotutto, anche il numero di punti lungo i bordi dell'oggetto è raddoppiato. La parola "appiattito" è la chiave qui. Dopotutto, l'anti-aliasing è chiamato anti-aliasing in un modo diverso, che riflette l'essenza stessa della tecnologia che leviga la stessa "scala" lungo i bordi degli oggetti tridimensionali.

In effetti, dopo aver aumentato la risoluzione, la "scala" dal bordo della piramide non è andata da nessuna parte: rimane lì come prima. Tuttavia, a causa del fatto che abbiamo aumentato la risoluzione (che significa un aumento dei punti che vengono spesi per visualizzare la piramide), l'effetto "scala" è stato smussato a causa delle peculiarità della visione umana, che non vede più pixel a più chiaramente il bordo dell'oggetto. È assolutamente chiaro che se si aumenta sempre di più la risoluzione, l'effetto dell'aliasing verrà osservato in misura sempre minore. Più precisamente, l'occhio umano inizierà a notarlo in misura sempre minore, poiché l'effetto di aliasing stesso non andrà da nessuna parte. Ma è anche assolutamente chiaro che non sarà possibile aumentare la risoluzione all'infinito, perché i monitor, anche i più moderni, hanno risoluzioni finite, e non così grandi, che non ci permetteranno di aumentare costantemente il numero di punti. In poche parole, l'effetto anti-aliasing più semplice può essere ottenuto semplicemente aumentando la risoluzione dello schermo, ma la risoluzione non può essere aumentata indefinitamente. Sembrerebbe che non ci sia via d'uscita? Tuttavia, in realtà è stato trovato, e si basa sulla stessa caratteristica della visione umana.

Ciò è stato ottenuto grazie alle transizioni fluide dei colori nell'immagine. In effetti, il miglioramento visivo dell'immagine non è dovuto ad un aumento fisico della risoluzione, ma dovuto, per così dire, ad un aumento della risoluzione del colore. In questo articolo non descriveremo gli algoritmi per il calcolo di questi punti e non approfondiremo i calcoli matematici, ma parleremo solo del principio di funzionamento di tale anti-aliasing. La scala ai bordi degli oggetti è visibile solo perché molto spesso i bordi degli oggetti tridimensionali risaltano in modo abbastanza forte a colori dal resto dell'immagine e rappresentano linee sottili di un pixel. Questo può essere compensato posizionando un numero di punti con colori calcolati dalla formula dei valori di colore del bordo stesso e dei punti accanto a quel bordo. Cioè, se il bordo dell'oggetto è nero e lo sfondo è bianco, il punto in più accanto alla linea del bordo nero diventerà grigio. Più sono questi punti aggiuntivi vicino al bordo di qualsiasi oggetto 3D, più i suoi bordi appaiono lisci e meno visibile è la scala. Questo metodo è chiamato edge antialiasing. La qualità dell'anti-aliasing impostata nel driver della scheda video, come ad esempio: 2x, 4x, 6x, 8x, indica il numero di pixel extra da mettere intorno alla linea che necessita di anti-alias.

Filtraggio anisotropico: un mini programma educativo per principianti

Per capire cos'è il filtraggio, devi avere alcune conoscenze di base. Abbiamo già scoperto che l'immagine sullo schermo è composta da molti pixel, il cui numero è determinato dalla risoluzione. Per visualizzare un'immagine a colori, la tua scheda video deve determinare il colore di ogni pixel. Il suo colore è determinato sovrapponendo immagini di texture su poligoni che si trovano nello spazio tridimensionale. Le immagini di texture sono composte da pixel, o meglio, texel, ovvero un texel è un pixel di un'immagine bidimensionale sovrapposta a una superficie 3D. Il dilemma principale è: quali texel o texel determinano il colore di un pixel sullo schermo. Per rappresentare il problema del filtraggio, immaginiamo un'immagine. Diciamo che il tuo schermo è una lastra con molti fori rotondi, ognuno dei quali è un pixel. Per determinare quale colore ha un pixel rispetto alla scena 3D dietro la lastra, guarda semplicemente attraverso uno dei fori.

E ora immaginiamo un raggio di luce che passa attraverso uno dei fori e colpisce il nostro poligono strutturato. Se quest'ultimo è parallelo al foro attraverso il quale passa il raggio di luce, il punto luminoso avrà la forma di un cerchio. Altrimenti, se il poligono non è parallelo al foro, il punto luminoso è distorto e ha una forma ellittica. Pensiamo che molti lettori in questo momento si pongano una domanda: "come sono tutte queste lastre, un buco, un raggio di luce legati al problema della determinazione del colore di un pixel?" Attenzione! Frase chiave: tutti i poligoni situati nel punto luminoso determinano il colore del pixel. Tutto quanto sopra è la conoscenza di base necessaria per comprendere i vari algoritmi di filtraggio.

E ora, per capire meglio a cosa serve il filtraggio, consideriamo i processi in corso usando l'esempio della leggendaria Quake 3 Arena. Immagina una specie di corridoio con molte piazze e vari ornamenti (per fortuna, questo è abbastanza in Quake 3 Arena). L'ornamento all'inizio del corridoio è molto dettagliato e verso la fine del corridoio (orizzonte), gli elementi dell'ornamento diventano sempre più piccoli, ad es. vengono visualizzati con meno pixel. Di conseguenza, vengono persi dettagli come le cuciture tra gli elementi ornamentali, il che, di conseguenza, porta a un deterioramento della qualità dell'immagine.

Il problema è che il driver della scheda grafica non sa quali dettagli nella trama sono importanti.

Campionamento puntuale

Il campionamento del punto è il modo più semplice per determinare il colore di un pixel. Questo algoritmo si basa su un'immagine texture: viene selezionato un solo texel, che è il più vicino al centro del punto luminoso, e da esso viene determinato il colore del pixel. Non è difficile intuire che questo non è assolutamente vero. Innanzitutto, il colore di un pixel è determinato da più texel e ne abbiamo scelto solo uno. In secondo luogo, la forma del punto luminoso può cambiare e l'algoritmo non ne tiene conto. Ma invano!

Lo svantaggio principale del campionamento in streaming è il fatto che quando il poligono è vicino allo schermo, il numero di pixel sarà molto più alto del numero di texel, il che influenzerà notevolmente la qualità dell'immagine. Il cosiddetto effetto di blocco, come crediamo, molti potrebbero osservare nei vecchi giochi per computer, ad esempio, nello stesso leggendario Doom.

Il campionamento puntuale ha un vantaggio. A causa del fatto che il colore dei pixel è determinato da un solo texel, questo metodo non è critico per la larghezza di banda della memoria e questo dà automaticamente a questo metodo di filtraggio enormi dividendi, nel senso che pochissime risorse dell'acceleratore 3D vengono spese per filtrare secondo questo schema . .

Filtraggio bilineare

Il filtraggio bilineare è un filtraggio bilineare basato sul metodo di utilizzo della tecnica di interpolazione. Per determinare i texel desiderati, viene utilizzata la forma principale del punto luminoso, ovvero un cerchio. Nel nostro esempio con un cerchio, quest'ultimo è approssimato di 4 texel. Come puoi vedere, qui le cose vanno un po' meglio che con il campionamento dei punti. Il filtraggio bilineare utilizza già 4 texel.

L'immagine è migliore, non c'è blocco, ma i poligoni vicini allo schermo sembrano sfocati, e ciò è dovuto al fatto che l'interpolazione richiede più texel dei quattro disponibili.

La vaghezza non è affatto il problema principale del filtraggio bilineare. Il fatto è che l'approssimazione viene eseguita correttamente solo per oggetti posti paralleli allo schermo o al punto di osservazione, mentre il 99% degli oggetti in qualsiasi gioco per computer non sono paralleli al punto di osservazione. Da ciò possiamo concludere che il 99% degli oggetti verrà approssimato in modo errato. Prendi, ad esempio, il nostro cerchio: il poligono non è parallelo al punto di osservazione, quindi dobbiamo approssimare l'ellisse e approssimare il cerchio, il che è estremamente sbagliato. Inoltre, il filtraggio bilineare è molto più impegnativo sulla larghezza di banda dei dati di memoria, che, in generale, è più che logico, dato che il filtraggio bilineare utilizza già 4 texel per determinare il colore di un pixel.

A giudicare dalle informazioni sui forum e dagli articoli su Internet, ATi è complicato con il filtraggio trilineare delle texture sul nuovo processore grafico X800. Tuttavia, ci sono anche ATi che difendono ferocemente. In generale, tali discussioni ci ricordano uno scandalo vecchio di un anno che coinvolgeva nVidia.

Il motivo di una discussione così accesa è stato un articolo sul sito tedesco Computerbase. Ha mostrato come ATi utilizzi il filtraggio delle texture trilineare ottimizzato, spesso indicato come "brilineare" (brilineare) a causa di una combinazione di filtraggio bilineare e trilineare, nei processori grafici Radeon 9600 e X800. La notizia è stata davvero sorprendente, poiché ATi ha sempre parlato di utilizzare un vero filtro trilineare.

Ma com'è davvero la situazione? È un'ottimizzazione, un trucco o solo una decisione intelligente? Per giudicare, dobbiamo approfondire la tecnologia dei vari metodi di filtraggio. E proprio a questo sarà dedicata la prima parte dell'articolo, inoltre presenteremo alcune tecnologie in maniera molto semplificata per poterle inserire in poche pagine. Quindi, diamo un'occhiata alle funzioni di filtraggio di base e fondamentali.

Ci sarà una continuazione? Forse, perché la controversia sul filtraggio briline recentemente scoperto sulle schede Radeon 9600 e X800 non si placa. Va riconosciuto ad ATi il fatto che la qualità dell'immagine delle carte non risente visivamente a causa di questo filtraggio. Almeno non abbiamo esempi contrari. Mentre il filtraggio della brilina si manifesta in condizioni di laboratorio create artificialmente. Allo stesso tempo, ATi non consente il filtraggio trilineare completo per le carte citate, adattativo o meno. A causa del nuovo filtraggio, i valori prestazionali nei test non mostrano il pieno potenziale dell'X800, poiché i valori FPS sono ottenuti dopo l'ottimizzazione, il cui impatto sulla velocità è difficile da valutare. E la parola "adattivo" lascia un retrogusto amaro. ATi non ci ha fornito informazioni sul meccanismo del driver e ha affermato più volte che la scheda fornisce un filtraggio trilineare completo. È stato solo con la suddetta divulgazione che ATi ha ammesso che il filtraggio era stato ottimizzato. Speriamo che in altri luoghi non ci sia un tale driver di "adattabilità".

Tuttavia, i produttori si stanno lentamente ma inesorabilmente verso il momento in cui il livello di tolleranza sarà superato. "Adattabilità" o la definizione dell'applicazione avviata non consente ai programmi di test di mostrare le effettive prestazioni della carta nei giochi. La qualità dell'immagine nel gioco può variare da un driver all'altro. I produttori sono liberi di giocare con l'autista, a seconda delle prestazioni di cui il reparto marketing ha bisogno al momento. Ebbene, il diritto del consumatore di sapere cosa effettivamente acquista non interessa più a nessuno qui. Tutto questo è lasciato ai media: che compiano la loro missione educativa. E i trucchi di filtraggio di cui abbiamo discusso nel nostro articolo sono solo i più famosi di questi casi. Cos'altro è nascosto alla nostra attenzione, possiamo solo intuirlo.

Ogni produttore decide autonomamente quale livello di qualità dell'immagine fornirà come standard. Tuttavia, i produttori dovrebbero documentare le ottimizzazioni che utilizzano, soprattutto se sono nascoste da test noti, come nel recente esempio ATi. La soluzione è ovvia: rendi possibile disattivare le ottimizzazioni! Quindi il consumatore sarà in grado di decidere da solo cosa è più importante per lui: più FPS o una migliore qualità. Non puoi nemmeno contare su Microsoft come arbitro. I test WHQL non definiscono molte cose e possono essere facilmente aggirati: conosci il significato della parola "adattivo"?

Ottimizzazioni dei filtri attualmente note
ATi nVidia
Trilineare
ottimizzazione
R9600
X800
GFFX5xxx
(GF 6xxx)*
Ottimizzazione angolare
filtraggio anisotropico
R9xxx
X800
GF 6xxx
Adattivo
filtraggio anisotropico
R9xxx
X800
GFFX5xxx
GF 6xxx
Ottimizzazione della fase R9xxx
X800
GFFX5xxx
Ottimizzazione LOD R9xxx
X800(?)

In generale, tali discussioni hanno i loro vantaggi: gli acquirenti e possibilmente i clienti OEM iniziano ad ascoltare il problema. Non abbiamo dubbi che la mania delle ottimizzazioni sfrenate continuerà. Tuttavia, un raggio di luce è apparso nel regno oscuro, cosa che è stata chiaramente dimostrata da nVidia con la sua ottimizzazione trilineare. Speriamo nei prossimi passi!

CATEGORIE

ARTICOLI POPOLARI

2022 "kingad.ru" - esame ecografico di organi umani