Mi az a szűrő a játékokban? Anizotróp szűrés

Teljesítmény tesztek:

És most, hogy megismerkedtünk a szűrés és a textúra simítás alapfogalmaival, áttérhetünk a gyakorlatra.

Számítógép konfiguráció:
Processzor: Intel Core 2 Quad Q6600 @ 3200MHz (400x8, 1,3125V)
Videókártya: Palit Nvidia GeForce 8800GT
Alaplap: Asus P5Q PRO TURBO
Memória: 2x2048MB DDR2 Corsair XMS2 @ 1066MHz, 5-5-5-15
Tápegység: Corsair CMPSU-850HXEU 850W
CPU hűtő: Zalman CNPS9700 LED
Operációs rendszer: Windows 7 Ultimate x64
Videó illesztőprogram verziója: Nvidia 195.62 x64

A mai tesztelésünk fő témája a nagyon régi, de nem kevésbé híres Counter-Strike: Source volt, mivel ez azon kevés igazán elterjedt játékok egyike, amely rengeteg különböző élsimítási és szűrési beállítást kínál. A motor régisége (2004) ellenére ez a játék még a legmodernebb platformot is elég jól képes betölteni. Íme a beállítások gazdag skálája, amely a felhasználó rendelkezésére áll:

Az élsimítási és szűrési teszteket a beépített benchmarkban végeztük, 1280x1024-es felbontással. Az összes többi beállítást maximálisnak vettük, mint a fenti képernyőképen. Annak érdekében, hogy az eredményt a lehető legközelebb hozzuk az igazsághoz, minden paramétert háromszor teszteltünk, majd megtaláltuk a kapott értékek számtani átlagát.

És mit kaptunk:

Az eredmények meglehetősen váratlanok voltak. A Coverage Sampling Technology (CSAA), amelynek definíció szerint kevesebb erőforrást kell fogyasztania, mint az MSAA, itt teljesen ellentétes képet mutat. Ennek a jelenségnek nagyon sok oka lehet. Először is figyelembe kell venni, hogy az élsimítás bekapcsolásakor a teljesítmény sok tekintetben a GPU architektúrától függ. És magának a játéknak és az illesztőprogram-verziónak a különféle technológiáinak optimalizálása ugyanolyan fontos szerepet játszik. Ezért az eredmények más videokártyák vagy akár egy másik illesztőprogram-verzió használatakor teljesen eltérőek lehetnek.

A letiltott élsimítással végzett tesztek (kék színnel jelölve az érzékelés megkönnyítése érdekében) körülbelül egyforma képet mutattak, ami a videokártya terhelésében mutatkozó kis különbséget jelzi.

Ezen túlmenően, ha ugyanazt az élsimítási módszert használjuk, az AF 8x és az AF 16x esetén egyértelmű egyezés van az FPS jelzők között. Ugyanakkor a különbség 1 és 4 fps között mozog (kivéve az MSAA 8x-ot, ahol a különbség 11 fps). Ez arra utal, hogy a 16-szoros szűrés nagyon hasznos lehet, ha javítani kell a képminőséget anélkül, hogy jelentősen befolyásolná a teljesítményt.

És mégis meg kell jegyezni, hogy egyszerűen irreális ugyanazokat az FPS-értékeket közvetlenül a játékban megszerezni, mivel sok jelenet sokkal nehezebbnek bizonyul, különösen sok játékos esetén.

Teszt képek:

Szóval, mi van nálunk? Megismertük a különböző beállítási konfigurációk teljesítményre gyakorolt ​​hatását. – De miért van szükség erre az egészre? - kérdezed. A megjelenített kép minőségének javítása érdekében válaszolok. Van egyáltalán ilyen növekedés? A kérdés megválaszolásához javaslom, hogy tekintse meg a következő képernyőképeket:

Billineáris/MSAA 2xTrillinear/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

Mint látható, egyszerűen nincs jelentős különbség az AF 8x / MSAA 8x (CSAA 8x) „felül” kombinációkban. Ez azonban észrevehető teljesítménycsökkenést eredményez, különösen a Coverage Sampling AntiAliasing használatakor.

Következtetések:

A cikket olvasók között biztosan lesznek Cs:s, HL2 és más Source motorra épülő játékok játékosai. Érdekesebbnek és tanulságosabbnak találják ezt a cikket, mint mások. Ennek az írásnak azonban csak az volt a célja, hogy beszéljünk a modern technológiákról, amelyek segítenek javítani a játékok vizuális észlelését. A tesztek pedig egy módja annak, hogy a megfogalmazott elméletet a gyakorlatban is megmutassák.

Természetesen a leolvasások megbízhatósága érdekében teljesítményteszteket kellett volna elvégezni mind más videochipeken, mind további játékokon.

Bárhogy is legyen, visszatérve a cikk témájához, mindenki maga dönti el, hogy milyen beállításokkal játszik. És nem adok tanácsot vagy ajánlást, mivel eleve kudarcra vannak ítélve. Remélem, hogy a fenti elmélet és tesztek segítenek abban, hogy jobban megismerje a leírt technológiákat.

Stormcss által


Gonoszul rúg

A 3D-s játékok megjelenésével olyan problémák kezdtek megjelenni, amelyek a 2D-s játékokban nem léteztek: elvégre most egy háromdimenziós képet kell megjelenítenie egy lapos monitoron. Ha az objektum párhuzamos a közeli képernyősíkkal, akkor nincs probléma: egy pixel egy texelnek felel meg (a texel egy 3D felületre szuperponált kétdimenziós kép pixele). De mi a teendő, ha a tárgy megdőlt vagy messze van? Hiszen ilyenkor több texel van egy pixelben, és mivel a monitor korlátozott számú képponttal rendelkezik, így egy bizonyos folyamaton - szűrés - keresztül több texelből kell kiszámolni mindegyik színét.


A könnyebb érthetőség kedvéért képzeljük el, hogy minden pixel egy négyzet alakú „lyuk” a monitoron, mi „fénysugarakat” lövünk ki a szemből, és a texelek a monitor mögötti négyzetrácson helyezkednek el. Ha a rácsot közvetlenül mögé helyezzük a monitorral párhuzamosan, akkor az egy pixel fénye csak egy texelt fed le. Most elkezdjük elmozdítani a rácsot – mit kapunk? Az a tény, hogy egy pixelből származó fényfoltunk már több texelt is lefed. Most forgassuk el a rácsot, és ugyanazt kapjuk: egy pixelből származó folt sok texelt lefed. De egy pixelnek lehet egy színe, és ha sok texel van benne, akkor szükségünk van egy algoritmusra, amellyel meghatározzuk a színét - ezt nevezik textúra szűrésnek.


