Aktív témák

  • rudi

    nagyúr

    ModerátoroknakON
    Majdnem 7000 karakter lett... Lécci ne töröljétek mert összefoglalónak szántam; köszi ;)
    ModerátoroknakOFF

    Gondolom legtöbbeknek tiszta miben tér le az izotropikus szűrés az anizotropikustól. (Ha mégsem az akkor nézzétek meg a Beyond3D idevágó cikkét: [L]http://www.beyond3d.com/articles/Anisotropic/index.php[/L] AF-re vagy az én magyar verziómat [L]http://vganfo.uw.hu/vga.html[/L].). Lényeg hogy aniso filterezésnél nem azonos oldalméretű ablakkal mintavételezünk.

    Másik dolog, amit feltétlenül ismerni kell a MIP (multum in parvum) textúrázási módszer. Távolabbi alakzatoknál nem a teljes minőségű textúrát használják mintavételezésre (aliasing effektusokat elkerülendő), hanem annak több lépcsőben alulméretezett változatát. Ezzel logikusan követve a „távolban kevésbé részletgazdagok az objektumok” valós világbeli nézetet. Egy 512×512es textúra alulméretezett változatai 256×256, 128×128, 64×64, 32×32, 16×16, 8×8, 4×4, 2×2 1×1 méretűek. Ezzel az optimalizációval viszont fellép két újabb kérdés:
    1. Mikor melyik MIP szintet használjuk?
    2. Hogyan oldjuk meg a váltás a MIP szintek között?

    1es megoldható a kamerától vett távolság 2es alapú logartimusát használó képlettel.
    2es kérdés bilineáris filter esetén durva vágás (egy bizonyos pontig egyik MIPszint, utána pedig a következő). Trilineáris filter esetén a két legaktuálisabb MIP szintből mintavételeznek és ezt interpolálják (olyan átlagolás ahol NEM AZONOS súllyal számít a két minta, általában lineáris átmenet).

    Mindkét megoldásnál lehet trükközni bőven:
    1esnél: vehetnek szándékosan kisebb MIP szinteket (512×512helyett alapból a 256×256ot, stb.) memóriát spórolva (durvább), vagy alkalmazhatnak textúra elemző eljárást, ami a textúrára megállapít egy élességet és ez alapján ad neki bizonyos esetekben kisebb MIP szintekhez.
    2esnél: az interpolálás képletével lehet cselenzi.

    A MIP mapping szigorúan a textúra mintavételezőhöz (sampler) társítható, független a pixel shaderektől.

    Ennyit bemelegítésül; nézzük az AF-et mélységeiben.
    KÖTELEZŐ: TESSIER cikke: [L]http://www.savagegamers.hu/main_v41.php?mode=cikk&lg=hu&c=hw&id=24[/L]és FX5800as X-Bit cikk: [L]http://www.digit-life.com/articles2/gffx/gffx-ref-p1.html[/L]
    Tessiernél koncentráljatok az AF definiálására az X-Bites cikkben nézzétek meg a RightMark3D leírásával kapcsolatos page2-t és az AF-el foglalkozó page5-öt és az AF-es tesztképeket az utolsó (page10) oldalon. A lényeges passzus a page5 alján van az AF-el kapcsolatban.
    Az nV résszel durván egyetértek (bár nekem kicsit homályos mit akar pontosan mondani, de szívesen vitatkozom bárkivel a témában). Egontól kaptam egy nV-s doksit amiben kicsit szemléletesebbek az ábrák és végre van konkrét LOD (Level of Detail - melyik MIP szintet kell használni) képlet:
    [L]http://vganfo.uw.hu/download/af.zip[/L]

    ATI témában egyelőre más véleményen vagyok mint X-Biték.
    Nézegettem az Xmas-os képeket (45 fokonként jó, közte ugyan olyan mint az 2×AF), a RIP mappinget és szerintem éppen azért jó a 0-90 és a 45 fok mert éppen MIP szintekből számolja (nézzétek meg Tessier mókusos képét, ő is RIP párti ATIval kapcsolatban, de szerinte valamit finomítottak rajta). Eddig csak offline-ban olvasgattam, ma éjjel ránézek neten is, de nagy a gyanúm, hogy éppen ennek a RIP vagy nem RIP kérdésnek a kapcsán vannak nézeteltérések az X-Bit és a Beyond3D között, mert a többiben elég korrektnek és alaposnak (ott van a részletes RightMark3Dkód, a Riva Tuner és még sorolhatnám) tűnnek az oroszok; kivétel talán a 256MB-os 5900 magas AA összevetése a 128MB-os 9800pro-val (majd szólok ha találtam valamit).

    Az egészet még komplikálja, hogy egy pixelhez általában jóval több mint egy textúrát használnak, ergo szintek között is el kell dönteni milyen filterezés legyen (legyen-e egyáltalán, mert gyakran nem is kell).

    Nézegettem a 3D center ATI filterezését taglaló részt, és érdekesnek tartom hogy még csak meg sem említik a RIP mappinget. Az 5bit amit az ATI két MIP szint interpolálására használ (LoD) éppen a DirectX referencia. Mindenesetre érdekesnek tartom, hogyan számolták ki ezt az 5 bitet (vagy milyen forrásból szerezték), ha nem értik hogy miért lett blokkos az átmenet. Szerintem éppen a fekete és fehér MIP szint közötti álváltás szürke szintjeit megszámolva lehet következtetni az interpoláló változó finomságára (én 67et számoltam, de 64 tűnik reálisnak ergo 6bit, azért nem 5 mert tudtommal nem a 0-1 intervallumon illik bontani lineáris interpolálásnál hanem a 0-0,5öt így trükkel becsalható +1 bit). Másik dolog hogy a 3Dcenteresek legalább annyi hibát találtak az nVidia cuccok képminőségében mint az ATI vasaknál, és érzésem szerint néha elfelejtik hogy ezek a képek akár 50-100FPS sebességgel váltják egymást és nem ultraprofi 10×10 centis UMAX filmpozitívok (hogy miért nem negatívra dolgoznak, hiszen az jóval dinamikusabb...) generálásához használatosak.

    Eddig technikailag, most jön a személyes véleményem AF-el kapcsolatban:
    1. veszettül fontosnak tartom a bilineárisnál jobb MIP váltást, mert az AA mellett (most ezt NE tárgyaljuk lécci) engem ez zavar a legjobban. Útálom, ha autós gamekben tolom magam előtt az elmosódott sávot (pl. NFS5) vagy FPSekben szalad a falon a textúra és éles vonallal meg lehetne húzni, hogy ITT vált a MIP szint. Sajnos nem sok 5900ast láttam munka közben, de akinek van lehetősége, az legyen szíves, hasonlítsa össze, például az emlegetett NFS5-ben, milyen vizuális eltérés van az nV „trilinear filteringje” (3D center nyomán: LINK) és az ATI csak a legalsó level0-n használt trilinearja között.

    2. mézegettem az X-Bit-es cikk page11-én a RightMark-os AF shotokat és úgy látom, amikor rendesen dolgozik az ATI AF (45 fokonként), akkor veszettül szép a képe. Szerintem azokat az állításokat, hogy az ATI AF sokkal szebb, azzal lehet magyarázni, hogy a legtöbb játékban éppen 0, 45 és 90 fokban áll a legtöbb 3D objektum (FPS/TPS: falak, épületek; autós: talaj, tereptárgyak).

    3. nagyon úgy érzem, hogy profi felhasználásra nem érdemes ATI kártyát használni éppen a szögfüggő AF és a 5-6bites interpolátor miatt, bár profi szinten a VGA hardveres gyorsításának csak monitoring funkciója van, a tényleges kockákat vaskos CPUtömbök számolják.

    4. biztos vagyok benne, hogy középkategóriában, gamer szinten, elég az ATI szögfüggő, de gyorsabb megoldása (minden tesztben hangsúlyozták, hogy valós alkalmazásokban nagyon nehéz kiszúrni). A csúcsszinten viszont nagyon kérdéses a dolog, hiszen ott az NV számolásigényesebb megoldása is elfogadható sebességű.

    5. Jövő. Nézegettem a vertex/pixel shaderes témát és úgy látom a real-time-ban generált textúráknál generálás közben, „mintavételezésnél” (idézőjelben, mert nincs is textúra) lekezelhető az AF. Ha lesz időm vizsgák közben írni valamit a High Dinamic Range Rendering témában (nagy dinamikájú, ergo FPSértéknél gyorsabban mozgó és társai) ott látszik majd, hogyan dolgoznak sok helyen éppen az AF és LoD ellen szándékos elmosással.

    Még valami kicsit tréfásan a hárdkórgémer szemszögéből: aki full blur-ös, rázkódós, ezer FPS-es, 230al menős, váltóra koncentrálós, hátulról hárman nyomnak, szemből csúcsforgalom NFS: andörgrand gyorsulásversenyen kiveszi, hogy valamelyik textúra szalajt, az megérdemli :))) Skyline level3 hátsó lámpája szaaaalaaajt bebebeee :)))

Aktív témák