:

Szerző: Bodnár Ádám

2000. október 19. 01:02

3dfx Voodoo5 5500AGP

1999 novemberében óriási lendülettel jelentette be a 3dfx a VSA-100 videochipet, hogy aztán fél éves várakozás után megjelenjen az első kártya, ami nem más, mint tesztünk főszereplője, a Voodoo5 5500AGP. A legfontosabb kérdés: vajon a sokat emlegetett T-Buffer eladhatóvá tudja-e tenni ezt a kártyát?

A 3dfx (akkoriban még 3Dfx) neve 1997-ben robbant be a köztudatba, amikor a cég bemutatta Voodoo Graphics, vagy egyszerűen Voodoo névre keresztelt videochipsetjét (nem tévedés, a Voodoo Graphics textúraegysége és geometriai egysége külön chipen kapott helyet). Bár sokat lehetne vitatkozni azon, vajon a Voodoo volt-e az első PC-s 3D gyorsító, vagy az S3 ViRGE, esetleg a Rendition Verité 1000, abban valószínűleg mindenki egyetért, hogy a Voodoo volt az első igazán népszerű és elterjedt 3D videochip(set), még ha képességei erősen korlátozottak voltak is.

A Voodoo-alapú kártyák jellemzően 4 MByte memóriával rendelkeztek, és legfeljebb 640x480 pixeles felbontásban 16 bites színmélységben voltak képesek dolgozni. Ám a Voodoo chip(set) és a ráépülő kártyák sikere nyomán valóságos robbanás következett be a PC-s videohardverek piacán, és mára már számos gyártó kínál elérhető áron D3D és OpenGL gyorsítókártyákat. A ma kapható PC-k szinte mindegyike rendelkezik ilyen vagy olyan 3D gyorsítóval, és ebben a 3dfx-nek elévülhetetlen érdemei vannak.

A 3dfx 1998-ban mutatta be Voodoo 2 nevű grafikus chipkészletét, ezzel visszavette vagy megerősítette helyét a trónon. A Voodoo2 gyakorlatilag két felgyorsított Voodoo chip képességeit hordozza, sem többet, sem kevesebbet. És bár a 12 MByte memória lehetőséget adott akár 800x600 képpontos felbontás elérésére is, a 16 bites színmélység sajnos megmaradt. Ezért a képminőség javulásáért néhány fps-t feláldozni kész játékosok egyre nagyobb számban pártoltak át az akkor már első számú rivális NVIDIA és a kicsit döcögősen induló TNT videochip mellé.

A Voodoo 2-alapú kártyák esetében lehetőség volt két kártya összekapcsolására, amivel az elérhető képfelbontás is megnőtt valamint a sebesség is megduplázódott. Az SLI (scan line interleave) technológia lényege, hogy a két kártya azonos képen dolgozik, ám a kép sorai közül a párosakat az egyik, míg a páratlanokat a másik kártya számolja ki. Bár a 16 bites korlátozás és a maximálisan használható textúrák 256x256 pixeles mérete is megmaradt, a módszer az egyszerű bővíthetőség és nagy sebességugrás miatt sok lelkes rajongóra talált.

A 3dfx Voodoo3 sorozata is magán hordozta az elődök gyengeségeit. Maradt a 16 bites renderelés, legfeljebb 256x256 pixeles textúrák használata, és az akkor már létező AGP 4x busz lehetőségeit sem használták ki ezek a kártyák. És bár a Voodoo3 technológiai hiányosságai ellenére rendkívül jól teljesített és jól fogyott, a 3dfx pénzügyileg egyre lejjebb süllyedt. 1999 novemberében aztán óriási lendülettel jelentette be a 3dfx a VSA-100 videochipet, hogy aztán fél éves várakozás után megjelenjen az első kártya, ami nem más, mint tesztünk főszereplője, a Voodoo5 5500AGP.

Mint azt neve (Voodoo) is mutatja, a Voodoo5 5500 is a "nagy elődök" gyökereiből táplálkozik. Ám történtek lényegi változások is, a 3dfx termékeinek sorában elsőként van lehetőség 32 bites leképezésre valamint a használható textúrák mérete is megnőtt, egészen 2048x2048 pixelesre. Ezen kívül implementálták a 3dfx FXT1 textúratömörítési eljárást is valamint kompatibilis az S3TC és DXTC textúratömörítési technológiákkal is.

