10.10.2019

Filtrazione anisotropa: a cosa serve, cosa influenza, uso pratico


IN giochi moderni Per migliorare l'immagine vengono utilizzati sempre più effetti grafici e tecnologie. Tuttavia, gli sviluppatori di solito non si preoccupano di spiegare cosa stanno facendo esattamente. Quando non disponi del computer più potente, devi sacrificare alcune funzionalità. Proviamo a vedere cosa significano le opzioni grafiche più comuni per capire meglio come liberare risorse del PC con un impatto minimo sulla grafica.

Filtraggio anisotropico
Quando una texture viene visualizzata sul monitor non nella sua dimensione originale, è necessario inserirvi pixel aggiuntivi o, al contrario, rimuovere quelli extra. Per fare ciò, viene utilizzata una tecnica chiamata filtraggio.


trilineare

anisotropo

Il filtraggio bilineare è l'algoritmo più semplice e richiede meno potenza di calcolo, ma produce anche i risultati peggiori. Trilineare aggiunge chiarezza, ma genera comunque artefatti. Il filtraggio anisotropico è considerato il metodo più avanzato per eliminare distorsioni evidenti su oggetti fortemente inclinati rispetto alla fotocamera. A differenza dei due metodi precedenti, combatte con successo l'effetto gradazione (quando alcune parti della texture sono sfocate più di altre e il confine tra loro diventa chiaramente visibile). Quando si utilizza il filtraggio bilineare o trilineare, la texture diventa sempre più sfocata all'aumentare della distanza, ma il filtraggio anisotropico non presenta questo inconveniente.

Data la quantità di dati elaborati (e potrebbero essere presenti molte texture a 32 bit ad alta risoluzione nella scena), il filtraggio anisotropico è particolarmente impegnativo. larghezza di banda memoria. Il traffico può essere ridotto principalmente attraverso la compressione delle texture, che ora viene utilizzata ovunque. In precedenza, quando non veniva praticato così spesso e la velocità effettiva della memoria video era molto inferiore, il filtraggio anisotropico riduceva significativamente il numero di fotogrammi. Sulle moderne schede video non ha quasi alcun effetto sugli fps.

Il filtraggio anisotropico ha una sola impostazione del fattore di filtro (2x, 4x, 8x, 16x). Più è alto, più le texture appaiono chiare e naturali. Di solito quando alto valore piccoli artefatti sono visibili solo sui pixel più esterni delle texture inclinate. I valori di 4x e 8x sono generalmente sufficienti per eliminare la maggior parte della distorsione visiva. È interessante notare che quando si passa da 8x a 16x, la penalità prestazionale sarà piuttosto piccola anche in teoria, poiché sarà necessaria un'ulteriore elaborazione solo per un piccolo numero di pixel precedentemente non filtrati.

Shader
Gli shader sono piccoli programmi in grado di produrre determinate manipolazioni con una scena 3D, ad esempio, modifica l'illuminazione, applica texture, aggiungi post-elaborazione e altri effetti.

Gli shader sono divisi in tre tipi: gli shader dei vertici funzionano con le coordinate, gli shader della geometria possono elaborare non solo i singoli vertici, ma anche intere forme geometriche costituite da un massimo di 6 vertici, gli shader dei pixel funzionano con i singoli pixel e i loro parametri.

Gli shader vengono utilizzati principalmente per creare nuovi effetti. Senza di essi, l'insieme di operazioni che gli sviluppatori potrebbero utilizzare nei giochi è molto limitato. In altre parole, l'aggiunta di shader ha permesso di ottenere nuovi effetti che di default non erano inclusi nella scheda video.

Gli shader funzionano in modo molto produttivo in modalità parallela, ed è per questo che i moderni adattatori grafici hanno così tanti processori stream, chiamati anche shader.

Mappatura della parallasse
Il parallax mapping è una versione modificata della famosa tecnica bumpmapping, utilizzata per aggiungere rilievo alle texture. La mappatura parallasse non crea oggetti 3D nel senso comune del termine. Ad esempio, un pavimento o un muro in una scena di gioco apparirà ruvido mentre in realtà è completamente piatto. L'effetto in rilievo qui si ottiene solo attraverso la manipolazione delle trame.

L'oggetto sorgente non deve essere piatto. Il metodo funziona su vari oggetti di gioco, ma il suo utilizzo è auspicabile solo nei casi in cui l'altezza della superficie cambia gradualmente. Le modifiche improvvise vengono elaborate in modo errato e sull'oggetto compaiono artefatti.

La mappatura parallasse consente di risparmiare in modo significativo le risorse di calcolo del computer, poiché quando si utilizzano oggetti analogici con una struttura 3D altrettanto dettagliata, le prestazioni degli adattatori video non sarebbero sufficienti per eseguire il rendering delle scene in tempo reale.

L'effetto viene spesso utilizzato su pavimenti in pietra, muri, mattoni e piastrelle.

Anti aliasing
Prima di DirectX 8, l'anti-aliasing nei giochi veniva eseguito utilizzando SuperSampling Anti-Aliasing (SSAA), noto anche come Full-Scene Anti-Aliasing (FSAA). Il suo utilizzo ha comportato un notevole calo delle prestazioni, per cui con il rilascio di DX8 è stato subito abbandonato e sostituito con Multisample Anti-Aliasing (MSAA). Sebbene questo metodo ha dato risultati peggiori, è stato molto più produttivo del suo predecessore. Da allora sono comparsi algoritmi più avanzati, come CSAA.

AA spento AA acceso

Considerando che negli ultimi anni le prestazioni delle schede video sono notevolmente aumentate, sia AMD che NVIDIA hanno nuovamente restituito il supporto alla tecnologia SSAA ai loro acceleratori. Tuttavia, non sarà possibile utilizzarlo nemmeno adesso nei giochi moderni, poiché il numero di fotogrammi/s sarà molto basso. SSAA sarà efficace solo nei progetti degli anni precedenti, o in quelli attuali, ma con impostazioni modeste per altri parametri grafici. AMD ha implementato il supporto SSAA solo per i giochi DX9, ma in NVIDIA SSAA funziona anche nelle modalità DX10 e DX11.