Ez a legegyszerűbb szűrési algoritmus: azon alapul, hogy a pixelszínhez a fényfolt középpontjához legközelebb eső texel színét vesszük ki a pixelből. Ennek a módszernek az előnye nyilvánvaló - ez teszi a legkevesebb terhelést a videokártyára. Számos hátránya is van - egy központi texel színe jelentősen eltérhet több tucat, sőt több száz másik texel színétől, amelyek a pixelpontba esnek. Ráadásul magának a foltnak a formája is jelentősen változhat, de a középpontja ugyanazon a helyen maradhat, és ennek következtében a pixel színe nem változik. Nos, a legfontosabb hátrány a „blokkosság” problémája: amikor kevés a texel egy pixelben (vagyis egy objektum a lejátszó mellett), akkor azt kapjuk, hogy ezzel a szűrési módszerrel a kép meglehetősen nagy része egy színnel megtöltve, ami jól látható, azonos színű „blokkokhoz” vezet a képernyőn. A végső képminőség egyszerűen borzasztó:


Így nem meglepő, hogy ma már nem alkalmaznak ilyen szűrést.


A videokártyák fejlődésével erejük növekedni kezdett, így a játékfejlesztők tovább mentek: ha egy texelt veszünk egy pixel színére, akkor rossz lesz. Oké – vegyük az átlagos színt 4 texelből, és nevezzük bilineáris szűrésnek? Egyrészt minden jobb lesz - a blokkoltság eltűnik. De jön a kettes számú ellenség – a kép elmosódása a lejátszó közelében: ez annak köszönhető, hogy az interpolációhoz több texelre van szükség, mint négyre.

De nem ez a fő probléma: a bilineáris szűrés jól működik, ha az objektum párhuzamos a képernyővel: ekkor mindig kiválaszthat 4 texelt, és „átlagos” színt kaphat. De a textúrák 99%-a a lejátszó felé van döntve, és kiderül, hogy 4 négyzet alakú paralelepipedont (vagy trapézt) közelítünk 4 négyzetnek, ami nem helyes. És minél jobban meg van döntve a textúra, annál kisebb a színpontosság és annál erősebb az elmosódás:


Oké, mondták a játék fejlesztői – mivel a 4 texel nem elég, vegyünk kétszer négyet, és a szín pontosabb illesztése érdekében mip-textúrás technológiát alkalmazunk. Ahogy fentebb is írtam, minél távolabb van a textúra a lejátszótól, annál több texel lesz egy pixelben, és annál nehezebben tudja feldolgozni a képet a videokártya. A MIP textúra ugyanazon textúra különböző felbontásokban való tárolását jelenti: ha például az eredeti textúra mérete 256x256, akkor a másolatok a memóriában tárolódnak 128x128, 64x64 stb. méretben, 1x1 méretig:


És most a szűréshez nem csak magát a textúrát veszik, hanem a mipmap-et is: attól függően, hogy a textúra távolabb vagy közelebb van a lejátszóhoz, vagy egy kisebb vagy nagyobb textúra mipmap kerül, és már rajta a legközelebbi 4 texel. a pixel közepére veszik, és bilineáris analízist végeznek szűréssel. Ezután az eredeti textúra pixeléhez legközelebb eső 4 texelt veszünk, és ismét megkapjuk az „átlagos” színt. Ezt követően a mipmap és az eredeti textúra átlagos színeiből veszik az „átlagos” színt, és hozzárendelik a pixelhez - így működik a trilineáris szűrési algoritmus. Emiatt valamivel jobban terheli a videokártyát, mint a bilineáris szűrést (a mipmap-et is fel kell dolgozni), de a képminőség jobb:


Amint látható, a trilineáris szűrés sokkal jobb, mint a bilineáris és még inkább a pontszűrés, de a kép nagy távolságokon továbbra is homályos lesz. A homályos kép pedig abból adódik, hogy nem számolunk azzal, hogy a textúra a lejátszóhoz képest eldőlhet - és pont ezt a problémát oldja meg az anizotróp szűrés. Röviden, az anizotróp szűrés működési elve a következő: egy MIP-textúrát veszünk, amelyet a nézési irányban állítunk be, majd színértékeit átlagoljuk bizonyos számú texel színével a nézési irány mentén. A texelek száma 16-tól (x2-es szűréshez) 128-ig (x16-hoz) változik. Leegyszerűsítve, a négyzet alakú szűrő helyett (mint a bilineáris szűrésnél) egy hosszúkás szűrőt használnak, amely lehetővé teszi a kívánt szín jobb kiválasztását a képernyő pixeléhez. Mivel a képernyőn egymillió vagy még több pixel is lehet, és minden texel legalább 32 bites (32 bites szín), az anizotróp szűréshez óriási videomemória sávszélességre van szükség – több tíz gigabájt másodpercenként. Az ilyen nagy memóriaigény a textúra tömörítés és a gyorsítótárazás miatt csökken, de továbbra is DDR memóriával vagy 64 bites busszal rendelkező videokártyákon a trilineáris és az x16-os anizotróp szűrés közötti különbség elérheti a 10-15% fps-t, de a kép ilyen szűrés után a legjobbnak bizonyul:

Textúraszűrés.

A szűrés megoldja a pixel színének meghatározását a textúrakép meglévő texelei alapján.

A textúrák felvitelének legegyszerűbb módja az ún pont mintavétel(egypontos mintavétel). Lényege, hogy a sokszöget alkotó minden pixelhez a textúraképből kiválasztanak egy texelt, amely a legközelebb van a fényfolt közepéhez. Hiba történik, mert egy képpont színét több texel határozza meg, de csak egy került kiválasztásra.

Ez a módszer nagyon pontatlan, és használatának eredménye a szabálytalanságok megjelenése. Nevezetesen, amikor a pixelek mérete nagyobb, mint a texelek, villogó hatás figyelhető meg. Ez a hatás akkor következik be, ha a sokszög egy része elég messze van a megfigyelési ponttól ahhoz, hogy sok texel kerüljön az egy pixel által elfoglalt helyre. Vegye figyelembe, hogy ha a sokszög nagyon közel van a megfigyelési ponthoz, és a texelek mérete nagyobb, mint a pixelek, akkor a képminőség másfajta romlása figyelhető meg. Ebben az esetben a kép kockásnak tűnik. Ez a hatás akkor jelentkezik, ha a textúra elég nagy lehet, de a rendelkezésre álló képernyőfelbontás korlátozása megakadályozza az eredeti kép megfelelő megjelenítését.

Második módszer - bilineáris szűrés(Bi-Linear Filtering) interpolációs technológia alkalmazásából áll. Az interpolációhoz használandó texelek meghatározásához a fényfolt alapformáját - kört - használjuk. Lényegében egy kört 4 texellel közelítünk. A bilineáris szűrés a képtorzítások (szűrés) kiküszöbölésére szolgáló technika, például a textúrák "blokkoltsága" nagyításkor. Egy objektum lassú forgatásakor vagy mozgatásakor (közelítés/távolodás) észrevehető lehet a pixelek „ugrása” egyik helyről a másikra, pl. blokkoltság jelenik meg. E hatás elkerülése érdekében bilineáris szűrést alkalmaznak, amely négy szomszédos texel színértékének súlyozott átlagát használja az egyes pixelek színének meghatározásához, és ennek eredményeként meghatározza az átfedő textúra színét. A kapott pixelszínt három keverési művelet elvégzése után határozzuk meg: először két pár texel színét, majd a kapott két színt összekeverjük.