[oldal:A számítógép és a film]

Ám nem az előbb említett újdonságok azok, amik a 3D világot lázba hozták. A VSA-100 chipekbe épített T-Buffer technológia az, ami ennek a kártyának sava-borsa. De mi is az a T-Buffer, és mire használható? Ennek megértéséhez szükség van egy kis kitérőre a filmek és a televízió világába.

Bizonyára mindenki tudja, hogy a mozifilmek másodpercenként 24 képkocka sebességgel pörögnek. Az emberi szem a filmvásznon egymás után változó képeket már nem tudja elkülöníteni és folyamatos mozgóképként fogja fel illetve értelmezi azokat. A filmek felvételénél a kamerák egy másodperc alatt 24 képet készítenek a jelenetről. Vagyis egy filmkocka erős közelítéssel 1/24-öd másodperc történéseit tartalmazza, annak az időtartamnak minden mozgásával, változásával, történésével.

Ha egy szereplő mozog, akkor az látszani fog, mégpedig homályosodás forrmájában. Videomagnóval rendelkező olvasóink tehetnek egy próbát: a lejátszott filmen minden simán és gördülékenyen mozog, de ha megállítjuk a lejátszást és kimerevítjük a képet, azt tapasztalhatjuk, hogy az addig kristálytiszta és éles kép homályos lesz. Miért? Mert a szemünk a mozgást egészben érzékelte, de a kimerevített felvétel olyan lesz, mintha a fényképen szereplők bemozdultak volna. És valójában ez is történt.

A számítógépes animáció egészen másképp működik. Tegyük fel, hogy itt is 24 képkockát rajzolunk meg egy másodperc alatt (azaz 24 fps-sel jelenik meg az animáció a monitoron). Mi történik ilyenkor? A számítógép kiszámítja, hogy az adott történés milyen fázisban tart majd abban a 24 időpontban, amikor a képeket készítjük, és az animáció gyakorlatilag pillanatfelvételek sorozatából áll össze. Azaz az egyes képkockák nem tartalmaznak semmiféle történést vagy változást, a jelenet szereplői a "fényképezés" idejére gyakorlatilag szoborrá merevednek.

Ezért van az, hogy az emberi szem számára sokkal kellemesebb és természetesebb látványt nyújt a TV-n vagy moziban látott, és kamerákkal forgatott film, mint a számítógépes animáció. Ezen különbség megszüntetésére hozta létre a 3dfx a T-Buffer technológiát.

[oldal:Mire jó a T-Buffer?]

A T-Buffer által lehetőség adódik a valós idejű számítógépes grafika világában eddig nem látott effektusok megjelenítésére, mint a full-scene anti aliasing , vagy a motion blur (kb. mozgásból eredő elmosódás), depth of field blur avagy focal antialiasing (mélységélesség), soft shadow ("életlen árnyék") és reflectance blur ("tükröződés elmosódása"), hogy csak pár példát említsünk. Mik is ezek az effektek? Lássuk.

A full-scene antialiasing jelenségről és megvalósítási módjáról jelen cikkben nem szeretnék értekezni, hiszen ezt lapunk hasábjain korábban megtette a téma avatott szakértője, Soós Árpád. A teljes cikk itt olvasható, a 3dfx által implementált megvalósítást pedig itt és itt tárgyalja az írás. Úgyhogy szeretném inkább a T-Buffer technológia segítségével elérhető további jelenségeket bemutatni.

A motion blur effektusról már esett szó. Ez azt az esetet szimulálja, amikor a tárgyak bemozdulnak a fényképen, és élük egészen hományosan látszódik, vagy a tárgyból (ha elég gyorsan mozog) akár több példány is jelen van a képen. Ezzel a megoldással valósághűen szemléltethető a sebesség és a mozgás, hiszen a képkockák fokozatosan beleolvadhatnak egymásba. Az alább látható ábra a motion blur jelenséget hivatott szemléltetni.