Il principio del livellamento è molto semplice. Prima che il fotogramma venga visualizzato sullo schermo, alcune informazioni vengono calcolate non nella loro risoluzione nativa, ma in quella ingrandita e multipla di due. Quindi il risultato viene ridotto alla dimensione richiesta e la "scala" lungo i bordi dell'oggetto diventa meno evidente. Maggiore è l'immagine originale e il fattore di smussamento (2x, 4x, 8x, 16x, 32x), minore sarà la presenza di frastagliature sui modelli. MSAA, a differenza di FSAA, smussa solo i bordi degli oggetti, il che consente di risparmiare in modo significativo le risorse della scheda video, tuttavia, questa tecnica può lasciare artefatti all'interno dei poligoni.

In precedenza, l'anti-aliasing riduceva sempre in modo significativo gli fps nei giochi, ma ora influisce solo leggermente sul numero di fotogrammi e talvolta non ha alcun effetto.

Tassellazione
Utilizzando la tassellatura in un modello computerizzato, il numero di poligoni aumenta di un numero arbitrario di volte. Per fare ciò, ogni poligono è diviso in diversi nuovi, che si trovano all'incirca nello stesso modo della superficie originale. Questo metodo consente di aumentare facilmente il dettaglio di semplici oggetti 3D. Allo stesso tempo, però, aumenterà anche il carico sul computer e in alcuni casi non si possono escludere piccoli artefatti.

A prima vista, la tassellatura può essere confusa con la mappatura Parallax. Sebbene si tratti di effetti completamente diversi, poiché la tassellatura modifica effettivamente la forma geometrica di un oggetto e non si limita a simulare il rilievo. Inoltre, può essere utilizzato per quasi tutti gli oggetti, mentre l'uso della mappatura Parallax è molto limitato.

La tecnologia della tassellatura è nota nel cinema dagli anni '80, ma ha iniziato ad essere supportata nei giochi solo di recente, o meglio dopo che gli acceleratori grafici hanno finalmente raggiunto il livello di prestazioni richiesto per poterla eseguire in tempo reale.

Affinché il gioco utilizzi la tassellatura, è necessaria una scheda video che supporti DirectX 11.

Sincronizzazione verticale

V-Sync è la sincronizzazione dei fotogrammi del gioco con la frequenza di scansione verticale del monitor. La sua essenza sta nel fatto che un fotogramma di gioco completamente calcolato viene visualizzato sullo schermo nel momento in cui l'immagine viene aggiornata su di esso. È importante che anche il fotogramma successivo (se è già pronto) appaia non più tardi e non prima che finisca l'output del precedente e inizi quello successivo.

Se la frequenza di aggiornamento del monitor è 60 Hz e la scheda video ha il tempo di eseguire il rendering della scena 3D con almeno lo stesso numero di fotogrammi, ad ogni aggiornamento del monitor verrà visualizzato un nuovo fotogramma. In altre parole, ad un intervallo di 16,66 ms, l'utente vedrà sullo schermo un aggiornamento completo della scena di gioco.

Dovrebbe essere chiaro che quando la sincronizzazione verticale è abilitata, gli fps nel gioco non possono superare la frequenza di scansione verticale del monitor. Se il numero di frame è inferiore a questo valore (nel nostro caso inferiore a 60 Hz), per evitare perdite di prestazioni è necessario attivare il triplo buffering, in cui i frame vengono calcolati in anticipo e archiviati in tre buffer separati, che consente di inviarli sullo schermo più spesso.

Il compito principale della sincronizzazione verticale è eliminare l'effetto di un fotogramma spostato, che si verifica quando la parte inferiore del display è riempita con un fotogramma e la parte superiore con un altro, spostato rispetto a quello precedente.