A bilineáris szűrés fő hátránya, hogy a közelítést csak a képernyővel vagy megfigyelési ponttal párhuzamos sokszögeknél hajtják végre helyesen. Ha a sokszöget szögben elforgatjuk (és ez az esetek 99%-ában így van), akkor rossz közelítést alkalmazunk, mivel egy ellipszist kell közelíteni.

A "mélységi aliasing" hibák abból adódnak, hogy a nézőponttól távolabb lévő objektumok kisebb méretben jelennek meg a képernyőn. Ha egy tárgy elmozdul és távolodik a nézőponttól, a zsugorodó objektumra ráhelyezett textúrakép egyre jobban összenyomódik. Végül az objektumra alkalmazott textúrakép annyira tömörödik, hogy renderelési hibák lépnek fel. Ezek a renderelési hibák különösen az animációban jelentenek problémát, ahol az ilyen mozgási műtermékek villódzást és lassított effektusokat okoznak a kép azon részein, amelyeknek állónak és stabilnak kell lenniük.

A következő, bilineáris textúrájú téglalapok illusztrálják a leírt hatást:

Rizs. 13.29. Objektum árnyékolása bilineáris szűrési módszerrel. A "mélységi aliasing" műtermékek megjelenése, amelyek több négyzet egybeolvadását eredményezik.

A hibák elkerülése és annak a ténynek a szimulálása érdekében, hogy a távolban lévő tárgyak kevésbé részletgazdagnak tűnnek, mint a nézőponthoz közelebbiek, az ún. mip-leképezés. Röviden, a mip-mapping a különböző fokú vagy részletgazdagságú textúrák átfedése, amikor a megfigyelési pont távolságától függően a kívánt részlettel rendelkező textúrát választják ki.

A mip-textúra (mip-térkép) előre szűrt és méretezett képek halmazából áll. A mip-map réteghez társított képen egy pixel az előző réteg négy képpontjának átlagaként jelenik meg nagyobb felbontás mellett. Ezért az egyes mip-textúra szintekhez társított kép négyszer kisebb, mint az előző mip-map szint.

Rizs. 13.30. A hullámos textúra minden egyes mip-map szintjéhez társított képek.

Balról jobbra mip-map szintjeink vannak: 0, 1, 2 stb. Minél kisebb lesz a kép, annál több részlet vész el, egészen a végéhez közeledve, amikor a szürke képpontok elmosódott elmosódásán kívül semmi sem látható.

A Level of Detail, vagy egyszerűen LOD, annak meghatározására szolgál, hogy melyik mip-map szintet (vagy részletezési szintet) kell kiválasztani a textúra objektumra való alkalmazásához. A LOD-nak meg kell felelnie a képpontonként átfedett texelek számának. Például, ha a textúrázás 1:1-hez közeli arányban történik, akkor a LOD 0 lesz, ami azt jelenti, hogy a legmagasabb felbontású mip-map szintet fogja használni. Ha 4 texel átfedésben van egy pixelben, akkor a LOD 1 lesz, és a következő alacsonyabb felbontású mip szint kerül felhasználásra. Jellemzően a megfigyelési ponttól távolodva a legnagyobb figyelmet érdemlő objektum magasabb LOD-értékkel rendelkezik.

Míg a mip-textúrázás megoldja a mélységi alias hibák problémáját, használata más műtermékek megjelenését okozhatja. Ahogy az objektum egyre távolabb mozog a megfigyelési ponttól, az alacsony mip-térkép szintről a magas szintre átmenet történik. Amikor egy objektum átmeneti állapotban van az egyik mip-map szintről a másikra, egy speciális vizualizációs hiba jelenik meg, az úgynevezett „mip-banding” – sávozás vagy laminálás, azaz. jól látható határai az egyik mip-térkép szintről a másikra való átmenetnek.

Rizs. 13.31. A téglalap alakú szalag két hullámszerű képpel texturált háromszögből áll, ahol a "mip-banding" műtermékeket piros nyilak jelzik.

A "mip-banding" hibák problémája különösen az animációban éles, mivel az emberi szem nagyon érzékeny az elmozdulásokra, és könnyen észreveszi a szűrési szintek közötti éles átmenet helyét, amikor egy tárgy körül mozog.

Trilineáris szűrés(trilineáris szűrés) egy harmadik módszer, amely eltávolítja a mip-textúra használatakor előforduló, mip-sávos műtermékeket. Trilineáris szűréssel egy pixel színének meghatározásához nyolc texel átlagos színértékét veszik fel, két szomszédos textúra közül négyet veszünk, és hét keverési művelet eredményeként meghatározzuk a pixel színét. Trilineáris szűrés esetén lehetőség van egy texturált objektum megjelenítésére sima átmenetekkel egyik mip-szintről a másikra, ami a LOD meghatározásával érhető el két szomszédos mip-map szint interpolálásával. Így megoldható a legtöbb probléma, amely a mip-textúrával és a jelenetmélység helytelen kiszámítása miatti hibákkal kapcsolatos ("mélységi aliasing").

Rizs. 13.32. Piramis MIP-térkép

Az alábbiakban egy példa látható a trilineáris szűrés használatára. Itt is ugyanazt a téglalapot használjuk, hullámszerű képpel texturálva, de a trilineáris szűrés miatt sima átmenetekkel egyik mip szintről a másikra. Vegye figyelembe, hogy nincsenek észrevehető renderelési hibák.

Rizs. 13.33. Egy hullámszerű képpel texturált téglalap jelenik meg a képernyőn mip-textúrával és trilineáris szűréssel.

Számos módja van a MIP textúrák létrehozásának. Az egyik módja az, hogy egyszerűen előre elkészíti őket grafikus csomagok, például az Adobe PhotoShop segítségével. Egy másik módszer a MIP textúrák menet közbeni generálása, azaz. program végrehajtása során. Az előre elkészített MIP textúrák további 30% lemezterületet jelentenek a textúrák számára a játék alaptelepítésében, de rugalmasabb módszereket tesznek lehetővé létrehozásuk vezérléséhez, és lehetővé teszik különböző effektusok és további részletek hozzáadását a különböző MIP-szintekhez.

Kiderült, hogy a trilineáris mipmapping a legjobb, ami csak lehet?

Természetesen nem. Látható, hogy nem csak a pixel- és texelméretek arányában van a probléma, hanem mindegyik alakjában (pontosabban a formák arányában) is.

A mip-textúrás módszer a legjobban olyan sokszögeknél működik, amelyek közvetlenül szemtől szemben vannak a nézőponttal. A megfigyelési ponthoz képest ferde sokszögek azonban meghajlítják az egymásra helyezett textúrát, így a textúra képének különböző típusai és négyzet alakú területei ráhelyezhetők a pixelekre. A mip textúrázási módszer ezt nem veszi figyelembe, és az eredmény az, hogy a textúra kép túlságosan elmosódott, mintha rossz texeleket használtak volna. A probléma megoldásához több mintát kell vennie a textúrát alkotó texelekből, és ezeket a texeleket a textúratérben lévő pixel "leképezett" alakjának figyelembevételével kell kiválasztania. Ezt a módszert hívják anizotróp szűrés("anizotróp szűrés"). A hagyományos mip textúrát "izotrópnak" (izotrópnak vagy egyenletesnek) nevezik, mivel mindig a texelek négyzetes területeit szűrjük össze. Az anizotróp szűrés azt jelenti, hogy az általunk használt texel régió alakja a körülmények függvényében változik.