A gyorsan pörgő fűrész fogai összemosódnak a szemlélő előtt (jelenet a Bug's Life című filmből)

A depth of field blur, azaz mélységélesség jelenséget is biztosan sokan ismerik. Ez a hatás az emberi szemben teljesen természetes módon jön létre. Szemünk egyszerre csak egy pontra képes koncentrálni, így a fókusztávolságot is ehhez a ponthoz igazítják az izmok, és ezért a környező világ homályosan látszik. Fotósok és filmrendezők is szívesen használják ezeket az effektusokat.


A kamera először a távoli tájra majd a közeli fűszálra fókuszál (jelenetek a Bug's Life című filmből)

A soft shadow és reflectance blur effektusok szemléltetésére ugyanazt a képet szeretném olvasóink figyelmébe ajánlani.

A soft shadow azt a természetes jelenséget hivatott szimulálni, amikor egy tárgy árnyéka sötétebb magra és világosabb szegélyre, azaz umbrára és penumbrára válik szét. Így az effektus a stencil buffer technológiával létrehozott árnyékok valószerűségét hivatott növelni. A reflectance blur pedig azt a jelenséget valósítja meg, amikor egy nem teljesen sík (azaz több beesési merőlegessel rendelkező) felületen a tárgyak tükörképe elmosódik. Ilyen felület az ábrán látható polírozott fa is.

[oldal:A T-Buffer működési elve]

Látható tehát, hogy a T-Buffer technológia bevezetésével a 3dfx célja az életszerűségre való törekvés volt. Az effektek segítségével gyakorlatilag mesterségesen hozhatók létre azok a természetes jelenségek, amelyektől a mozifilm a szemnek olyan kellemes és amelyek hiánya miatt a számítógépes animáció olyan mesterkéltnek és laboratóriuminak tűnik.

A T-Buffer eljárás megvalósítása nagyon egyszerű: a lényege, hogy egy adott időpillanatot többször "fényképez le" a számítógép, majd ezeket a fényképeket egymásra retusálja. Azaz az adott pillanatról készült képek súlyozott átlaga jelenik meg a szemlélő monitorán, vagyis a megjelenő kép gyakorlatilag több kép átlagolásával áll elő. A fényképek között az a különbség, hogy más-más nézőpontból készülnek. Persze itt nem kell a nézőpontok között óriási távolságokra gondolni, a képek között kb. fél-egy pixeles eltérés van.

Gyakorlatilag ez megegyezik az OpenGL "accumulation buffer" eljárással, de a 3dfx T-Buffer esetében ez teljes mértékben hardveresen valósul meg. Ráadásul lehetőség adódik arra, hogy a képnek csak bizonyos részei kerüljenek ismételt leképezésre, ezzel növelve a sebességet és számítási időt takarítva meg. Példának okáért a mozdulatlan háttér előtt elszáguldó autó esetében a hátteret elég egyszer lerenderelni, és csak az autó esetében van szükség több képre a motion blur effket megvalósításához. Ez eddig persze csak elmélet. De vajon milyenek a T-Buffer effektek a gyakorlatban?

Sajnos ezt egyelőre nem tudjuk. Az oly sokat emlegetett FSAA-n kívül a programozók egyelőre nem használják ki a T-Buffer-ben rejlő lehetőségeket. Igazából csak remélni lehet, hogy a lehetőségek megragadják a játékfejlesztők figyelmét és a jövőben egyre több játék használja majd ezeket az effektusokat. Sajnos a 3dfx egyelőre még egy technológiai demót sem volt képes kiadni, a legtöbb, amit az érdeklődő megtehet, hogy megtekinti a 3dfx belső használatra készült demójának videofelvételeit. Személy szerint bízom benne, hogy a kezdeményezés nem tűnik el nyomtalanul a süllyesztőben, mindenesetre biztató jel, hogy a DirectX 8 API tartalmazni fogja az effektek megvalósításához szükséges eszközöket.

És most lássuk közelebbről tesztünk tárgyát, a 3dfx Voodoo5 5500AGP videokártyát!

[oldal:Voodoo5 5500AGP: a kártya felépítése]

A 3dfx Voodoo5 5500 kártya két VSA-100 videochipet és 64 MByte SDRAM-ot hordoz a hátán. A VSA-100 videochip két pixel pipeline-nal rendelkezik, amelyek egy textúraegységük révén egy órajelciklus alatt egy pixel leképezésére képesek. Amennyiben két chipünk van (és jelen esetben ez a helyzet), és a chipek 166 MHz-en működnek, kis számolással megállapítható, hogy a Voodoo5 5500 elméleti legnagyobb fill rate-je (vagy magyarosabban kitöltési sebessége) 2 chip*2 pipeline*1 texel*166(,6) MHz, ami összesen 667 MTexel/sec, 2 chip*2 pipeline*1 pixel*166(,6) MHz, azaz 667 MPixel/sec. Az összehasonlítás kedvéért:

chip (kártya) pipeline textúraegység órajel MTexel/sec MPixel/sec
Voodoo4 4500 2 1 166 MHz 333 333
Voodoo5 5500 2*2 1 166 MHz 667 667
Voodoo5 6000* 4*2 1 183 MHz 1333 1333
GeForce256 4 1 120 MHz 480 480
GeForce 2 MX 2 2 175 MHz 700 350
GeForce 2 GTS 4 2 200 MHz 1600 800

Ugyanakkor ne felejtsük el, hogy manapság a legnagyobb teljesítményű videokártyák esetében nem az alacsony fill rate a legnagyobb korlát, hanem a memória sávszélessége. Miért? Mert a leképezendő pixelek adatait, textúrákat, Z-értékeket be kell tölteni a chipbe, majd a kiszámolt pontokat ki kell írni a frame bufferbe. A mai leggyorsabb videokártyák rendszerint 128 bit széles memóriabusszal rendelkeznek, amelyre vagy SDR (single data rate) vagy DDR (double data rate) SDRAM memóriamodulok csatolhatók. Adott órajelet és memóriabusz-szélességet figyelembe véve a DDR SDRAM elméleti (és ez itt elég nagy hangsúlyt kap) legnagyobb sávszélessége megegyezik a kétszer akkora órajelen működő SDR SDRAM sávszélességével. Számos nagy videochip-gyártó DDR memóriamodulok alkalmazásában látja a jövőt, ilyet láthatunk többek között a GeForce DDR, GeForce 2 GTS és az ATi Radeon kártyákon

Ám a 3dfx teljesen másképp növeli a sávszélességet. A 3dfx Voodoo5 5500 és Voodoo5 6000 kártyákon a VSA-100 chipek a már korábban ismertetett SLI módban dolgoznak együtt, a Voodoo2-höz képest csak annyi a különbség, hogy a chipek a kép sorain nem feltétlen páros-páratlan sorrendben osztoznak. Többchipes megoldás esetén (és a Voodoo5 5500 is ilyen) a chipek megosztott frame buffert használnak, de a textúrákat redundánsan tárolják, ami annyit tesz, hogy minden chip megkapja a maga 32 MByte-os memóriaszeletébe a jelenet leképezéséhez szükséges textúrákat. Mivel a legnagyobb "memóriadugulás" a kiszámított pixelek frame buffer-be való írásánál adódik, a 3dfx esetében a többchipes megoldás tulajdonképpen a felhasználható adatbusz szélességét megsokszorozza, azaz két chip esetén elméletileg egy 2*128=256 bites adatbusz áll rendelkezésre, négy chip esetén pedig 4*128=512 bites adatbusszal számolhatunk.

Lássuk az előző táblázatban megsimert chipeket (kártyákat) elméleti legmagasabb adatátviteli sebesség alapján:

chip (kártya) memória órajele (MHz) adatbusz memória típusa adatátviteli sebesség
Voodoo4 4500 166 MHz 128 SDR 2,66 GByte/sec
Voodoo5 5500 166 MHz 2*128 SDR 5,33 GByte/sec
Voodoo5 6000* 183 MHz 4*128 SDR 10,66 GByte/sec
GeForce DDR 150 MHz 128 DDR 4,8 GByte/sec
GeForce 2 MX 166 MHz 128 SDR 2,66GByte/sec
GeForce 2 GTS 166 MHz 128 DDR 5,33 GByte/sec

Azért a táblázat így már egész más erősorrendet mutat! De hogy a 3dfx által alkalmazott megoldás beválik-e a gyakorlatban? Nézzük!

Sajnos van még egy apróság, amit nem szabad elfelejtenünk a Voodoo5 5500 kapcsán. Mivel a 3dfx korábbi chipjei nem voltak képesek 32 bites leképezésre, a megjelenítés során a kép minőségét dithering-gel javították. Ez azt jelenti, hogy a frame buffer tartalma és a megjelenített kép nem volt teljesen megegyező. Nos, a Voodoo5 5500-ban is "benne felejtették" ezt az apróságot, ami bár 32 bites leképezés esetén nincs zavaróan jelen, azért mégis bosszantó.

[oldal:Voodoo a gépben]

Szerkesztőségünk a tesztkártyát a 3dfx európai központjától kapta. Köszönet illeti Adam Fairfield-et, aki lehetővé tette, hogy bemutassuk olvasóinknak a Voodoo5 5500AGP-t.

Ha csak az "artwork" számítana, biztos vagyok benne, hogy a 3dfx-nek nem lenne konkurrenciája. A doboz a cégtől megszokott kinézetű, szóval szuper meg minden. A tartalom már nem ilyen magával ragadó, a csomagban a kártyán kívül az ominózus tápkábel, egy többnyelvű ismertetőfüzet és két CD foglal helyet. A füzet számomra az egyik legfájóbb negatív pont, ugyanis nyelvenként összesen hét soványka oldalban ismerteti a kátya installálásához szükséges tudnivalókat. A mellékelt lemezek tartalmával sem vagyok igazán kibékülve. Az egyik lemez csak a meghajtóprogramokat és egyéb utility-ket tartalmazza, a másik lemezre (valamiféle lemezújság talán) pedig csak néhány játszható játékdemo és egy WinDVD 2000 dvd-lejátszó szoftver került. Szerintem ennyi pénzért igazán megérdemelnének a vásárlók egy vagy akár több teljes verziós játékot is.

A kártya fizikai méretei megdöbbentőek. Természetesen tisztában vagyok vele, hogy a NYÁK-ra szerelt két VSA-100 videochip és a hozzájuk tartozó 64 MByte memória sok helyet emészt fel, de azért mégis meglepődtem, amikor először fogtam a kezembe a Voodoo5 5500-at. Méretei egy régebbi professzionális videokártya (pl. ELSA Synergy) dimenzióit idézik. A két videochip tetején méretes hűtőventillátorok teszik dolgukat, szerencsére elég halkan. A kártya videojelét csak analóg RGB csatlakozón tudjuk elvezeni, de ez nem is meglepő, tekintve, hogy a Voodoo5 5500 ízig-vérig játékkártya, nem valamiféle multimédiás munkaállomás.

A Voodoo5 5500AGP kártya sebességét a következő számítógépen mértem:

  • "Procomp" VIA Apollo Pro 133A alaplap
  • Intel Pentium III 733 MHz processzor
  • 128 MByte Micron PC133 SDRAM
  • 3dfx Voodoo5 5500AGP videokártya
  • Maxtor DiamondMax 9153U2 UDMA/66 merevlemez
  • Hitachi GD2500 DVD-ROM
  • Aureal Vortex2 hangkártya
  • Sony Multiscan 200GS 17" Trinitron monitor

A tesztelésben a következő programok vettek részt:

  • Microsoft Windows 98 ENG Retail
  • VIA 4-in-1 4.23 drivercsomag
  • 3dfx Voodoo5 5500 1.03.00 Windows 9x driver
  • Microsoft DirectX 7A ENG
  • 3DMark 2000
  • Quake 3 Arena 1.16
  • Unreal Tournament 4.23

A számítógépbe behelyezés (figyelem, vigyázzunk a méretekkel!) után a kártya felső részén elhelyezkedő csatlakozóba be kell dugni a tápkábelt, és el lehet indítani a számítógépet. Vigyázat, a tápkábel nélkül a Voodoo5 5500 nem működik, a hibakeresést érdemes itt kezdeni. A meghajtóprogramok telepítése 3dfx-esen egyszerű volt, minden tökéletesen zajlott. Installálás után egy 3dfx ikont találunk a system tray-ben, amelyre jobb gombbal klikkelve a képernyő felbontását és színmélységét változtathatjuk, bal gombbal kattintva a kártya finombeállításait eszközölhetjük.

[oldal:Sebesség]

A Quake 3 Arena beállításait alapértelmezésen hagytam, így a hang is végig bekapcsolva maradt.

Az Unreal Tournament részletességi beállításai végig a legmagasabb értéken voltak.

A kártya sebessége szerintem teljesen elegendő ahhoz, hogy bármely játékot 1024x768 pixeles felbontásban 32 bites színmélységben élvezhessük. A hardveres T&L motor hiányát ugyan megérezte a 3DMark 2000 teszt, de azokban a játékokban, amelyeket a kártyával próbáltam (Quake3, Unreal Tournament, Homeworld, Soldier of Fortune, Rally Masters, stb.) nem volt semmilyen sebességprobléma.

Természetesen nagyon kíváncsi voltam, hogy a sokat emlegetett FSAA milyen a milyen képminőséget kínál a teljesítményveszteségért cserébe. Szeretném néhány képpel is érzékeltetni, mire számíthatnak azok, akik beruháznak egy Voodoo5 5500-ba.

[oldal:Full Scene Anti-Aliasing]

A 3dfx Voodoo5 5500 legnagyobb dobása az API-tól független, hardveresen megvalósított Full Scene Anti-Aliasing, vagy röviden FSAA. Mint az Soós Árpád cikkében olvasható, a Voodoo5 5500 képes két- és négymintás FSAA megvalósítására. Nos, lássuk ezeket:

Az első kép a Quake 3 Arena Q3DM7 pályájának lépcsőjét ábrázolja. A legfelső képen nem használtam az FSAA-t, majd következik a 2xFSAA és 4xFSAA bekapcsolásával kapott kép.

A második screenshot a 3DMark 2000 "image quality test" képe, a sorrend az előzőekben megismerttel egyezik, azaz FSAA nélküli, majd 2x és 4x FSAA-val készült képek láthatók.

[oldal:FXT-1: az elmélet]

A 3dfx a VSA-100 chipben használta először az általuk kifejlesztett FXT-1 textúratömörítési eljárást, ami célját tekintve meglehetősen hasonlít az S3 által bevezetett S3TC algoritmushoz, azonban több ponton eltér annak megvalósításától. Lássuk, melyek is ezek:

Az FXT-1 egyik előnye az S3TC-vel szemben, hogy nyílt forráskódú és teljesen szabadon felhasználható, míg az S3TC esetében a felhasználó köteles jogdíjat fizetni az S3 (VIA) részére. A megvalósításbeli különbség már nem ennyire egyszerű.

Az S3TC egy tömörítőalgoritmust alkalmaz minden textúrára. Ezzel szemben az FXT-1 eljárás a tömöríteni kívánt textúra méretétől, esetleges átlátszóságától és színmélységétől függően akár egy textúrán belül is képes több tömörítőalgoritmust használni. Az FXT-1 minden textúrát 4x4 és/vagy 4x8 texeles blokkokra oszt fel, majd ezeket a blokkokat tömöríti az alább olvasható eljárások valamelyikével:

CC_MIXED: A 4x4 texeles blokk texeleit 2 biten ábrázolják. Minden texelblokkhoz tartozik két 16 bites szín (RGB 565 ábrázolással tárolva), és két további 16 bites szín, melyek az előző kettő interpolációjából állnak elő. Minden texelhez tartozik egy 2 bites idex, amely egyértelműen azonosítja, hogy a texelblokkhoz rendelt négy 16 bites szín közül melyik tartozik a texelhez. Átlátszó textúra esetén a négy szín egyikét átlátszóvá teszik. (Megjegyzés: ez az eljárás majdnem teljesen megegyezik az S3TC tömörítéssel.)

CC_HI: A 4x8 texeles blokk texeleit 3 biten ábrázolják. Minden texelblokkhoz tartozik két 15 bites szín (RGB 555 ábrázolással tárolva) és további öt 15 bites szín, melyek az előző kettő interpolációjából állnak elő. Egy nyolcadik szín átlátszó. Egy 3 bites index segítségével határozzák meg, hogy a 4x8 texeles blokk elemeihez melyik szín tartozik.

CC_CHROMA: A 4x8 texeles blokk texeleit 2 biten ábrázolják. A texelblokkhoz tartozik 4 15 bites szín (RGB 555 ábrázolással). Minden texelhez tartozik egy 2 bites index, amely megmutatja a texel színét. Ez a tömörítési algoritmus nem támogatja az átlátszóságot.

CC_ALPHA: A 4x8 texeles blokk texeleit két biten ábrzolják. A blokkhoz három 20 bites (5555) szín tartozik. Az első és második 20 bites szín a baloldai, a második és harmadik 20 bites szín a jobboldai 4x4 texeles blokk elsődleges színe lesz, majd mindkét 4x4 texeles blokkhoz hozzárendelnek két további 20 bites színt, amelyek az elsődleges színek interpolációjával állnak elő. A texelekhez 2 bites index tartozik, amely azonosítja színüket. Ez az eljárás leginkább nagy részben átlátszó textúrák tömörítésére alkalmas.

A textúrák kitömörítése során, amely a poligonok textúrázásánál zajlik, a texelblokkokhoz rendelt 2 bites azonosító alapján a 3D processzor meghatározza a felhasznált tömörítési algoritmust, majd a megfelelő kitömörítési eljárás alkalmazásával legenerálja a megfelelő bittérképet, amit aztán a poligonok textúrázásnál felhasznál.

[oldal:FXT-1: a gyakorlat]

Vajon a gyakorlatban hogy működik az FXT-1? Erre a kérdésre a választ a Quake 3 Arena segítségével igyekeztem megtalálni. Köztudott, hogy a Quake 3 játékban egy programozói melléfogás miatt a textúratömörítés bekapcsolásánál (r_ext_compress_textures 1) minden bittérkép tömörítésre kerül. A tömörítési eljárások vizsgálatához célszerű az eget választani. Miért?

A Quake 3 Arena egy pak0.pk3 nevű állományban tárolja az adatokat. Ez a file gyakorlatilag egy .zip állomány, ha valaki átnevezi a file-t pak0.zip-re, bármilyen zip-kezelővel (WinZIP, Windows Commander, stb.) könnyedén képes navigálni benne.

A Q3DM7 pályán használt felhők textúrája az intelredclouds.jpg nevű kép, amely egy 256x256 pixel méretű és 24 bit színmélységű bittérkép. Íme itt látható:

A pályán az ég egy elég nagy felület, amelyre ezt a viszonylag kicsi textúrát feszítik, ezért a tömörítési hibák itt látszanak majd a legjobban. Azt is tudni kell, hogy a program ugyan nem támogatja az FXT-1 textúratömörítési eljárást, de a 3dfx drivere az S3TC hívásokat FXT-1 hívásokká "fordítja le", azaz a Voodoo5 5500 kártyák S3TC helyett a saját FXT-1 tömörítőeljárásukat használják. Az alábbi képeken a Q3DM7 pályán az ég látható, először textúratömörítés nélkül, majd S3TC és FXT-1 eljárásokkal tömörítve:


A textúratömörítés itt ki van kapcsolva


S3TC tömörítés (NVIDIA GeForce 2 GTS)


FXT-1 tömörítés (3dfx Voodoo5 5500)

A különbség azt hiszem magáért beszél, az FXT-1 eljárás láthatóan sokkal jobb minőségű képet ad az S3TC-nél. Ám sajnos az FXT-1 tömörítés közels sincs olyan mértékben támogatva, mint a rivális S3TC, ezért elterjedése erősen kérdéses vagy kétséges. Mindenesetre a technológia maga kitűnő.

[oldal:Összegzés]

Összességében a a 3dfx Voodoo5 5500AGP kártya sebessége és 2D/3D képminősége is jónak mondható, ráadásul a 2x FSAA bekapcsolásával a képminőség még tovább javítható. Ám sajnos nem mehetünk el szó nélkül a Voodoo5 5500 egyik legnagyobb hibája mellett.

Bár a hivatalos specifikációk szerint a Voodoo5 5500 képes trilinear filtering-et használni, teszünk során azt kellett megállapítanunk, hogy ez nem minden esetben igaz. A Quake 3 Arena játékban az r_colormiplevels 1 parancs nyomán a képenyőn megjelenik a mip map-ek helyzete, és azt kell látnunk, hogy a Voodoo5 5500-on a mip map-ek élesen elválnak egymástól, azaz nem működik a trilinear filtering.


A fenti képen a Voodoo5 5500 esetében a mip map-ek élesen elválnak egymástól, míg az alsó képen (GeForce 2 GTS) a mip map-ek valóban "átmosódnak" egymásba

A VSA-100 chip felépítéséből adódóan (2 pipeline 1 textúrázóegységgel, amik órajelenként 4 texel beolvasására képesek) nem képes azonos időben a single-clock multitexturing (azaz egy órajel alatti multitextúrázás) és a trilinear filtering használatára. Azaz ha szükség lenne a trilinear filtering-re, a VSA-100 chip képtelen lenne a multitextúrázásra, mivel egy trilinear filterezett pixel kiszámításához szükség van mindkét pixel pipeline-jára. Látható, hogy a két "effekt" együttes alkalmazása jelentős lassulást eredményezne. Ezért a Voodoo5 5500 abban az esetben, ha a multitextúrázás be van kapcsolva, teljesen figyelmen kívül hagyja a trilinear filtering-gel kapcsolatos összes utasítást.

Miután a Voodoo5 versenytársainak nagy része (GeForce, Radeon, stb.) a több pipeline és textúragyeség miatt a trilinear filtering bekapcsolásával is gyorsabb lehet a Voodoo5 5500-nál, a 3dfx-nél lehet hogy kicsit trükköztek a driverekkel, így javítva a benchmark eredményeken. Hangsúlyoznom kell, ezek csak felvetések, konkrét információ jelenleg nem áll a rendelkezésünkre.

És hogy kinek is ajánlható a 3dfx Voodoo5 5500 kártyája? Nos, szerintem azoknak, akik hajlandók pár fps-t feláldozni azért a képminőség-javulásért, amit az FSAA nyújt számukra. Azaz azok gondolkodjanak el Voodoo5 vásárlásán, akik olyan játékokkal játszanak, ahol nem kardinális kérdés a folyamatosan 60 feletti fps érték. Gondolok itt stratégiai játékokra, autó- és repülőszimulátorokra, stb. Akik ilyen játékokat kedvelnek, jól járhatnak a Voodoo 5 5500 kártyával.

Ám azok a játékosok, akik a valódi vizuális élményért ülnek le a számítógépes játékok elé, azok, akik igénylik egy videokártya olyan képességeit, mint a bump mapping, hardveres T&L, vagy az anisotropic filtering, azok nézzenek más megoldás után. A VSA-100 videochpek fő erőssége, a "T-Buffer Cinematic Effects " egyelőre nem támogatott, így sajnos erről is le kell mondani. A Voodoo5 5500AGP sajnos nagyon későn jelent meg a piacon, és bár a kivitelezése minőségileg elsőrangú, a hordozott technológiák öregecskének tűnnek egy GeForce 2 GTS vagy pláne egy ATi Radeon mellett.

Köszönet a 3dfx európai központjának az általuk biztosított tesztkártyáért.

Milyen technológiai és munkaerőpiaci hatások érhetik a backendes szakmát? Május 8-án végre elindul az idei kraftie! meetup-sorozat is (helyszíni vagy online részvétellel).

a címlapról

Hirdetés

Security témákkal folyatódik az AWS hazai online meetup-sorozata!

2024. április 25. 15:58

A sorozat május 28-i, harmadik állomásán az AWS-ben biztonsági megoldásait vesszük nagyító alá. Átnézzük a teljes AWS security portfóliót a konténerbiztonságtól a gépi tanulásos alkalmazások védelmén át, egészen az incidenskezelésig.