Post produzione
Questo nome comune tutti effetti che vengono sovrapposti a un fotogramma già pronto di una scena 3D completamente renderizzata (in altre parole, a un'immagine bidimensionale) per migliorare la qualità dell'immagine finale. La post-elaborazione utilizza pixel shader e viene utilizzata nei casi in cui effetti aggiuntivi richiedono informazioni complete sull'intera scena. Tali tecniche non possono essere applicate isolatamente a singoli oggetti 3D senza causare la comparsa di artefatti nell'inquadratura.

Gamma dinamica elevata (HDR)
Un effetto spesso utilizzato nelle scene di gioco con illuminazione contrastante. Se un'area dello schermo è molto luminosa e un'altra è molto scura, molti dettagli in ciascuna area vengono persi e appaiono monotoni. L'HDR aggiunge più gradazione all'inquadratura e consente maggiori dettagli nella scena. Per usarlo, di solito è necessario lavorare con una gamma di colori più ampia di quella che la precisione standard a 24 bit può fornire. I calcoli preliminari avvengono in alta precisione (64 o 96 bit) e solo nella fase finale l'immagine viene regolata a 24 bit.

L'HDR viene spesso utilizzato per realizzare l'effetto dell'adattamento visivo quando un eroe nei giochi emerge da un tunnel buio su una superficie ben illuminata.

Fioritura
Bloom viene spesso utilizzato insieme all'HDR e ha anche un parente abbastanza stretto, Glow, motivo per cui queste tre tecniche vengono spesso confuse.

Bloom simula l'effetto che si può vedere quando si riprendono scene molto luminose con le fotocamere convenzionali. Nell'immagine risultante, la luce intensa sembra occupare più volume del dovuto e “arrampicarsi” sugli oggetti anche se si trova alle loro spalle. Quando si utilizza Bloom, sui bordi degli oggetti potrebbero apparire ulteriori artefatti sotto forma di linee colorate.

Grana della pellicola
La grana è un artefatto che si presenta sulla TV analogica con segnale scarso, su vecchie videocassette magnetiche o fotografie (in particolare immagini digitali riprese con illuminazione insufficiente). I giocatori spesso disabilitano questo effetto perché rovina un po' l'immagine invece di migliorarla. Per capirlo, puoi eseguire Mass Effect in ciascuna modalità. In alcuni film horror, come Silent Hill, il rumore sullo schermo, al contrario, aggiunge atmosfera.

Sfocatura movimento
Motion Blur è l'effetto di sfocare l'immagine quando la telecamera si muove rapidamente. Può essere utilizzato con successo quando è necessario dare più dinamica e velocità alla scena, quindi è particolarmente richiesto nei giochi di corse. Nei tiratori, l'uso della sfocatura non è sempre percepito in modo inequivocabile. Applicazione corretta Motion Blur può aggiungere un tocco cinematografico a ciò che accade sullo schermo.

L'effetto aiuterà anche, se necessario, a mascherare il basso frame rate e ad aggiungere fluidità al gameplay.

SSAO
L'occlusione ambientale è una tecnica utilizzata per rendere fotorealistica una scena creando un'illuminazione più credibile degli oggetti in essa contenuti, che tenga conto della presenza di altri oggetti vicini con le proprie caratteristiche di assorbimento e riflessione della luce.

Screen Space Ambient Occlusion è una versione modificata di Ambient Occlusion e simula anche l'illuminazione e l'ombreggiatura indirette. La comparsa di SSAO è dovuta al fatto che, all'attuale livello di prestazioni della GPU, l'Ambient Occlusion non può essere utilizzata per renderizzare le scene in tempo reale. Le prestazioni migliorate in SSAO vanno a scapito di una qualità inferiore, ma anche questo è sufficiente per migliorare il realismo dell'immagine.

SSAO funziona secondo uno schema semplificato, ma presenta numerosi vantaggi: il metodo non dipende dalla complessità della scena, non utilizza RAM, può funzionare in scene dinamiche, non richiede la pre-elaborazione dei frame e carica solo l'adattatore grafico senza consumare risorse della CPU.

Cel-ombreggiatura
I giochi con l'effetto Cel shading iniziarono a essere realizzati nel 2000 e inizialmente apparvero su console. Sui PC, questa tecnica è diventata veramente popolare solo un paio d'anni dopo. Con l'aiuto del Cel shading, ogni fotogramma si trasforma praticamente in un disegno disegnato a mano o in un frammento di un cartone animato.

I fumetti sono creati in uno stile simile, quindi la tecnica viene spesso utilizzata nei giochi ad essi correlati. Tra le ultime uscite più conosciute c'è lo sparatutto Borderlands, dove il Cel shading è visibile ad occhio nudo.

Le caratteristiche della tecnologia sono l'uso di un set limitato di colori e l'assenza di sfumature uniformi. Il nome dell'effetto deriva dalla parola Cel (Celluloide), cioè il materiale trasparente (pellicola) su cui sono disegnati i film d'animazione.

Profondità di campo
La profondità di campo è la distanza tra i bordi vicini e lontani dello spazio, all'interno della quale tutti gli oggetti saranno a fuoco, mentre il resto della scena sarà sfocato.

In una certa misura, la profondità di campo può essere osservata semplicemente mettendo a fuoco un oggetto vicino ai nostri occhi. Qualunque cosa dietro sarà sfocata. È vero anche il contrario: se ti concentri su oggetti distanti, tutto davanti a loro risulterà sfocato.

In alcune fotografie è possibile vedere l'effetto della profondità di campo in forma esagerata. Questo è il grado di sfocatura che spesso si tenta di simulare nelle scene 3D.

Nei giochi che utilizzano la profondità di campo, il giocatore solitamente avverte un senso di presenza più forte. Ad esempio, quando guarda da qualche parte attraverso l'erba o i cespugli, vede a fuoco solo piccoli frammenti della scena, il che crea l'illusione della presenza.

Impatto sulle prestazioni

Per scoprire come l'attivazione di determinate opzioni influisce sulle prestazioni, abbiamo utilizzato il benchmark di gioco Heaven DX11 Benchmark 2.5. Tutti i test sono stati eseguiti sul sistema processore Intel 2 Duo e6300, GeForce GTX460 con una risoluzione di 1280×800 pixel (eccetto per la sincronizzazione verticale, dove la risoluzione era 1680×1050).

Come già accennato, il filtraggio anisotropico non ha praticamente alcun effetto sul numero di fotogrammi. La differenza tra anisotropia disabilitata e 16x è di soli 2 fotogrammi, quindi consigliamo sempre di impostarla al massimo.

L'anti-aliasing in Heaven Benchmark ha ridotto gli fps in modo più significativo di quanto ci aspettassimo, specialmente nella modalità 8x più pesante. Tuttavia, poiché 2x è sufficiente per migliorare notevolmente l'immagine, consigliamo di scegliere questa opzione se giocare a livelli più alti risulta scomodo.

La tassellatura, a differenza dei parametri precedenti, può assumere un valore arbitrario in ciascuno gioco separato. In Heaven Benchmark, l'immagine senza di essa si deteriora in modo significativo e, al livello massimo, al contrario, diventa un po' irrealistica. Pertanto, i valori intermedi dovrebbero essere impostati su moderati o normali.

È stata scelta una risoluzione più elevata per la sincronizzazione verticale in modo che gli fps non siano limitati dalla frequenza di aggiornamento verticale dello schermo. Come previsto, il numero di fotogrammi durante quasi l'intero test con la sincronizzazione attivata è rimasto saldamente intorno ai 20 o 30 fps. Ciò è dovuto al fatto che vengono visualizzati contemporaneamente all'aggiornamento dello schermo e con una frequenza di scansione di 60 Hz ciò può essere fatto non ad ogni impulso, ma solo ad ogni secondo (60/2 = 30 fotogrammi/s) o terzo (60/3 = 20 fotogrammi/s). Quando V-Sync è stato disattivato, il numero di fotogrammi è aumentato, ma sullo schermo sono comparsi artefatti caratteristici. Il triplo buffering non ha avuto alcun effetto positivo sulla fluidità della scena. Ciò potrebbe essere dovuto al fatto che non esiste alcuna opzione nelle impostazioni del driver della scheda video per forzare la disabilitazione del buffering e la normale disattivazione viene ignorata dal benchmark e utilizza comunque questa funzione.

Se Heaven Benchmark fosse un gioco, allora con le impostazioni massime (1280×800; AA 8x; AF 16x; Tessellation Extreme) sarebbe scomodo giocare, poiché 24 fotogrammi chiaramente non sono sufficienti per questo. Con una perdita di qualità minima (1280×800; AA 2x; AF 16x, Tessellation Normal) è possibile ottenere di più indicatore accettabile a 45 fps.



Test delle prestazioni:

E ora che abbiamo acquisito familiarità con i concetti base del filtraggio e dello smussamento delle texture, possiamo passare alla pratica.

Configurazione del computer:
Processore: Intel Core 2 Quad Q6600 a 3200 MHz (400x8, 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

L'argomento principale del nostro test di oggi è stato il vecchissimo, ma non per questo meno famoso Counter-Strike: Source, poiché è 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 ancora a caricare abbastanza bene anche la piattaforma più moderna. Ecco una gamma così ricca di impostazioni presentate all'utente:

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

E quindi, cosa abbiamo ottenuto:

I risultati furono del tutto inaspettati. La tecnologia di campionamento della copertura (CSAA), che per definizione dovrebbe consumare meno risorse della MSAA, mostra qui un quadro completamente opposto. Motivi questo fenomeno potrebbe esserci una grande varietà. Prima di tutto bisogna tenere conto che per molti aspetti le prestazioni quando si attiva l'antialiasing dipendono dall'architettura della GPU. Sì e ottimizzazione varie tecnologie Il gioco stesso e la versione del driver svolgono un ruolo altrettanto importante. Pertanto, i risultati quando si utilizzano altre schede video, o anche una versione diversa del driver, potrebbero essere completamente diversi.

I test con l'anti-aliasing disabilitato (contrassegnato in blu per facilità di percezione) hanno mostrato un'immagine approssimativamente uguale, che indica una leggera differenza nel carico sulla scheda video.

Inoltre, esiste una chiara corrispondenza tra gli indicatori FPS, quando si utilizza lo stesso metodo anti-aliasing, per AF 8x e AF 16x. Allo stesso tempo, la differenza varia da 1 a 4 fps (ad 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 impatto significativo sulle prestazioni.

Eppure è necessario fare una riserva sul fatto che ottenere gli stessi valori FPS direttamente nel gioco è semplicemente irrealistico, poiché molte scene risultano molto più difficili, soprattutto con molti giocatori.

Immagini di prova:

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

Bilineare/MSAA 2xTrilineare/MSAA 2xAF 2x / MSAA 2x
AF 2x / CSAA 8xAF 2x/MSAA 8xAF 2x/CSAA 16x
AF 2x / CSAA 16xQAF8x/MSAAx2AF 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 16xQBilineare/CSAA 16xQ

Come puoi vedere, semplicemente non c'è alcuna differenza significativa nelle combinazioni "sopra" AF 8x / MSAA 8x (CSAA 8x). Ma ciò si traduce in un notevole calo delle prestazioni, soprattutto quando si utilizza Coverage Sampling AntiAliasing.

Conclusioni:

Sicuramente tra quelli che leggono Questo articolo ci saranno giocatori di Cs:s, HL2 e altri giochi basati sul motore Source. Troveranno questo articolo più interessante ed educativo di altri. Tuttavia lo scopo di questo scritto era solo quello di raccontare tecnologie moderne, contribuendo a migliorare la percezione visiva dei giochi. E i test sono un modo per mostrare in pratica la teoria affermata.

Naturalmente, per garantire l'affidabilità delle letture, si sarebbero dovuti effettuare test prestazionali 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, poiché sono destinati al fallimento in anticipo. Spero che la teoria e i test di cui sopra ti aiuteranno a acquisire maggiore familiarità con le tecnologie descritte.

Di Stormcss


Calciare brutalmente

A giudicare dalle informazioni sui forum e dagli articoli su Internet, ATI sta giocando brutti scherzi con il filtraggio trilineare delle texture sulla nuova GPU X800. Tuttavia, c’è anche chi difende strenuamente ATi. In generale, tali discussioni ci ricordano lo scandalo legato a nVidia un anno fa.

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 chiamato "brilineare" a causa della sua combinazione di filtraggio bilineare e trilineare, sulle GPU Radeon 9600 e X800. La notizia è stata davvero sorprendente, poiché ATI ha sempre parlato dell'utilizzo del vero filtraggio trilineare.

Ma come si presenta realmente la situazione? Si tratta di un'ottimizzazione, di un trucco o semplicemente di una soluzione intelligente? Per giudicare, dobbiamo approfondire la tecnologia in vari modi filtrazione. E proprio a questo sarà dedicata la prima parte dell'articolo, e presenteremo alcune tecnologie in maniera molto semplificata per poterle racchiudere in poche pagine. Diamo quindi un'occhiata alle funzioni base e fondamentali del filtraggio.

Ci sarà un seguito? Forse, visto che continua la controversia sul filtraggio brilineare recentemente scoperto sulle schede Radeon 9600 e X800. Ad ATi va riconosciuto il fatto che la qualità dell'immagine delle carte non soffre visivamente a causa di questo filtraggio. Almeno non abbiamo esempi che suggeriscano il contrario. Mentre il filtraggio brilineare si manifesta in quello creato artificialmente condizioni di laboratorio. Allo stesso tempo, ATi non consente di abilitare il filtraggio trilineare completo per le carte menzionate, adattivo 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 alcuna informazione su come funziona il driver e ha affermato più volte che la scheda offre un filtraggio trilineare completo. Solo dopo la suddetta rivelazione ATi ha ammesso che il filtraggio era stato ottimizzato. Speriamo che non ci sia tale "adattabilità" in altri posti del conducente.

Tuttavia, i produttori si stanno lentamente ma inesorabilmente avvicinando al punto in cui il livello di tolleranza sarà superato. L'"adattività" o la definizione dell'applicazione avviata non consente ai programmi di benchmark di mostrare le prestazioni effettive della scheda nei giochi. La qualità delle immagini del gioco può variare da un driver all'altro. I produttori sono liberi di divertirsi con il conducente, a seconda delle prestazioni di cui il reparto marketing ha bisogno in quel momento. Ebbene, il diritto del consumatore di sapere cosa sta effettivamente comprando non interessa più a nessuno qui. Tutto questo è lasciato ai media: lasciamo che compiano la loro missione educativa. E i trucchi di filtraggio di cui abbiamo discusso nel nostro articolo sono solo i casi più famosi. Cos'altro è nascosto alla nostra attenzione, si può solo immaginare.

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 benchmark conosciuti, come nel recente esempio ATI. La soluzione è ovvia: dare la possibilità di disattivare le ottimizzazioni! Quindi il consumatore potrà decidere da solo cosa è più importante per lui: più FPS o migliore qualità. Non puoi nemmeno contare su Microsoft come arbitro. I test WHQL non misurano molte cose e possono essere facilmente aggirati: conosci il significato della parola "reattivo"?

Ottimizzazioni del filtro attualmente note
ATi nVidia
Trilineare
ottimizzazione
R9600
X800
fidanzata FX5xxx
(GF 6xxx)*
Ottimizzazione angolare
filtraggio anisotropico
R9xxx
X800
GF 6xxx
Adattivo
filtraggio anisotropico
R9xxx
X800
fidanzata FX5xxx
GF 6xxx
Ottimizzazione della fase R9xxx
X800
fidanzata FX5xxx
Ottimizzazione del 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 dell’ottimizzazione sfrenata continuerà. Tuttavia, un raggio di luce è apparso nel regno oscuro, come dimostrato chiaramente da nVidia con la sua ottimizzazione trilineare. Speriamo in ulteriori passi simili!

Le tecnologie per la visualizzazione di oggetti 3D sullo schermo dei monitor dei personal computer si stanno sviluppando insieme al rilascio di moderni adattatori grafici. Ottenere l'immagine perfetta nelle applicazioni 3D, il più vicino possibile al video reale, è il compito principale degli sviluppatori hardware e l'obiettivo principale degli intenditori giochi per computer. La tecnologia implementata nell'ultima generazione di schede video è progettata per aiutare in questo: filtraggio anisotropico nei giochi.

Cos'è?

Ogni giocatore di computer desidera che sullo schermo venga visualizzata un'immagine colorata mondo virtuale, in modo che, dopo essere salito in cima alla montagna, puoi osservare i pittoreschi dintorni, così che, premendo al massimo il pulsante di accelerazione sulla tastiera, puoi vedere non solo la linea retta del circuito, ma anche un ambiente a tutti gli effetti sotto forma di paesaggi urbani fino all'orizzonte. Gli oggetti visualizzati sullo schermo di un monitor idealmente stanno direttamente di fronte all'utente nella scala più conveniente; infatti, la stragrande maggioranza degli oggetti tridimensionali si trova ad angolo rispetto alla linea di vista. Inoltre, diverse distanze virtuali delle texture rispetto al punto di vista apportano anche modifiche alla dimensione dell'oggetto e alle sue texture. I calcoli per visualizzare un mondo tridimensionale su uno schermo bidimensionale vengono utilizzati in varie tecnologie 3D progettate per migliorare la percezione visiva, non ultimo il filtraggio delle texture (anisotropico o trilineare). La filtrazione di questo tipo è uno dei migliori sviluppi in questo settore.

Sulle dita

Per capire cosa fa il filtraggio anisotropico, è necessario comprendere i principi di base degli algoritmi di texturizzazione. Tutti gli oggetti del mondo tridimensionale sono costituiti da una "cornice" (un modello tridimensionale tridimensionale di un oggetto) e una superficie (texture) - un'immagine bidimensionale "allungata" sulla cornice. La minima parte texture - texel colorati, sono come pixel sullo schermo, a seconda della "densità" della texture, i texel possono avere dimensioni diverse. È costituito da texel multicolori quadro completo qualsiasi oggetto nel mondo tridimensionale.

Sullo schermo i texel vengono contrapposti ai pixel, il cui numero è limitato dalla risoluzione disponibile. Mentre può esserci un numero quasi infinito di texel nella zona di visibilità virtuale, i pixel che mostrano l'immagine all'utente hanno un numero fisso. Pertanto, la trasformazione dei texel visibili in pixel a colori viene eseguita da un algoritmo per l'elaborazione di modelli tridimensionali - filtraggio (anisotropico, bilineare o trilineare). Maggiori dettagli su tutti i tipi sono forniti di seguito in ordine, poiché provengono l'uno dall'altro.

Colore medio

L'algoritmo di filtraggio più semplice consiste nel visualizzare il colore più vicino al punto di vista di ciascun pixel (campionamento puntiforme). È semplice: la linea di vista di un certo punto dello schermo cade sulla superficie di un oggetto tridimensionale, e la texture delle immagini restituisce il colore del texel più vicino al punto di incidenza, filtrando tutti gli altri. Ideale per superfici in tinta unita. Con piccole differenze di colore, dà anche un'immagine di qualità piuttosto elevata, ma piuttosto opaca, perché dove hai visto oggetti tridimensionali dello stesso colore? Solo l'illuminazione, le ombre, i riflessi e gli altri shader sono pronti a colorare qualsiasi oggetto nei giochi albero di Natale, cosa possiamo dire delle trame stesse, che a volte rappresentano opere d'arte. Anche un muro di cemento grigio senz'anima nei giochi moderni non è solo un rettangolo di un colore anonimo, è una superficie punteggiata di ruvidità, a volte crepe e graffi e altri elementi artistici, che avvicinano il più possibile l'aspetto di un muro virtuale ai muri reali o muri immaginati dalla fantasia degli sviluppatori. In generale, nei primi giochi tridimensionali si poteva usare un colore simile, ma ora i giocatori sono diventati molto più esigenti nei confronti della grafica. Ciò che è importante: il filtraggio Near Colour non richiede praticamente alcun calcolo, ovvero è molto economico in termini di risorse del computer.

Filtraggio lineare

Le differenze tra l'algoritmo lineare non sono troppo significative; invece del punto texel più vicino, il filtro lineare ne utilizza 4 contemporaneamente e calcola il colore medio tra di loro. L'unico problema è che sulle superfici posizionate ad angolo rispetto allo schermo, la linea di vista forma un'ellisse sulla trama, mentre il filtraggio lineare utilizza un cerchio perfetto per selezionare i texel più vicini, indipendentemente dall'angolo di visione. Utilizzare quattro texel invece di uno può migliorare sensibilmente la resa delle texture distanti dal punto di vista, ma non è ancora sufficiente per riflettere correttamente l'immagine.

Mip-mapping

Questa tecnologia consente di ottimizzare leggermente la resa della grafica del computer. Per ogni texture viene creato un certo numero di copie a vari livelli dettaglio, per ogni livello di dettaglio viene selezionata un'immagine diversa, ad esempio, per un lungo corridoio o una vasta sala, i pavimenti e le pareti vicini richiedono il maggior dettaglio possibile, mentre gli angoli più lontani coprono solo pochi pixel e non richiedono significativi dettaglio. Questa funzionalità grafica 3D aiuta a evitare la sfocatura delle trame distanti, nonché la distorsione e la perdita dell'immagine, e funziona insieme al filtraggio, poiché l'adattatore video, quando calcola il filtraggio, non è in grado di decidere quali texel sono importanti per la completezza dell'immagine. immagine, e che non sono così tanti.

Filtraggio bilineare

Utilizzando insieme il filtraggio lineare e la texturizzazione MIP, otteniamo un algoritmo bilineare che ci consente di visualizzare oggetti e superfici distanti ancora meglio. Tuttavia, gli stessi 4 texel non forniscono alla tecnologia una flessibilità sufficiente; inoltre, il filtraggio bilineare non maschera le transizioni al livello di ridimensionamento successivo, lavorando separatamente con ciascuna parte della trama, e i loro confini possono essere visibili. Quindi, su grande distanza o ad un angolo elevato, le trame sono notevolmente sfocate, rendendo l'immagine innaturale, come se per le persone miopi, inoltre, per le trame con motivi complessi, si notano linee di giunzione di trame di diverse risoluzioni. Ma noi siamo dietro lo schermo di un monitor, non servono miopie e linee strane varie!

Filtraggio trilineare

Questa tecnologia è progettata per correggere il disegno sulle linee di cambiamento della scala della texture. Mentre l'algoritmo bilineare funziona separatamente con ciascun livello di mip-mapping, il filtro trilineare calcola inoltre i limiti dei livelli di dettaglio. Con tutto ciò, i requisiti di RAM aumentano e il miglioramento dell'immagine su oggetti distanti non è molto evidente. Naturalmente, i confini tra i livelli di zoom vicini ricevono un'elaborazione migliore rispetto a quelli bilineari e appaiono più armoniosi senza transizioni nette, il che influisce sull'impressione generale.

Filtraggio anisotropico

Se calcoli la proiezione della linea di vista di ciascun pixel dello schermo sulla trama in base all'angolo di visione, otterrai forme errate: trapezi. Abbinato all'utilizzo di più texel per calcolare il colore finale, ciò può fornire un risultato molto migliore. Cosa fa il filtraggio anisotropico? Considerando che in teoria non ci sono limiti al numero di texel utilizzati, un tale algoritmo è in grado di visualizzare grafica computerizzata qualità illimitata a qualsiasi distanza dal punto di visione e con qualsiasi angolazione, idealmente paragonabile al video reale. Il filtraggio anisotropico nelle sue capacità è limitato solo dalle caratteristiche tecniche degli adattatori grafici dei personal computer, per cui sono progettati i videogiochi moderni.

Schede video adatte

La modalità di filtraggio anisotropico è possibile sugli adattatori video personalizzati dal 1999, a partire dalle famose schede Riva TNT e Voodoo. Le configurazioni migliori di queste schede erano perfettamente in grado di riprodurre grafica trilineare e persino di produrre valori FPS decenti utilizzando il filtro anisotropico x2. L'ultimo numero indica la qualità del filtraggio, che a sua volta dipende dal numero di texel coinvolti nel calcolo del colore finale di un pixel sullo schermo: in questo caso ne vengono utilizzati ben 8. Inoltre, i calcoli utilizzano il l'area di acquisizione di questi texel corrisponde all'angolo di visione e non a un cerchio, come negli algoritmi lineari precedenti. Le moderne schede video sono in grado di elaborare il filtraggio con un algoritmo anisotropico a livello x16, il che significa utilizzare 128 texel per calcolare il colore finale del pixel. Ciò promette un miglioramento significativo nella visualizzazione delle trame distanti dal punto di vista, nonché un carico serio, ma l'ultima generazione di adattatori grafici è dotata di RAM sufficiente e processori multi-core per far fronte a questo compito.

Impatto sugli FPS

I vantaggi sono chiari, ma quanto costerà ai giocatori il filtraggio anisotropico? L'impatto sulle prestazioni degli adattatori video da gioco con hardware serio, rilasciati entro e non oltre il 2010, è molto insignificante, come confermato da test di esperti indipendenti in una serie di giochi popolari. Il filtraggio anisotropico delle texture in qualità x16 sulle schede economiche mostra una diminuzione indicatore complessivo FPS del 5-10% e quindi a causa di componenti dell'adattatore grafico meno produttivi. Tale lealtà dell'hardware moderno all'informatica ad alta intensità di risorse parla della costante preoccupazione dei produttori per noi, umili giocatori. È del tutto possibile che il passaggio ai livelli successivi di qualità dell'anisotropia non sia lontano, a patto che i creatori del gioco non ci deludano.

Naturalmente, il solo filtraggio anisotropico è coinvolto nel miglioramento della qualità dell'immagine. Spetta al giocatore decidere se abilitarlo o meno, ma i felici possessori degli ultimi modelli di Nvidia o AMD (ATI) non dovrebbero nemmeno pensare a questo problema: impostare il filtro anisotropico al livello massimo non influirà sulle prestazioni e lo farà aggiungi realismo a paesaggi e vasti luoghi. Pochi la situazione è più complicata proprietari di soluzioni grafiche integrate di Intel, poiché in questo caso molto dipende dalla qualità della RAM del computer, dalla frequenza di clock e dalla capacità.

Opzioni e ottimizzazione

Il controllo del tipo e della qualità del filtraggio è disponibile grazie ad uno speciale software che regola i driver dell'adattatore grafico. Inoltre, nei menu di gioco sono disponibili impostazioni avanzate di filtro anisotropico. L'implementazione di risoluzioni elevate e l'uso di più monitor nei giochi hanno costretto i produttori a pensare ad accelerare le prestazioni dei loro prodotti, anche attraverso l'ottimizzazione di algoritmi anisotropi. Produttori di carte in ultime versioni autisti presentati nuova tecnologia chiamato filtraggio anisotropico adattivo. Cosa significa? Questa funzionalità, introdotta da AMD e parzialmente implementata nei recenti prodotti Nvidia, permette di ridurre ove possibile il fattore di filtraggio. Pertanto, il filtraggio anisotropico con un coefficiente x2 può elaborare texture vicine, mentre gli oggetti distanti verranno renderizzati utilizzando algoritmi più complessi fino a un coefficiente massimo x16. Come al solito, l'ottimizzazione fornisce un miglioramento significativo a scapito della qualità; in alcuni punti, la tecnologia adattiva è soggetta a errori, evidenti nelle impostazioni ultra di alcuni recenti videogiochi 3D.

Cosa fa il filtraggio anisotropico? L'utilizzo della potenza di calcolo degli adattatori video, rispetto ad altre tecnologie di filtraggio, è molto più elevato, il che influisce sulle prestazioni. Tuttavia, il problema delle prestazioni quando si utilizza questo algoritmo è stato risolto da tempo nei moderni chip grafici. Insieme ad altre tecnologie 3D, il filtraggio anisotropico nei giochi (immaginiamo già di cosa si tratta) influisce sull'impressione generale dell'integrità dell'immagine, soprattutto quando si visualizzano oggetti e trame distanti situati ad angolo rispetto allo schermo. Questa è ovviamente la cosa principale di cui i giocatori hanno bisogno.

Uno sguardo al futuro

L'hardware moderno con caratteristiche medie e superiori è perfettamente in grado di soddisfare le esigenze dei giocatori, quindi la parola sulla qualità dei mondi informatici tridimensionali spetta ora agli sviluppatori di videogiochi. Gli adattatori grafici di ultima generazione supportano non solo risoluzioni elevate e tecnologie di elaborazione delle immagini ad alta intensità di risorse come il filtraggio delle texture anisotropico, ma anche tecnologie VR o supporto per più monitor.

La strutturazione è l'elemento più importante delle applicazioni 3D odierne, senza di essa molti modelli 3D perdono gran parte del loro fascino visivo. Tuttavia, il processo di applicazione delle texture alle superfici non è privo di artefatti e di metodi appropriati per la loro soppressione. Nel mondo dei giochi tridimensionali compaiono di tanto in tanto termini specializzati come “mip mapping”, “trilinear filtering”, ecc., che si riferiscono specificamente a questi metodi.

Un caso speciale dell'effetto aliasing discusso in precedenza è l'effetto aliasing delle superfici strutturate, che, sfortunatamente, non può essere rimosso dai metodi multi- o supersampling descritti sopra.

Immagina il bianco e nero scacchiera grande, di dimensioni quasi infinite. Diciamo che disegniamo questa tavola sullo schermo e la guardiamo da una leggera angolazione. Per le aree sufficientemente distanti della scheda, la dimensione delle celle inizierà inevitabilmente a diminuire fino alla dimensione di un pixel o meno. Questa è la cosiddetta riduzione ottica della texture (minificazione). Inizierà una "lotta" tra i pixel della trama per il possesso dei pixel dello schermo, che porterà a uno sfarfallio spiacevole, che è una delle varietà dell'effetto aliasing. Aumentare la risoluzione dello schermo (reale o effettiva) aiuta solo poco, perché per oggetti abbastanza lontani i dettagli delle texture diventano comunque più piccoli dei pixel.

D'altro canto, le parti del tabellone più vicine a noi occupano un'ampia area dello schermo e si possono vedere enormi pixel della texture. Questo è chiamato ingrandimento ottico della trama (ingrandimento). Sebbene questo problema non sia così grave, deve essere affrontato per ridurre gli effetti negativi.

Per risolvere i problemi di texture, viene utilizzato il cosiddetto filtraggio delle texture. Se osservi il processo di disegno di un oggetto tridimensionale con una texture sovrapposta, puoi vedere che il calcolo del colore di un pixel va "al contrario": in primo luogo, viene trovato un pixel dello schermo dove si troverà un certo punto dell'oggetto proiettato, e quindi per questo punto tutti i pixel della trama che cadono al suo interno. La selezione dei pixel della trama e la loro combinazione (media) per ottenere il colore dei pixel dello schermo finale è chiamata filtraggio della trama.

Durante il processo di texturizzazione, a ogni pixel dello schermo viene assegnata una coordinata all'interno della texture e questa coordinata non è necessariamente un numero intero. Inoltre, un pixel corrisponde ad una determinata area dell'immagine della texture, che può contenere diversi pixel della texture. Chiameremo quest'area l'immagine di un pixel nella texture. Per le parti vicine della nostra scheda, il pixel dello schermo diventa significativamente più piccolo del pixel della texture e, per così dire, si trova al suo interno (l'immagine è contenuta all'interno del pixel della texture). Per quelli remoti, al contrario, cade ogni pixel un gran numero di punti di trama (l'immagine contiene diversi punti di trama). L'immagine pixel potrebbe avere forma diversa e nel caso generale è un quadrilatero arbitrario.

Consideriamo vari metodi filtraggio delle texture e delle loro variazioni.

Il vicino più prossimo

In questo metodo, il più semplice, il colore del pixel viene semplicemente scelto come colore del pixel della texture corrispondente più vicino. Questo metodo è il più veloce, ma anche quello di minore qualità. In realtà, questo non è nemmeno un metodo di filtraggio speciale, ma semplicemente un modo per selezionare almeno qualche pixel della trama che corrisponde a un pixel dello schermo. Era ampiamente utilizzato prima dell'avvento degli acceleratori hardware, la cui diffusione ha permesso di utilizzare metodi migliori.

Filtraggio bilineare

Il filtraggio bilineare trova i quattro pixel della trama più vicini al punto corrente sullo schermo e il colore risultante viene determinato come risultato della miscelazione dei colori di questi pixel in una certa proporzione.

Il filtraggio dei vicini più vicini e il filtraggio bilineare funzionano abbastanza bene quando, in primo luogo, il grado di riduzione della trama è piccolo e, in secondo luogo, quando vediamo la trama ad angolo retto, cioè frontalmente. A cosa è collegato questo?

Se consideriamo, come descritto sopra, l '"immagine" di un pixel dello schermo nella trama, in caso di forte riduzione includerà molti pixel della trama (fino a tutti i pixel!). Inoltre, se guardiamo la texture da un'angolazione, questa immagine risulterà notevolmente allungata. In entrambi i casi, i metodi descritti non funzioneranno bene, poiché il filtro non "cattura" i pixel della texture corrispondenti.

Per risolvere questi problemi vengono utilizzati la cosiddetta mappatura mip e il filtraggio anisotropico.

Mappatura Mip

Con una riduzione ottica significativa, un punto sullo schermo può corrispondere a numerosi pixel di trama. Ciò significa che l'implementazione anche del miglior filtro richiederà molto tempo per calcolare la media di tutti i punti. Tuttavia, il problema può essere risolto creando e memorizzando versioni della texture in cui viene calcolata in anticipo la media dei valori. E in fase di rendering, cerca la versione desiderata della trama originale per il pixel e prendine il valore.

Il termine mipmap deriva dal latino multum in parvo - molto in poco. Quando si utilizza questa tecnologia, oltre all'immagine della trama, la memoria dell'acceleratore grafico memorizza una serie di copie ridotte, ciascuna nuova è esattamente la metà della dimensione della precedente. Quelli. per una texture di dimensione 256x256, vengono inoltre memorizzate immagini di 128x128, 64x64, ecc., fino a 1x1.

Successivamente, viene selezionato un livello mipmap appropriato per ciascun pixel (maggiore è la dimensione dell'immagine pixel nella texture, minore sarà la mipmap). Successivamente, i valori nella mipmap possono essere mediati bilinearmente o utilizzando il metodo del vicino più vicino (come descritto sopra) e inoltre il filtraggio avviene tra livelli mipmap adiacenti. Questo tipo di filtraggio è chiamato trilineare. Fornisce risultati di altissima qualità ed è ampiamente utilizzato nella pratica.


Figura 9. Livelli mipmap

Resta però il problema dell'immagine "allungata" del pixel nella texture. Questo è proprio il motivo per cui la nostra tavola appare molto sfocata da lontano.

Filtraggio anisotropico

Il filtraggio anisotropico è un processo di filtraggio delle texture che tiene conto specificamente del caso di un'immagine pixel allungata in una texture. Infatti, al posto di un filtro quadrato (come nel filtraggio bilineare), ne viene utilizzato uno allungato, che permette di selezionare meglio il colore desiderato per un pixel dello schermo. Questo filtro viene utilizzato insieme al mipmapping e produce risultati di altissima qualità. Tuttavia, ci sono anche degli svantaggi: l'implementazione del filtro anisotropico è piuttosto complessa e, quando abilitato, la velocità di disegno diminuisce notevolmente. Il filtraggio anisotropico è supportato dalle ultime generazioni di GPU NVidia e ATI. Inoltre, con diversi livelli di anisotropia, quanto più alto è questo livello, tanto più le immagini pixel "allungate" possono essere elaborate correttamente e migliore è la qualità.

Confronto di filtri

Il risultato è il seguente: per eliminare gli artefatti dovuti all'aliasing delle texture, l'hardware supporta diversi metodi di filtraggio, che differiscono per qualità e velocità. Il metodo di filtraggio più semplice è il metodo del vicino più vicino (che in realtà non combatte gli artefatti, ma riempie semplicemente i pixel). Al giorno d'oggi, viene spesso utilizzato il filtraggio bilineare insieme alla mappatura mip o al filtraggio trilineare. IN Ultimamente Le GPU hanno iniziato a supportare la modalità di filtraggio della massima qualità: il filtro anisotropico.

Mappatura dei rilievi

Il bump mapping è un tipo di effetti speciali grafici progettati per creare l'impressione di superfici "ruvide" o irregolari. Recentemente, l'uso del bump mapping è diventato quasi uno standard per le applicazioni di gioco.

L'idea principale alla base del bump mapping è utilizzare le texture per controllare il modo in cui la luce interagisce con la superficie di un oggetto. Ciò consente di aggiungere dettagli fini senza aumentare il numero di triangoli. In natura distinguiamo le piccole superfici irregolari dalle ombre: qualsiasi protuberanza sarà chiara da un lato e scura dall'altro. In effetti, l'occhio potrebbe non essere in grado di rilevare i cambiamenti nella forma della superficie. Questo effetto viene utilizzato nella tecnologia di bump mapping. Una o più texture aggiuntive vengono applicate alla superficie dell'oggetto e utilizzate per calcolare l'illuminazione dei punti dell'oggetto. Quelli. la superficie dell'oggetto non cambia affatto, si crea solo l'illusione delle irregolarità.

Esistono diversi metodi di mappatura delle irregolarità, ma prima di esaminarli, dobbiamo capire come definire effettivamente le irregolarità sulla superficie. Come accennato in precedenza, a questo scopo vengono utilizzate trame aggiuntive e possono essere di diversi tipi:

Mappa normale. In questo caso, ogni pixel della texture aggiuntiva memorizza un vettore perpendicolare alla superficie (normale), codificato come colore. Le normali vengono utilizzate per calcolare l'illuminazione.

Mappa degli spostamenti. Una mappa di spostamento è una texture in scala di grigi in cui ogni pixel memorizza uno spostamento rispetto alla superficie originale.

Queste trame vengono preparate dai progettisti di modelli 3D insieme alla geometria e alle trame di base. Esistono anche programmi che permettono di ottenere automaticamente mappe normali o di spostamento

Mappatura bump precalcolata

Le texture, che memorizzeranno informazioni sulla superficie di un oggetto, vengono create in anticipo, prima della fase di rendering, scurendo alcuni punti della texture (e quindi la superficie stessa) dell'oggetto ed evidenziandone altri. Successivamente, durante il disegno, viene utilizzata la solita trama.

Questo metodo non richiede alcun trucco algoritmico durante il disegno, ma sfortunatamente non si verificano cambiamenti nell'illuminazione delle superfici quando cambiano le posizioni delle sorgenti luminose o il movimento dell'oggetto. E senza questo, non è possibile creare una simulazione veramente riuscita di una superficie irregolare. Metodi simili vengono utilizzati per le parti statiche della scena, spesso per l'architettura dei livelli, ecc.

Mappatura dei rilievi mediante rilievo (mappatura dei rilievi in ​​rilievo)

Questa tecnologia è stata utilizzata sui primi processori grafici (NVidia TNT, TNT2, GeForce). Viene creata una mappa di spostamento per l'oggetto. Il disegno avviene in due fasi. Nella prima fase, la mappa di spostamento viene aggiunta a se stessa pixel per pixel. In questo caso, la seconda copia viene spostata leggermente in direzione della sorgente luminosa. Ciò produce il seguente effetto: i valori di differenza positivi sono determinati dai pixel illuminati, i valori negativi dai pixel in ombra. Queste informazioni vengono utilizzate per modificare di conseguenza il colore dei pixel della texture sottostante.

La mappatura dei rilievi mediante rilievo non richiede hardware che supporti i pixel shader, ma non funziona bene per irregolarità superficiali relativamente grandi. Inoltre, gli oggetti non sempre sembrano convincenti; ciò dipende molto dall'angolo con cui si guarda la superficie.

Mappatura dei pixel

La mappatura dei pixel bump è attualmente l'apice dello sviluppo di tali tecnologie. In questa tecnologia, tutto viene calcolato nel modo più onesto possibile. Al pixel shader viene fornita come input una mappa normale, da cui vengono presi i valori normali per ogni punto dell'oggetto. Il valore normale viene quindi confrontato con la direzione della sorgente luminosa e viene calcolato il valore del colore.

Questa tecnologia è supportata nelle apparecchiature a partire dalle schede video di livello GeForce2.

Abbiamo quindi visto come utilizzare le peculiarità della percezione umana del mondo per migliorare la qualità delle immagini create dai giochi 3D. I felici possessori dell'ultima generazione di schede video NVidia GeForce, ATI Radeon (tuttavia, e non solo l'ultima) possono giocare in modo indipendente con alcuni degli effetti descritti, poiché le impostazioni per il de-aliasing e il filtro anisotropico sono disponibili nelle opzioni del driver. Questi e altri metodi, che esulano dallo scopo di questo articolo, vengono implementati con successo dagli sviluppatori di giochi nei nuovi prodotti. In generale, la vita migliora. Succederà qualcos'altro!