Textúra algoritmusok leírása: textúra szűrés

Textúraszűrés

Az utóbbi időben a 3D számítógépes grafika fejlesztésével foglalkozó cégek folyamatosan törekedtek a számítógépes renderelés részletgazdagságának és képminőségének növelésére. Folyamatosan fejlesztik az új technológiákat és a 3D renderelő architektúrákat, a tömörítési algoritmusokat fejlesztik és frissítik a memória sávszélességének növelése érdekében, és a memória architektúrája is változásokon megy keresztül. Sajnos a 3D-s grafika fejlett ötletei és a hagyományos PC-k között meglehetősen nagy a szakadék: a modern játékok valósághűsége stb. 1-2 éve kifejlesztett technológiákkal készült. Ezenkívül a közönséges PC-k ereje nagyon korlátozott, ezért meglehetősen egyszerű algoritmusokat használnak a játékokhoz, amelyeket ebben a cikkben tárgyalunk: ez a textúra, és részletesebben a textúra szűrése.

A jelenleginél jóval jobb teljesítményű ideális számítógéppel képesek lennénk valós időben, nagyon valósághű rendereléssel megjeleníteni egy képet. Lehetne több millió, sőt milliárd képpontot kiszámolni, és mindegyiknek beállítani a saját színét – ebben az esetben a képet egyszerűen nem lehet megkülönböztetni egy valódi videótól. De sajnos ezek egyelőre csak álmok: a meglévő számítógépeknél még mindig túl nehéz egyidejűleg feldolgozni a tárgyak rajzát mozgás közben stb. Ráadásul még mindig katasztrofálisan hiányzik a memória sávszélessége. A 3D-s alkalmazások jó minőségének biztosítása érdekében technológiákat fejlesztenek a képmegjelenítési folyamat egyszerűsítésére.

Az egyik leggyakrabban használt technológia, amely meglehetősen jó minőségben egyszerűsíti a képszámításokat, a textúra. A textúra egy 2D kép, amelyet egy 3D objektumra vagy bármilyen felületre alkalmaznak. Vegyük például a következő helyzetet: Ön fejlesztő, és azt szeretné, hogy a felhasználó téglafalat lásson. Létrejön egy 3D-s falkeret, és külön választhatja ki a téglákat. Most készítünk egy 2D-s képet egy tégláról, és egy téglára helyezzük egy 3D-s keretben, és így tovább - az egész falat. Az eredmény egy normál 3D-s fal, és a grafikus chipnek nem kell minden képpontot megrajzolnia és kiszámolnia - kiszámolja annak a 3D-s keretnek a koordinátáit, amelyhez a 2D-s kép kapcsolódik.

Van még egy fogalom a textúrában, amelyet meg kell vitatni. Ha egy 2D-s képet fed le, az sok színes töredékre oszlik. Ez az objektum méretezése érdekében történik - a textúra 2-dimenziós, és a 3-dimenziós objektumnak meg kell változnia, amikor közeledik vagy távolodik. A textúrának is változnia kell a valósághűség és a minőség megőrzése érdekében. Tehát a textúra sok színes töredékre oszlik, amelyeket texeleknek (textúraelemeknek) neveznek. A jövőben például egy objektumhoz közeledve nem kell új textúrát betölteni: a texeleket az eredeti textúrából veszik és kinagyítják. Természetesen a minőség elvész, de meglehetősen magas szinten marad, ráadásul ezzel a megközelítéssel a grafikus processzor és a memória jelentősen tehermentesül.

Mip-Mapping

A mozgás minden megjelenített objektum jellemzője; Még ha maga a tárgy álló is, akkor is megváltozik, ha a karakter mozgása miatt megváltozik a látószöge. Ezért az objektumra helyezett textúrának is mozognia kell - ez bizonyos bonyodalmakat és további feldolgozást von maga után. De mi van akkor, ha valamilyen szögből nézünk egy tárgyat, például a padlót? A padló nagy területet foglalhat el, és a valósághűség megőrzése érdekében minél távolabb van tőlünk, annál kisebb alkatrészei (például csempe). Ennek biztosítása érdekében a textúrát bizonyos módon csökkenteni kell. Sajnos a textúrák felbontásának egyszerű megváltoztatása meglehetősen kellemetlen hatáshoz vezethet, amikor az egyik textúra vizuálisan összeolvad a másikkal. További kellemetlen hatás léphet fel, ha a texel nagyobb, mint a szükséges pixelszám. Ez akkor fordul elő, ha egy nagyon távoli textúrát nézel. Mindkét helyzet előfordul a hagyományos élsimítás használatakor. És itt vannak valódi példák ezekre az esetekre: nincs

Az ilyen helyzetek enyhítésére mip-mapping készült. Ez a technológia nagyon egyszerűen működik: az eredeti textúra különféle helyzetekben jön létre úgy, hogy a textúrát különböző távolságokban és különböző látószögekben megfelelően jelenítse meg. Egy objektumhoz közeledve a textúra nagyobb felbontással, távolodáskor pedig kisebb felbontással jelenik meg. Így a mip-mapping javítja a képminőséget és csökkenti a szaggatottságokat. Az alábbiakban ugyanazok a képek láthatók, csak a mip-mapping engedélyezésével: ebben az absztraktban nincsenek képek.

Észrevett-e minőségi javulást? A második képen különösen észrevehető a sárga és piros mintával. Figyelem: nem csak a távoli textúrák minősége javult: a közeli textúrák is sokkal jobban néznek ki. Általánosságban elmondható, hogy a mip-mapping-el ellátott kép sokkal jobban néz ki, mint nélküle: normál megjelenítéskor nem észlelhető számos torzítás és görbület.

Szűrés

A ponttextúrázás talán a textúrázás fő típusa. Pontos textúra esetén a textúra egy külön töredéke (texel) kerül kiválasztásra, és a képpontok színértékeként kerül felhasználásra. Az a tény, hogy ez a módszer némi hanyagsággal és ennek következtében a képminőség romlásával jár. Egy ilyen kép egyszerűen elfogadhatatlan a meglévő szabványok szerint. Az alábbiakban egy ponttextúrával feldolgozott textúra látható (a kép alján). A képen az elméleti minőségromlás látható, ha túl nagy texelméretet választunk.

Bilineat szűrés

Egy másik textúrázási módszer a bilineáris szűrés. Ennek a textúrás módszernek a működési elve nagyon hasonlít a pontmódszerhez, de ettől eltérően nem a teljes kép, hanem egy 4 texeles blokk kerül felhasználásra a pixelek színének kiválasztására. Ez javítja a pontosságot a pixelszínek kiválasztásakor, és jobb visszaadja a kép egyes apró részleteit.

Ez a kép egy kép rajzolására mutat példát bilineáris szűréssel és mip-leképezéssel.

Trilineáris szűrés

A bilineáris szűrés második születését kapta a trilineáris szűrés formájában, amelynek működési elve teljesen megegyezik, de egy továbbfejlesztett számítási algoritmust alkalmaznak, ami növeli a renderelési pontosságot. A trilineáris szűrés a bilineáris szűréshez hasonlóan 4 texeles blokkokat használ, ugyanúgy, mint a bilineáris szűrésnél, a kép normalizálódik, majd a 4 texeles határblokkból származó kép normalizálódik. Az utolsó lépés mindkét blokk határvonalának elemzése, melynek eredményeként a 2 blokk határán előforduló esetleges hibákat és inkonzisztenciákat korrigálják. A bilineáris szűrésnél meglehetősen gyakori, hogy a blokkhatárokon vonalak jelennek meg, amelyek trilineáris szűrés esetén eltűnnek. Ezenkívül a trilineáris szűrés használatakor a mozgás során és a látószög megváltoztatásakor a torzulások és szabálytalanságok jobban eltűnnek. Az alábbiakban a trilineáris szűrés használatának és működésének diagramja látható.

Meg kell jegyezni, hogy bizonyos hibák még trilineáris szűrés esetén is jelentős távolságra jelennek meg. Ennek az az oka, hogy eredetileg a mip-map szintek közötti torzítás csökkentésére tervezték.

A kép csak közvetlenebb betekintési szögből készül nagyon jó minőségben, valós rajznál az objektum geometriai formái megzavarhatók. Nézd meg az SGI képét:

Anizotróp szűrés

A texturált objektumok alakja mind a bilineáris, mind a trilineáris szűrés során torzulhat, mert Mindkét szűrő izotróp - a kép egy bizonyos alakú - négyzet alakú. A generált objektumok többsége nem illeszkedik ehhez a sajátos és változatlan formához: jó minőségű feldolgozásukhoz más típusú szűrést kell alkalmazni - anizotróp. Az anizotrópia több latin szóból áll, és szó szerint azt jelenti, hogy "Ani" - nem, "iso" - egy bizonyos forma és "tropia" - modell - azaz. határozatlan alakú modellek. Ennek a technológiának a neve annak műszaki megvalósítását tükrözi. Az anizotróp szűrés általában legalább 8 texelen működik, mip-map szinteken minden irányban, és egy előre meghatározott alakú modellt használ. Ennek eredményeként a zaj és az objektumok torzulása megszűnik, és a kép egésze jobb minőségű lesz.

Hasonlítson össze két képet: az egyik 16 texeles anizotróp szűrést használt, amely kiküszöbölte a torzításokat a mip-map szintjei és a képzaj között, a második képen az anizotrop szűrés ki volt kapcsolva.

Ügyeljen a kép nagy távolságára: szembetűnőek az anizotrop és izotróp szűrés közötti különbségek. A textúra minősége anizotróp szűréssel nagy távolságokon is hasonló marad az eredetihez; Az izotróp szűrésnél hajlamosak a kép „kisimítására”, ami minőségromlást eredményez. Az anizotróp szűrés, mint a trilineáris szűrés, csökkenti a textúra egyenetlenségeit. De anizotróp szűrés esetén a minőség még mindig jobb, mert sokkal nagyobb számú blokkot használ az összehasonlításhoz. Íme egy másik példa, amely bemutatja az anizotróp szűrést működés közben:

A fogyasztói minőségű grafikus kártyák sokáig nem biztosították az anizotróp szűréssel elérhető képminőséget. Az olyan grafikus chipek megjelenésével, mint az NVIDIA GeForce2 és az ATI Radeon, lehetővé vált az anizotróp szűrés használata, amely 16 texeles blokkokat elemzi a hardverben. A GeForce3 és Radeon 8500 videokártyák már 32 texeles anizotróp szűrést használnak. Az alábbi kép egy olyan képet mutat, amely közel áll ahhoz, amit professzionális 64 texeles anizotróp szűréssel készítenének:

Jövő…

A közeljövőben egyre gyakrabban alkalmazzák az anizotróp szűrést. A következő generációs grafikus chipek számára már új technológiákat fejlesztenek ki az objektumok egyenetlenségeinek és szögletességének kiküszöbölésére. A közeljövőben multitexel blokkokkal feldolgozott képeket láthatunk majd. Lesznek olyan videokártyák, amelyek hardveresen támogatják az anizotróp szűrést 128 texel blokkokkal. Ugyanakkor a képminőség jelentősen javul, és a termelékenység nő.

Ezen kívül:

Antialiasing és anizotróp szűrés ma: mit, hol és mennyit? Első rész

Valójában egy ilyen címet viselő cikk olyan közhelyekkel kezdődhetne, mint például: „Valamikor minden számítógép-felhasználó látott már olyan 3D-s képjavító technikákat, mint az élsimítás vagy az anizotróp szűrés”. Vagy ez: „amíg űrhajóink repülnek az űrben, az NVIDIA és az ATI programozói a jól ismert képjavító technikák teljesítményének javításának módjait keresik.” A második banalitás sokkal nagyobb eséllyel élhet abban az értelemben, hogy máris felkelti az érdeklődést annak a ténynek a látszatával, hogy azt a kérdést fogjuk vizsgálni, hogy kik és hogyan „optimalizálták” a sofőrjeit.

A közhelyeket azonban valószínűleg egyáltalán nem fogjuk tudni. Mert sokkal érdekesebb azon találgatni, hogy a képjavító technikák mennyire váltak mára elérhetővé a hétköznapi felhasználó, helyesebben a játékosok számára. Ma a játékosok a legaktívabb fogyasztói a 3D új technológiáinak és innovációinak. Általánosságban elmondható, hogy manapság egy nagy teljesítményű 3D-gyorsítóra kizárólag a legújabb számítógépes játékokhoz van szükség, amelyek erőteljes 3D-s motorokkal működnek, amelyek különféle verziók összetett shadereivel működnek. Manapság már senkit sem fogsz meglepni egy pixel shader 2.0 verziójú játékkal – a játékvilágban lassan mindennapossá válik az ilyen móka. A legtöbb játékot továbbra is az 1.1-es shader modellel adják ki, mivel a játékfejlesztők számára a legfontosabb, hogy biztosítsák, hogy a játékuk ésszerűen jól fusson azon a hardveren, amellyel a játékosok túlnyomó többsége rendelkezik. Egy szuper kifinomult motort most készíteni nagy pazarlás, sőt kockázat is. Ítélje meg maga: a „Doom 3” vagy a „Half-Life 2” osztályú motor fejlesztése (na jó, tegyük ide a shader 2.0 úttörőjét, a Crytek ötletgazdáját – „FarCry” egy igazi mindenütt jelenlévő hármasság) rengeteg időt vesz igénybe, ami további nehézségekkel jár a fejlesztésben - olyan időkeretben kell a motort fejleszteni, hogy az újítások és az eredeti fejlesztések ne avuljanak el a motor létrehozása során.

Ha kételkedsz abban, hogy ez megtörténhet, akkor teljesen hiábavaló - a „Half-Life 2” esetében minden pontosan így volt (a „Doom 3” pedig a GeForce 3-ra való tekintettel lett kifejlesztve, és a GeForce-nál jelent meg FX). Ezenkívül az ebbe az osztályba tartozó motorok fejlesztése magas fejlesztési költségekkel jár: a tehetséges programozók ma nem olcsók. Az utóbbi időben pedig nagy figyelmet (még a kelleténél nagyobbat is) fordítanak úgymond „politikára” a játékmotorokkal kapcsolatban.

Igen, igen, így van, jól hallottad, a 3D-s területnek már régóta megvan a maga politikája, amely természetesen a két óriás grafikus processzorok tervezésével kapcsolatos érdekeire épül: az ATI és az NVIDIA. A kemény Kanada már régóta harcol a napfényes Kalifornia ellen, és ennek a konfrontációnak egyelőre nincs vége, ami persze csak nekünk, hétköznapi fogyasztóknak kedvez. Most nem elég egy menő motort fejleszteni - a sikerhez igénybe kell vennie a kaliforniai díva NVIDIA vagy a kanadai ATI támogatását, szerencsére most már az elsőnek és a másodiknak is saját partnerségi programja van a játékfejlesztőknek. Az NVIDIA az ilyen programot „Ahogyan játszani kell”, az ATI pedig „Get it in the game”. Egyáltalán, és az ATI garantálja, hogy magában a játékban mindent meg fogunk kapni, amit csak akarunk. Elég csábító, ugye? az utóbbiak közül a motor neve Source, de a könnyebb érthetőség kedvéért a helyes asszociáció fenntartása érdekében „Half-Life 2”-nek nevezzük), és eredetileg a grafikus chip-gyártók mérnökeivel szoros együttműködésben fejlesztették ki, hogy a játékok jobban működne egy gyártó GPU-ján.

Ezért, mint látjuk, az új 3D grafikus motorok területén a forradalmak nagyon problematikusak, ezért a játékmotorok világában ezek a forradalmak nem túl gyakran fordulnak elő. A képminőséget azonban valahogy javítani kell. Ha egyszerűen megnöveljük a sokszögek számát a keretben, ezáltal vizuálisan szebb képet kapunk, akkor a végén odáig jutunk, hogy a gyorsító nem fogja tudni feldolgozni a jelenetet elfogadható képkockasebességgel. , de még mindig hiányozni fog valami a képből. A pixelek létrái továbbra is megmaradnak, és a textúrák minősége sem javul. Vannak kevésbé nyilvánvaló módszerek a monitoron látható háromdimenziós kép minőségének javítására – anizotróp szűrés és élsimítás. Ezeknek a képjavító technikáknak nincs köze közvetlenül magához a 3D motorhoz, és természetesen magát a motort sem tudják szebbé tenni, de képesek úgy dolgozni textúrákkal és képekkel, hogy a kimeneten, azaz a monitoron vizuálisan szebb és lágyabb képet láthatunk.

Az anizotróp szűrés és élsimítás területén óriási mennyiségű illesztőprogram-optimalizálás történik mind az NVIDIA, mind az ATI részéről. A vállalatok eltérő megközelítéseket és irányelveket alkalmaznak ugyanezekkel az optimalizálásokkal kapcsolatban, amelyek néha nem teljesen tisztességesek a felhasználókkal szemben. Cikkünknek azonban éppen az a célja, hogy megértsük, mi a jó és mi a rossz mindkét GPU-gyártó cég megközelítésében, és mi javíthatja a képminőséget manapság a 3D-s játékokban.

Mi az anti-aliasing és mire használják?

Mielőtt elkezdenénk részletezni egy olyan égető témát, mint az élsimítás és a különböző típusú textúra szűrések optimalizálása, nem árt (sőt, mondjuk szükséges is), ha elméleti ismereteket sajátítunk el mai beszélgetésünk témájában.

Szóval, élsimítás – mi ez és miért van rá szükség? Mindenekelőtt az „antialiasing” szóban ki kell emelni az „anti” részt. Nagyon világos, hogy a szónak ez a része azt sugallja, hogy maga az „antialiasing” jelensége valami ellen való küzdelemre irányul. Ahogy sejthető, esetünkben – „aliasing”-tal. Ezért ebben a pillanatban fontos, hogy világosan megértsük, mi az a hírhedt „aliasing”.

Először is világosan meg kell értenie, hogy a kép, amelyet Ön és én nap mint nap láthatunk monitoraink képernyőjén, úgynevezett kis részecskékből áll, amelyeket általában pixeleknek neveznek. Ebben az értelemben jó hasonlat a kockás papír példája. A kép a monitoron ugyanaz a kockás papír, csak ebben az esetben nagyon-nagyon kicsik. Ha azt mondják, hogy a képernyő felbontása 1024x768 32 bites színnel, az azt jelenti, hogy vízszintesen 1024 pixel fér el a monitoron, függőlegesen pedig 768. Sőt, minden pixel egy színnel festhető a 32 bites palettán elérhetők közül. Jelenleg a 32 bites szín a határa annak, amit egy számítógép képernyőjén elérhetünk. Az emberiség legjobb elméi (ugyanaz a Carmack) már arról beszélnek, hogy át kell váltani a 64 bites színre, és rámutatnak a 32 bites paletta nyilvánvaló hátrányaira. Egy időben a 16 bites színről 32 bitesre való áttéréskor ez az igény egyértelműen indokolt volt, és megvoltak az okai annak, hogy érdemes lenne 32 bitesre váltani. A 64 bites színekre való átállás ma meglehetősen túlzás. Csakúgy, mint a 16 és 32 biteseknél, itt is elég sokáig kell várni, amíg minden szintű gyorsító képes lesz elfogadható sebességgel feldolgozni a 64 bites színeket.

Azok a cikkek, amelyek így vagy úgy érintik a 3D-s képek készítésének alapelveit, és ahol az élsimításról beszélnek, hemzsegnek egy egyszerű, de egyben a leghatékonyabb példában, amivel egész jól meg lehet érteni. mi az antialiasing. Nézze meg a kinagyított „Upgrade” feliratot, amely Wordben készült, majd egyszerűen kinagyítva Photoshopban. Nem néz ki túl jól, igaz? A betűk oldalán látható az úgynevezett fésű, vagy más néven „létra”. Lényegében ez a „fésű” vagy „létra” aliasing. Egy másik példa lehet egy geometriai objektum, például egy piramis. Ugyanez a „fésű” jól látható a szélei mentén is. Most nézzünk meg egy másik képet ugyanarról a piramisról, de kétszer akkora felbontással. Már sokkal jobban néz ki, a „fésű” pedig szinte láthatatlan. Mint fentebb említettük, ezt a „fésűt” simító hatást annak köszönhetjük, hogy kétszeresére növeltük a felbontást.

Mit is jelent ez? Tegyük fel, hogy egy 200x200 pixel felbontású piramist rendereltünk (fent már részletesen tisztáztuk azt a kérdést, hogy mik azok a pixelek és miért van szükség rájuk). A pontok számát függőlegesen és vízszintesen pontosan 2-szeresére növeltük, azaz függőlegesen 400, vízszintesen 400 pixeles felbontású képet kaptunk. Ez azt is jelenti, hogy a jelenetben lévő objektumunk pontjainak száma megduplázódott. Mit tett ez az álnevünk hatásával? Nyilván minimális lett, vagyis kisimult - elvégre az objektum élei mentén is megduplázódott a pontok száma. A „kisimított” szó a kulcs itt. Végül is az élsimítást más néven élsimításnak nevezik, ami a technológia lényegét tükrözi, amely pontosan azt a „létrát” simítja végig a háromdimenziós objektumok szélein.

Valójában a felbontás növelése után a „létra” a piramis széléről nem tűnt el - ott marad, mint korábban. A felbontás növelésének köszönhetően (ami a piramis megjelenítésére fordított képpontok számának növekedését jelenti) azonban a „létra” effektus az emberi látás sajátosságai miatt kisimul, ami már nem látja tisztán a képpontokat. egy tárgy szélén. Teljesen egyértelmű, hogy ha egyre tovább növeljük a felbontást, az aliasing hatás egyre kevésbé lesz megfigyelhető. Pontosabban, az emberi szem egyre kevésbé fogja észrevenni, hiszen maga az aliasing hatás nem múlik el. De az is teljesen egyértelmű, hogy a felbontást nem lehet a végtelenségig növelni, mert a monitorok, még a legmodernebbek is, véges felbontásúak, és nem olyan nagyok, ami miatt nem tudjuk folyamatosan növelni a pontok számát. Egyszerűen fogalmazva, a legegyszerűbb élsimítási hatást a képernyő felbontásának pusztán növelésével érhetjük el, de a felbontás nem nőhet a végtelenségig. Úgy tűnik, nincs kiút? A valóságban azonban megtalálták, és az emberi látás ugyanazon sajátosságán alapul.

Ezt a képen a színek egyenletes átmenetének köszönhetően sikerült elérni. Valójában a kép vizuális javítása nem a felbontás fizikai növelésének köszönhető, hanem úgymond a felbontás színének növekedése miatt. Ebben a cikkben nem írunk le algoritmusokat ezeknek a pontoknak a kiszámítására, és nem megyünk bele a matematikai számítások mélységébe, hanem csak az ilyen élsimítás működési elvéről beszélünk. Az objektumok határán lévő létra már csak azért is látható, mert a háromdimenziós objektumok szélei leggyakrabban színben meglehetősen erősen kiemelkednek a kép többi részéből, és egy pixeles vékony vonalakként jelennek meg. Ezt úgy lehet kompenzálni, hogy számos pont elhelyezésével a szél színértékei alapján számítják ki a színeket, és a szél közelében lévő pontokat. Vagyis ha egy objektum széle fekete, a háttér pedig fehér, akkor a fekete élvonal melletti extra pont szürkévé válik. Minél több ilyen extra pont található bármely 3D objektum széle közelében, annál simábbnak tűnnek a szélei, és annál kevésbé lesz észrevehető a létra. Ezt a módszert élsimításnak nevezik. A videokártya illesztőprogramjában beállított élsimítási minőség, például: 2x, 4x, 6x, 8x, az élsimítást igénylő sor körül elhelyezett további pixelek számát jelenti.

Anizotróp szűrés: mini oktatási program kezdőknek

A szűrés fogalmának megértéséhez alapvető ismeretekkel kell rendelkeznie. Azt már megtudtuk, hogy a képernyőn megjelenő kép sok pixelből áll, amelyek számát a felbontás határozza meg. Színes kép megjelenítéséhez a grafikus kártyának érzékelnie kell minden képpont színét. Színét a textúraképek háromdimenziós térben elhelyezkedő poligonokra való ráborítása határozza meg. A textúra képek pixelekből, vagy inkább texelekből állnak, vagyis a texel egy kétdimenziós kép egy 3D felületre szuperponált pixele. A fő dilemma a következő: melyik texel vagy texelek határozzák meg egy pixel színét a képernyőn. A szűrési probléma elképzeléséhez képzeljünk el egy képet. Tegyük fel, hogy a képernyő egy lap, sok kerek lyukkal, amelyek mindegyike egy-egy pixel. Annak meghatározásához, hogy egy pixel milyen színű a lemez mögött található háromdimenziós jelenethez képest, csak át kell néznie az egyik lyukon.

Most képzeljünk el egy fénysugarat, amely áthalad az egyik lyukon, és eléri a texturált sokszögünket. Ha az utóbbi párhuzamosan helyezkedik el a lyukkal, amelyen a fénysugár áthalad, akkor a fényfolt kör alakú lesz. Ellenkező esetben, ha a sokszög nem párhuzamos a lyukkal, a fényfolt eltorzul, és ellipszis alakú lesz. Úgy gondoljuk, hogy jelenleg sok olvasó feltesz egy kérdést: „Hogyan kapcsolódnak ezek a lemezek, egy lyuk, egy fénysugár a pixel színének meghatározásához?” Figyelem! Kulcskifejezés: a fényfoltban található összes sokszög meghatározza a pixel színét. Mindezek a szükséges alapismeretek, amelyek szükségesek a különböző szűrőalgoritmusok megértéséhez.

És most, hogy jobban megértse, miért van szükség a szűrésre, nézzük meg a folyamatokat a legendás „Quake 3 Arena” példáján. Képzeljünk el valami folyosót sok négyzetekkel és különféle díszekkel (szerencsére a Quake 3 Arénának ebből elég). A folyosó elején lévő ornamentum rendkívül részletgazdag, a folyosó végéhez (horizonthoz) közeledve a ornamentika elemei egyre kisebbek, i.e. kevesebb pixellel jelennek meg. Ennek eredményeként elvesznek az olyan részletek, mint a varratok a díszelemek között, ami ennek megfelelően a képminőség romlásához vezet.

A probléma az, hogy a grafikus kártya illesztőprogramja nem tudja, hogy a textúrában mely részletek fontosak.

Pontmintavétel

A pontmintavételezés a legegyszerűbb módja a pixel színének meghatározásának. Ez az algoritmus textúraképen alapul: csak egy texelt választunk ki, amely a legközelebb van a fényfolt közepéhez, és ebből határozzuk meg a pixel színét. Nem nehéz kitalálni, hogy ez teljesen rossz. Először is egy képpont színét több texel határozza meg, mi pedig csak egyet választottunk ki. Másodszor, a fényfolt alakja változhat, és az algoritmus ezt nem veszi figyelembe. De hiába!

Az in-line mintavételezés fő hátránya, hogy ha a sokszög a képernyő közelében helyezkedik el, akkor a pixelek száma jelentősen meghaladja a texeleket, ami miatt a képminőség nagymértékben romlik. Az úgynevezett blokkoló hatást, ahogy hisszük, sokan megfigyelhették a régi számítógépes játékokban, például ugyanabban a legendás „Doomban”.

A pontmintavétel előnye. Tekintettel arra, hogy a pixel színének meghatározása csak egy texel felhasználásával történik, ez a módszer nem kritikus a memória sávszélessége szempontjából, és ez automatikusan hatalmas előnyöket biztosít ennek a szűrési módszernek abban az értelemben, hogy a 3D-gyorsító nagyon kevés erőforrást használ. a sémát használó szűrésre költik.

Bi-lineáris szűrés

Bi-Linear Filtering – az interpolációs technológia alkalmazásán alapuló bilineáris szűrés. A szükséges texelek meghatározásához a fényfolt alapformáját, azaz egy kört használjuk. Körpéldánkban ez utóbbit 4 texellel közelítjük. Amint látja, itt valamivel jobbak a dolgok, mint a pontmintavételnél. A bilineáris szűrés már 4 texelt használ.

A kép minősége jobb, nincs blokkosság, viszont a képernyőhöz közeli sokszögek homályosnak tűnnek, ez pedig annak köszönhető, hogy az interpolációhoz a rendelkezésre álló négynél nagyobb számú texel szükséges.

A homályosság semmiképpen sem a bilineáris szűrés fő problémája. A tény az, hogy a közelítést csak a képernyővel vagy megfigyelési ponttal párhuzamosan elhelyezkedő objektumok esetében hajtják végre helyesen, míg bármely számítógépes játékban az objektumok 99%-a nem párhuzamosan helyezkedik el a megfigyelési ponttal. Ebből arra következtethetünk, hogy az objektumok 99%-a helytelenül kerül közelítésre. Vegyük például a körünket - a sokszög a megfigyelési ponthoz képest nem párhuzamosan helyezkedik el, ezért közelítsünk egy ellipszist, de közelítsünk egy kört, ami rendkívül helytelen. Ráadásul a bilineáris szűrés sokkal nagyobb igényt támaszt a memória sávszélességével kapcsolatban, ami általában több, mint logikus, tekintve, hogy a bilineáris szűrés már 4 texelt használ a pixel színének meghatározására.

Az internetes fórumokon és cikkekben található információk alapján az ATI trükközik a trilineáris textúra szűréssel az új X800 GPU-n. Vannak azonban olyanok is, akik hevesen védik az ATit. Általában az nVidiával kapcsolatos, egy évvel ezelőtti botrányra emlékeztetnek az ilyen viták.

Az ilyen heves vita oka a Computerbase német weboldalon megjelent cikk volt. Megmutatta, hogyan használ az ATI optimalizált trilineáris textúra szűrést, amelyet gyakran "brilineárisnak" neveznek a bilineáris és trilineáris szűrés keveréke miatt a Radeon 9600 és X800 GPU-kon. A hír valóban lenyűgöző volt, mivel az ATI mindig is valódi trilineáris szűrésről beszélt.

De hogy is néz ki valójában a helyzet? Ez optimalizálás, trükk vagy csak egy okos megoldás? A megítéléshez elmélyülnünk kell a különféle szűrési módszerek mögött meghúzódó technológiában. A cikk első része pedig pontosan ennek lesz szentelve, és néhány oldalra illesztve néhány technológiát mutatunk be nagyon leegyszerűsítve. Nézzük tehát a szűrés alapvető és alapvető funkcióit.

Lesz-e folytatás? Talán, mivel a Radeon 9600 és X800 kártyákon nemrég felfedezett brilineáris szűrés körüli vita folytatódik. Az ATi-t meg kell adni, hogy a kártyák képminősége vizuálisan nem romlik ettől a szűréstől. Legalábbis nincs olyan példa, amely mást sugallna. Eddig a brilineáris szűrés mesterségesen létrehozott laboratóriumi körülmények között nyilvánul meg. Ugyanakkor az ATi nem teszi lehetővé a teljes trilineáris szűrést az említett kártyákra, legyen az adaptív vagy sem. Az új szűrés miatt a tesztek teljesítményértékei nem mutatják meg az X800-ban rejlő teljes potenciált, mivel az FPS értékeket optimalizálás után kapjuk meg, aminek a sebességre gyakorolt ​​hatása nehezen értékelhető. Az „adaptív” szó pedig keserű utóízt hagy maga után. Az ATI nem adott nekünk semmilyen információt az illesztőprogram működéséről, és sokszor kijelentette, hogy a kártya teljes trilineáris szűrést kínál. Az ATi csak a fent említett kinyilatkoztatás után ismerte el, hogy a szűrést optimalizálták. Bízzunk benne, hogy a vezetőben máshol nincs ilyen "alkalmazkodóképesség".

A gyártók azonban lassan, de biztosan haladnak azon a ponton, ahol a tolerancia szintje túl lesz. Az „adaptivitás” vagy az indítandó alkalmazás definíciója nem teszi lehetővé a benchmark programok számára, hogy a játékokban a kártya tényleges teljesítményét mutassák. A játék képminősége illesztőprogramonként eltérő lehet. A gyártók szabadon szórakozhatnak a sofőrrel, attól függően, hogy a marketing osztálynak éppen milyen teljesítményre van szüksége. Nos, a fogyasztó azon joga, hogy tudja, mit is vásárol valójában, itt már senkit nem érdekel. Mindez a médiára van bízva – hadd teljesítsék oktatási küldetésüket. A cikkünkben tárgyalt szűrési trükkök pedig csak a leghíresebb ilyen esetek. Hogy mi van még elrejtve figyelmünk elől, azt csak sejteni lehet.

Minden gyártó maga dönti el, hogy milyen szintű képminőséget biztosít alapkivitelben. A gyártóknak azonban dokumentálniuk kell az általuk használt optimalizációkat, különösen akkor, ha el vannak rejtve az ismert benchmarkok elől, mint a legutóbbi ATI példában. A megoldás kézenfekvő: adjon lehetőséget az optimalizálás kikapcsolására! Ekkor a fogyasztó maga döntheti el, mi a fontosabb számára - több FPS vagy jobb minőség. A Microsoftra sem számíthat döntőbíróként. A WHQL tesztek nem sok mindent mérnek, és könnyen megkerülhetők: Ismered a „reszponzív” szó jelentését?

Jelenleg ismert szűrési optimalizálások
ATi nVidia
Trilineáris
optimalizálás
9600 RUB
X800
GF FX5xxx
(GF 6xxx)*
Szög optimalizálás
anizotróp szűrés
R9xxx
X800
GF 6xxx
Adaptív
anizotróp szűrés
R9xxx
X800
GF FX5xxx
GF 6xxx
Színpad optimalizálás R9xxx
X800
GF FX5xxx
LOD optimalizálás R9xxx
X800(?)

Általában az ilyen megbeszéléseknek megvannak a maga előnyei: a vásárlók és esetleg az OEM-ügyfelek elkezdenek hallgatni a problémára. Nincs kétségünk afelől, hogy a féktelen optimalizálás mániája folytatódni fog. A sötét birodalomban azonban megjelent egy fénysugár, amit az nVidia a trilineáris optimalizálásával egyértelműen demonstrált. Bízzunk a további hasonló lépésekben!

KATEGÓRIÁK

NÉPSZERŰ CIKKEK

2024 „kingad.ru” - az emberi szervek ultrahangvizsgálata