Szerző: Bodnár Ádám

2001. május 28. 16:31

NVIDIA GeForce3

Az NVIDIA legújabb videochipjére épülő Leadtek WinFast GeForce3 kártyát egy 1,2 GHz AMD Athlon processzorral és 128 MByte DDR SDRAM memóriával szerelt konfigurációban teszteltük.

Már a GeForce2 GTS 2000. áprilisi megjelenésekor elkezdődtek a találgatások: vajon mivel rukkol ki legközelebb az NVIDIA? Egyre több részlet került nyilvánosságra egy NV20 nevű videochipről, amelynek a megjelenését őszre várták. A pletykák szerint az NV20 az első olyan grafikus kártya, amely a DirectX 8 összes funkcióját hardveresen képes gyorsítani.

Aztán ősszel következett a meglepetés: NV20 helyett csak egy GeForce2 Ultra jött. Az NVIDIA kapott hideget-meleget, de mentségükre szolgáljon, hogy akkoriban még nem volt végleges DirectX 8, és a chip legyártásához szükséges 0,15 mikronos technológia sem állt a rendelkezésükre.

Az események ezután gyorsan pörögtek: elkezdődött a találgatás, hogy a novemberi Comdexre előjön-e valamelyik gyártó DX8 kártyával? Ekkor még az NVIDIA-n kívül az ATi, a 3dfx és a Matrox versenyeztek. Aztán szépen lassan tisztult a kép: a 3dfx a célegyenesben dobta be a törölközőt, az ATi bejelentette, hogy csak 2002-ben kíván DX8 gyorsítóval előállni, a Matrox pedig szokás szerint nem mondott semmit. A megszállottak ugyan vallásos áhitattal várták az "NV20 killer" G800-at, de eddig még hiába.

Az őszi fordulatok után az NVIDIA teljesen egyedül maradt. Jöttek az információk és aztán jött a meglepetés: a grafikus cég először Mac platformon demonstrálta a GeForce3 erejét, John Carmack és a Doom segítségével. Pár nap múlva aztán megjelent a PC-s változat is, óriási vihart kavarva.

A GeForce3 februári bejelentésekor mindenki azt várta: mit mutatnak a tesztek. De a tesztek nem mutathattak semmit, ugyanis az NVIDIA nem engedélyezte a benchmark-eredmények közlését. Ezt a megfelelő driverek hiányával magyarázták.

[oldal:Az NVIDIA GeForce3 chip]

Azóta már eltelt egy pár hónap, a kártyák az üzletekben vannak. Elcsendesedtek a kedélyek, és a GeForce3 elfoglalta az őt megillető helyet a videokártyák trónján. Lássuk, hogyan is fest "Őfelsége" közelebbről:

  • 57 millió tranzisztor
  • 0,15 mikronos csíkszélesség
  • 200MHz órajel
  • 4 pixel pipeline, 2 textúra pixelenként/órajel, 4 textúra pixelenként/renderelési ciklus
  • 128 bites memóriabusz
  • legfeljebb 128 Mbyte SDRAM vagy DDR SDRAM támogatása
  • 230 MHz DDR SDRAM
  • 7,3 Gbyte/sec adatáteresztő képesség
  • AGP 2x/4x támogatása
  • NVIDIA nFiniteFX motor
  • High Resolution Anti-Aliasing
  • Lightspeed Memory Architecture

A lista elejét böngészve egy GeForce2 juthat az eszünkbe, de valójában itt azért sokkal de sokkal többről van szó. És hogy valójában többről legyen szó, arról az 57 millió tranzisztor és a három utoljára felsorolt "tulajdonság" gondoskodik. Lássuk most ezeket!

[oldal:nFiniteFX - Vertex Shader]

Az nFiniteFX (infinite effects, azaz végtelen sok effekt) motor gyakorlatilag a DirectX 8 pixel és vertex shader végrehajtóegységeket takarja. Ismerkedjünk meg velük.

Vertex Shader

A három dimenziós világ legkisebb építőegységei a vertexek. A vertex nem más, mint egy pont a térben, amelynek nem csak x,y és z koordinátája van, hanem van normálvektora (a vertexben találkozó poligonok normáljainak eredője), textúra-koordinátái, szín- és fényességadatai is. Ezen felül tartozhat hozzá köd, meg még rengeteg adat. Annak ellenére, hogy a vertex a 3D-világ legkisebb építőeleme, nagyon sok adatot tárol.

Ráadásul ha változik a 3D-világ általunk látott képe (például valamelyik objektum vagy a kamera megmozdul), a vertexek adatait újra ki kell számítani. A GeForce256, GeForce2 és az ATi Radeon esetében erre a chipben található transformation motor szolgált.

Ha az alkalmazás a manapság divatos "lightmap"-ek helyett valódi vertex-alapú megvilágítást használ, a fényforrások száma, típusa és tulajdonságai valamint a vertex adatai alapján ki kell számítani a vertexhez tartozó fényességi adatokat is. Ez korábban a lighting motor dolga volt.

A DirectX 7-tel kompatibilis T&L motorok legfeljebb addig engedtek beleszólást a 3D-világ alakulásába, amíg a leképezési folyamat el nem ért a T&L motorig. Azonban a GeForce3-ban található "Pixel Shader" segítségével a fejlesztők szabad kezet kaptak, és tetszésük szerint alakíthatják át és változtathatják meg ezeket a folyamatokat.

[oldal:nFiniteFX - Vertex Shader 2.]

A GeForce3 videochip tartalmaz egy DirectX 7-tel kompatibilis T&L motort, és mellette rendelkezésre áll egy Vertex Shader egység. A Vertex Shader valójában nem más, mint egy lebegőpontos SIMD processzor, amely legfeljebb 128 utasításból álló programokat hajt végre a vertexeken.

A programok segítségével megváltoztathatóak a vertexek koordinátái, így helyet vagy helyzetet változtathat az objektum, esetleg át is alakulhat. Manipulálhatók a szín- és textúraadatok, ezzel többek között látványos tükröződéseket, fénytörést vagy felületi érdességet (bump mapping) lehet létrehozni.

A programokban található utasítások rövidek, de könnyen megérthetők. A program nem tartalmazhat elágazásokat, ciklusokat vagy feltételes utasításokat, az utasítások szigorúan egymás után hajtódnak végre. Amennyiben a fejlesztő nem tudja 128 utasítással leírni az "akaratát", a vertex a program befejeződése után ismét bekerülhet a vertex shaderbe. Természetesen minél hosszabb a program, annál több idő kell a végrehajtásához.

A vertex shader kicsit hasonlít az általános iskola alsó tagozatában megismert "gépekhez". A bemenete egy vertex és a kimenete is egy vertex. Hogy mit csinál a gép, az a programozón múlik. Azonban nagyon fontos tudni, hogy a vertex shader nem alkot vagy semmisít meg vertexeket. Egy vertex megy be és egy transzformált, megvilágított (T&L) vertex jön ki.

A Vertex Shader nem feltétlenül alakít át minden vertexet. Manipulálhat csak bizonyos tulajdonságokkal bíró vertexeket, vagy valamilyen szempont szerint képzett vertex-csoportokat. A Vertex Shader átalakíthat egy objektumot egyféleképpen, aztán átlakíthat egy másik objektumot is - teljesen másféleképpen.

[oldal:nFiniteFX - Mire jó a Vertex Shader?]

A Vertex Shader segítségével létrehozott hatások a CPU-tól teljesen függetlenül hajtódnak végre. Lássunk néhány alkalmazási példát:

Karakteranimáció

A Vertex Shader segítségével egészen életszerűen animálhatók a játékokban szereplő figurák arcvonásai, mozgásai. A figurák végtagjainál teljesen valószerűen nyúlik és húzódik össze a bőr, gyűrődik és simul ki a ruha.

Ha szereplő grimaszol, ráncok keletkezhetnek és tűnhetnek el az arcán. A "keyframe animation" segítségével az animációnak csupán pár mozzanatát kell létrehozni, a köztes fázisokat a Vertex Shader segítségével a GPU számítja ki.

Csontváz-alapú animáció esetén a Vertex Shader 32 kontroll-mátrixot engedélyez, ami azt jelenti, hogy 32 egymástól független csont és izom határozhatja meg a figura egyes tagjait és azoknak mozgását.

Morphing

A "morphing", azaz átalakulás effektus kicsit hasonlít a keyframe animationhöz. Az alább látható delfin két szélső állapota közti átalakulását a Vertex Shader számítja ki.

A keyframe animation esetében az átalakulás idejét kell megadni, és egy gyorsabb processzor több köztes állapotot állít elő. A morphing esetében a köztes állapotok száma fix, egy gyorsabb processzor egyszerűen gyorsabban végzi el az átalakítást.

Procedurális deformációk

A procedurális deformáció annyit tesz, hogy egy objektum egy meghatározott módon változtatja az alakját. Ez lehet egyszeri alakváltozás, vagy folyamatos mozgás. Előbbire jó példa a golyóütötte nyom a fémen, utóbbi effektet pedig remekül személteti a szélben lobogó zászló vagy a hullámzó víz.

[oldal:nFiniteFX - Mire jó a Vertex Shader? - folytatás]

Motion blur

A 3dfx Voodoo5 5500 videokártya bemutatásakor már érintettük ezt az effektust. A Vertex Shader segítségével ez is létrehozható. A a Vertex Shader által léterhozott motion blur egyszerűen széthúzza az objektumot, és a mozgás irányának és sebességének figyelembevételével áttetszővé teszi egyes részeit.

Dot3 Bump Mapping

A bump mapping lényege, hogy bár a felület gyakorlatilag sík marad, mégis érdesnek látszik. Dot3 bump mapping esetén nem a pontok magasságértékeit tároljuk, hanem az adott pont beesési merőlegesének és a poligon normáljának eltérését. Ezt nevezzük "normal map"-nak.

Ha adott a poligonra eső fény irányvektora és minden pixel beesési merőlegese (amit a normal map-ban tároltunk), egy dot product (skaláris szorzat) segítségével minden egyes pixelnek maghatározható a fényességértéke. A Vertex Shader ezen számítások jelentős részét képes levenni a CPU válláról.

Fénytörés

A Vertex Shader segítségével úgy végezhető el a 3D-s világ transzformációja, mintha valamilyen lencsén, vastag üvegen vagy vízen keresztül néznénk azt. Könnyen megoldható az autóversenyeken gyakran látható "vibráló meleg levegő" effektus is. Természetesen mindezt a GPU hajtja végre.

Procedurális effektek

A Vertex Shader segítségével létrehozható olyan köd, füst, tűz, vagy felhő effektus, amely a CPU-tól teljesen függetlenül hajtódik végre.

Az előbb említett pár effektus csak néhány önkényesen kiragadott példa a sok közül. A Vertex Shader segítségével gyakorlatilag akármilyen hatás létrehozható, csak a programozó fantáziája, a 128 utasításos korlát és a végrehajtás ideje szab gátat az újabb és újabb eljárásoknak.

[oldal:nFiniteFX - Pixel Shader]

Az NVIDIA GeForce3 chip nFiniteFX motorjának következő darabja a "Pixel Shader". A Vertex Shaderhez hasonlóan ez is programozható, és a nevéből könnyen kitalálható, hogy a segítségével pixeleken végezhetünk műveleteket.

Messziről nézve a Pixel Shader nagyon hasonlít a GeForce2 GTS pipeline-jaira. Mindkét esetben két texel tölthető be órajelenként, vagyis 3 vagy 4 texel esetén két ciklusra van szükség. Míg azonban a GeForce2 GTS esetén 3 vagy 4 textúra használatához két renderelési ciklusra volt szükség, a GeForce3 képes ezt egy menetben elvégezni.

Első látásra nem nagy különbség. Azonban ha közelebbről megnézzük, világossá válik, hogy az nFiniteFX Pixel Shader esetében a back buffer és a z buffer írása és olvasása csak egyszer történik meg, míg a GeForce2 GTS eseténen kétszer. Ezzel a GeForce3 jelentős mennyiségű sávszélességet takarít meg.

A Pixel Shader a textúrák, fények és színek adatait felhasználva kirajzolja elénk a 3D-világ látványát. A Pixel Shader programok legfeljebb 12 utasításból állhatnak. A programok hármféle utasítást tartalmazhatnak, konstans-definíciókat, legfeljebb 4 texel-betöltést és legfeljebb 8 "blending" utasítást, amelyek összekombinálják a texelek és konstansok adatait, így előállítva a pixel szín és alpha értékeit.

A Pixel Shader egyik legnagyobb elonye az, hogy míg ezidáig a fényadatokat a vertexekre számolta ki a videókártya, a Pixel Shader már pixelenként (képpontonként) számolja ki.

A Pixel Shaderek előtt, ha egy poligon nagy volt, úgy az egész poligon egy szép nagy elmosódott folt lett, mivel a köztes pontokra vetülhetett fény, de mivel egy vertexet sem világított meg, így olyan volt mintha ott se lett volna. Ha viszont megfelelően akartuk látni a fényeket, akkor egy adott felületre több vertex/poligon jutott, ami bár jobb megvilágítást biztosított, a renderelés menetén lassított.

A Pixel Shader ezt a problémát megoldja, mivel a fényadatokat pixelenként számolja ki és nem vertexenként (Per Pixel Shading). Ezáltal lehet egy egész folyosó 2 poligon (egy téglalap), a megvilágítás mégis tökéletes lesz, és a látvány pedig összehasonlíthatatlanul szebb. Egyik leglátványosabb effekt, amit így meg lehet valósítani, a "shining", amit magyarul felületi csillogásnak lehetne fordítani. A fények nem lesznek tompák hanem teljesen életszerűek lesznek.

A Pixel Shader programok keresztülmennek a Vertex Shader egységen is, ugyanis a Vertex Shader paramétereket adhat át a Pixel Shadernek, például dot3 bump map effekt esetén a megfelelően eltolt textúrakoordinátákat.

[oldal:High Resolution Anti-Aliasing]

Az NVIDIA GeForce3 - elődeivel ellentétben - multisampling anti-aliasing megoldást használ. A GeForce256 és GeForce2 videochipek supersamping anti-aliasing megoldással dolgoztak, ami azt jelenti, hogy a megjelenített képet nagyobb felbontással számolták ki, majd lekicsinyíteték azt.

Ez a módszer - talán a GeForce2 Ultrát leszámítva - túl nagy teljesítményveszteséget okozott. A multisampling lényege, hogy a jelenetről négy eltérő képet készítünk, amelyeket később összemosva előáll a végleges képkocka.

A GeForce3 multi-sampling alapú anti-aliasinget használ, amelyet teljesen hardveresen valósít meg. A GeForce3 is több mintát vesz a képről, amelyeket eltárol majd a kép megjelenítése előtt egymásra "retusál". Azonban a multi-sampling eljárás használatakor a mintákhoz ugyanazokat a textúraadatokat lehet felhasználni, ezzel jelentősen lecsökken a textúrák mozgatása által igényelt sávszélesség.

A szokásos 2 és 4 mintás anti-aliasing mellett a GeForce3 lehetőséget ad a "Quincunx" anti-aliasing használatára is. A Quincunx anti-aliasing eljárás az NVIDIA szerint 4x AA minőségű képet ad, de a sebessége a 2x AA-hez közelít. A Quincunx egyébként annak a mintának a neve, amelyet az eljárás a képek elkészítéséhez használ.

A módszer lényege, hogy egy pixel színének kiszámítása 5 mintavétel alapján történik, de pixelenként csak két mintát kell elkészíteni. Azaz a jelenetről két eltérő "fénykép" készül, és egy pixel színére a szomszédos pixelek színei is hatnak.

Mikor a Pixel Shader kirajzolta a jelenet utolsó pontját is, a HRAA motor a két képet egymáshoz képest egy fél pixellel mindkét irányban eltolja. Így az első kép minden egyes pixelét a második kép 4 pixele veszi körül "egypergyökkettő" pixel távolságra. Ezután a HRAA motor az öt pixel szűrésével előállítja az anti-aliased pixelt.

Ez több szempontból is kedvező. Egyfelől a Quincunx módszerhez szükséges két "fénykép" sokkal kevesebb memóriát és sávszélességet igényel, mint a 4xAA. Másrészt a pixelek színére a szomszédok is hatnak, ami kiegyensúlyozottabb és tisztább képet eredményez.

[oldal:Lightspeed Memory Architecture - High Order Surfaces]

Az NVIDIA a hangzatos Lightspeed Memory Architecture nevet adta annak a technológia-gyűjteménynek, amely a GeForce3-ban a sávszélesség problémáját igyekszik megoldani. Ezeket a problémákat és néhány lehetséges megoldást tárgyalja egyik régebbi cikkünk, amely itt olvasható. Érdekesség, hogy a GeForce3 tervezőcsapatában legtöbben a Lightspeed Memory Architecture-rel foglalkoztak.

High Order Surfaces

A high order surfaces (magyarul talán magasabb rendű felületeknek lehetne fordítani) lényege az AGP port tehermentesítése. Ha egy jelenet több tízezer vagy több százezer háromszögből áll, amelyeket a korábban ismertetett vertexek írnak le, akkor az AGP port legnagyobb terhelését már nem a textúrák jelentik. Különösen igaz ez akkor, ha arra gondolunk, hogy egyes objektumok néha csak pár pixel méretűek lesznek a kész képen - mégis sokszáz háromszög írja le azokat.

A GeForce3 lehetőséget ad arra, hogy egyes geometriai obejktumokat ne a vertexei segítségével írjunk le. Elég néhány koordináta és paraméter, és a GPU előállítja a szükséges objektumot majd háromszögekre darabolja (tesszelálja) azt, majd elküldi a Vertex Shadernek.

A támogatás kihasználásához természetesen megfelelő programok is szükségesek. Mivel ehhez a 3D motorokon lényegi változtatások szükségesek, nagy kérdés, hogy mikorra jelennek meg az első szoftverek.

[oldal:Lightspeed Memory Architecture - Crossbar Memory Controller]

A GeForce256 és GeForce2 GTS kártyák egy 128 bites memóriavezérlővel rendelkeztek, amely egy órajel alatt egy 256 bites adatcsomagot tudott a DDR SDRAM memóriából olvasni, vagy oda beírni. Ha egy adott pillanatban csak egy 32 bites adatra volt szükség, az is teljesen lefoglalta a memóriavezérlőt, és a sávszélesség nagy része "pocsékba ment".

Ezen változtat a Crossbar Memory Controller, ami lényegében négy egymástól teljesen független memóriavezérlőt takar. 128 bites DDR SDRAM memóriát figyelembe véve ezek egy órajelciklus alatt 64 bitet képesek mozgatni. A négy vezérlő egyszerre négy "memórialapot" tarthat nyitva, így az átlagos késleltetés (latency) máris 25 százalékra csökkent.

A vezérlők természetesen egymással is kapcsolatban állnak, hogy optimális legyen a rendelkezésre álló memóriasávszélesség kihasználtsága.

[oldal:Lightspeed Memory Architecture - Z-buffer trükkök]

Az NVIDIA mérnökei az ATi Radeonban található módszerekhez kísértetiesen hasonló technológiákat építettek be a GeForce3-ba, tovább javítva ezzel az effektív sávszélességen.

A videochipek által legtöbbször írt és olvasott memóriaterület a z-buffer, ezért ezek az elérések azok, amelyek a leginkább igénybe veszik a memóritát. Az NVIDIA GeForce3 ezért tartalmaz egy 4:1 arányú z-buffer tömörítést, ami megvalósításában gyakorlatilag megegyezik az ATi Radeonban található módszerhez.

Bár az NVIDIA edig még nem adott ki ilyen jellegű dokumentációt, szinte biztosra vehető, hogy a GeForce3 is a chipen tárolja a z-buffer éppen szükséges részét - kérdés, hogy mekkorát. A Radeon esetében 64 byte-ot cache-el a chip. Szintén megtalálható a GeForce3-ban a Z-buffer gyors törlése, melyet az ATi is alkalmazott.

A GeForce3 ezen felül rendelkezik az ATi Radeonban található Hierarchial-Z technológia egy továbbfejlesztett változatával. Tulajdonképpen ez az, amit sokan tévesen HSR-nek neveznek. A GeForce3 "Z Occlusion Culling" technológiája a pixeleket még renderelés előtt megvizsgálja, nincsenek-e takarásban. Ha igen, a pixel egyből "megy a szemétbe" és be sem kerül a Pixel Shaderbe, ezzel megspórolva jópár Z-buffer elérést.

Az NVIDIA ezt még megfejelte egy "Occlusion Query" nevű eljárással, ami gyakorlatilag "bounding box" technológiát használva eldönti egy egész poligoncsoportról, hogy látható-e. A bounding box nem más, mint egy három dimenziós objektumot teljesen magába foglaló legkisebb "doboz", azaz hasáb.

Ennek segítségével gyorsan lehet láthatóságot vizsgálni, de a módszer elég pontatlan. Képzeljük el azt az esetet, amikor egy kitárt karú ember mögötti objektumok láthatóságát vizsgáljuk ezzel a módszerrel: a figura hóna alatt látható tárgyak "bounding box" módszer esetén nem lesznek láthatók.

Fontos, hogy a Z Occlusion Culling és az Occlusion Query eljárások hatékonysága nagyban függ az éppen futó alkalmazástól. Hatásfokuk abban az esetben a legnagyobb, ha a program a háromszögeket a kamerától távolodó sorrendben rendezi. Legkevésbé pedig akkor használható, ha a kamerához közelítő sorrendben állnak a poligonok.

A Lightspeed Memory Architecture az a része a GeForce3-nak, amely a mai alkalmazásokban is kihasználható. Az új memóriavezérlő és a Z-buffer trükkök révén sokkal hatékonyabban használható ki a rendelkezésre álló memóriasávszélesség, és ehhez nem szükséges szoftveres támogatás vagy speciális API. A technológia transzparens, és bármilyen program profitálhat belőle.

[oldal:A tesztkonfiguráció]

Ennyi elméleti bemutatás után jöjjön a gyakorlat. Szerkesztőségünk a Kelly-Tech Kft. által kölcsönadott Leadtek WinFast GeForce3 videokártyát tesztelte.

A kártya a már megszokott leadtekes dobozban érkezett, benne két CD, kábelek, kézikönyvek, minden, ami kell. A kártyán óriási hűtőborda és ventilátor tartja hidegen a videochipet és a 64 Mbyte DDR SDRAM memóriát. A bordák miatt a Leadtek WinFast GeForce3 videokártya majdnem fél kilót nyom, úgyhogy beszerelésnél fokozott óvatosság javasolt.

A kártyát a következő számítógépbe építettük be:

  • Chieftec Scorpio TX-10W számítógépház
  • Soltek SL-75DRV alaplap
  • AMD Athlon 1,2 GHz processzor
  • GlobalWin FOP38 processzorhűtő
  • 128 Mbyte PC2100 DDR SDRAM
  • Leadtek WinFast GeForce3 videokártya
  • Leadtek WinFast GeForce2 Ultra videokártya
  • Quantum Fireball LCT 30 Gbyte merevlemez
  • Sony CDU-701 CD-olvasó

A Microsoft Windows 98SE operációs rendszerre a Leadtek gyári driverét telepítettük, ami az NVIDIA 12.00 verziószámú referenciameghajtóján alapul. Természetesen a DirectX 8.1 mellett a VIA 4.29 meghajtócsomagot is felraktuk.

A gép elindítása után gyors rutinellenőrzés következett, de a GeForce2 Ultrából ismerős csíkozódással és villódzással semelyik felbontásban és színmélységben nem találkoztunk.

A GeForce3 teljesítményét a Quake 3: Arena, és a 3D Mark 2001 segítségével mértük le, lehetőség szerint a legtöbb szempont szerint megvizsgálva a kapott eredményeket.

[oldal:Fill Rate]

Gyakorlottabb fejszámolók kapásból meg tudják mondani, hogy a GeForce3 elméleti maximális kitöltési sebessége 800 Mpixel/sec illetve 1600 Mtexel/sec. A GeForce2 Ultra esetében - a magasabb órajel miatt - 1 Gpixel/sec illetve 2 Gtexel/sec adódik.

Korábban már esett szó a GeForce3-ba épített sávszélesség-spóroló eljárásokról. Ezek annyira hatékonyak, hogy segítségükkel a GeForce3 alacsonyabb órajelen és azonos memóriával is jelentősen nagyobb valós fill rate-et képes produkálni, mint a GeForce2 Ultra. De beszéljenek az ábrák (a méréseket 1024x768 pixeles felbontásban 32 bites színmélységben végeztem):

3D Mark 2001 Fill Rate - single texturing

3D Mark 2001 Fill Rate - multitexturing

A GeForce3 az elméleti legnagyobb kitöltési sebességének akár több mint 80 százalékát is képes teljesíteni, míg a GeForce2 Ultra legjobb esetben 36 százalékot produkál. Természetesen ez minden egyes alkalmazásban érezteti a hatását - a GeForce3 valóban jól takarékoskodik a sávszélességgel.

Jól megfigyelhető, hogy a Quincunx mintás anti-aliasing használata csak minimális mértékben csökkenti a kitöltési sebességet, legalábbis a 2x AA-hez képest.

[oldal:Quake 3 Arena]

A Quake 3 Arena már 1999. óta a piacon van, de remekül skálázható grafikus motorjának köszönhetően kiválóan alkalmas az új hardverek teljesítményének megállapításához.

A szokásos demo001 demo a menüből elérhető maximális geometriai részletességgel, trilineáris szűréssel futott. A teszteket kizárólag 32 bites színmélységben futtattam, egy GeForce3-mat senki sem használ 16 biten... :)

Quake 3 Arena demo001

A GeForce3-at rengeteg kritika érte, hogy nem sokkal gyorsabb a GeForce2 Ultránál. Nos, a GeForce3 chip órajele 20 százalékkal alacsonyabb, de az általunk tesztelt legnagyobb felbontásban a kártya mégis 28 százalékot ver az elődjére. Ezt én mindenképpen előrelépésnek nevezném. A teljesítmény-növekedés főként a Lightspeed Memory Architecture-nek köszönhető.

[oldal:3D Mark 2001]

A Madonion.com által kiadott 3D Mark sorozat sokak szemében szálka. Van, aki szerint a program egyszerűen pontatlnul mér, van, aki azt állítja, hogy a 3D Mark az NVIDIA chipes kártyáknak kedvez. Sokaknak az nem tetszik, hogy a program egyszerűen nem fut jól a megjelenésekor elérhető hardvereken - a 3D Mark 2001 sem igazán szakít a GeForce3-on.

A kritikák ellenére a 3D Mark szerintem nagyon jó támpontot nyújt egy videokártya teljesítményének megítéléséhez. Amikor megjelent a 3D Mark 2000, a piacon elérhető legjobb videokártyák NVIDIA GeForce256 chippel és 32 MByte SDR SDRAM-mal készültek.

A program nem futott igazán jól ezeken a kártyákon, de még a DDR-es GeForce-okon sem. Nagyjából egy évvel a megjelenése után már több olyan kártya is van, amelyeken jó eredményt produkál a program: ilyenek az NVIDIA GeForce2 kártyák és az ATi Radeon. És minő véletlen, pont ezek a kártyák azok, melyekkel ma színvonalasan lehet játszani. Legyen szó akár Quake-ről, Unreal Tournamentről, Giants-ről vagy másról.

3D Mark 2001 1024x768@32

A Madonion.com nem beszélt a levegőbe akkor, amikor azt állította, hogy a jövő tesztprogramját alkotta meg. Amelyik kártyán jól megy a 3D Mark, azzal jól lehet majd játszani - még egy pár hónap múlva is.

3D Mark 2001 1024x768@32

A játéktesztek mellett a szintetikus tesztek is megérdemelnek pár szót. A GeForce3-on végre lefut az EMBM teszt, a Matrox G4x0 sorozat és az ATi Radeon család mellett ez az első NVIDIA chip, amely képes erre az effektre. Ami a dot3 bump mappinget illeti, a GeForce3 esetében ez a Pixel Shaderen fut, láthatóan sokkal gyorsabban, mint a GeForce2 Ultra esetében.

[oldal:High Resolution Anti-Aliasing - képminőség]

Az "elméleti alapozóban" már említettük, hogy a GeForce3 egyik legnagyobb újítása a High Resolution Anti-Aliasing, ezen belül is a Quincunx minta. A tesztekből jól látható, hogy azonos memóriasávszélesség és alacsonyabb magsebesség mellett is jóval gyorsabb a GeForce3 által alkalmazott eljárás.

Lássuk a GeForce3 HRAA motorja által létrehozott képeket!

AA nélkül 2x AA Quincunx AA 4x AA
Anti-aliasing kikapcsolva, majd 2x, Quincunx és 4x AA

Érdemes összehasonlítani a GeForce2 Ultra és a GeForce3 által használt AA eljárások minőségét is.

GeForce2 Ultra 2x AA GeForce3 2x AA GeForce2 Ultra 4x AA GeForce3 4x AA
Baloldalt a GeForce2 Ultra 2x AA és 4x AA, jobboldalt a GeForce3

A GeForce3 által előállított kép egyértelműen jobb minőségű. Már csak az a kérdés, vajon milyen sebességgel képes előállítani azt a kártya?

[oldal:High Resolution Anti-Aliasing - teljesítmény]

Az anti-aliasing teljesítmény mérésére a már jól ismert Quake 3 Arena demo001-et használtuk. A menüből elérhető legnagyobb geometriai részletesség, 32 bit és trilineáris szűrés mellett a következő eredmények születtek:

Quake 3 Arena demo001 - 2x anti-aliasing

A GeForce2 Ultra videokártya bemutatásakor már tárgyalt okok miatt 1600x1200 pixeles felbontásban egyik kártyán sem működik a 4x anti-aliasing, így a következő táblázatban ez a felbontás nem szerepel.

Quake 3 Arena demo001 - 4x anti-aliasing

A GeForce3 anti-aliasing teljesítményben megkérdőjelezhetetlenül felülmúlja a GeForce2 Ultrát. Az alábbi táblázatban a GeForce3 2x és Quincunx anti-aliasing teljesítményét hasonlítjuk össze a GeForce2 Ultra 2x anti-aliasing teljesítménnyel.

Quake 3 Arena demo001 - 2x és Quincunx anti-aliasing

A grafikonról leolvasható, hogy - noha a teljesítményveszteség jócskán érzékelhető - a GeForce3-on a Quake3 még 1024x768 pixeles felbontásban is 60 fölötti fps-t produkált, azaz a játék nem csak hogy folyamatos, de játszható is maradt.

Szerintem egyértelmű, hogy a Quincunx anti-aliasingnek ott a helye a GeForce3-ban és minden további NVIDIA videochipben.

[oldal:Konklúzió]

Nem kérdés: az NVIDIA GeForce3 a jelenleg hozzáférhető legjobb felhasználói videochip. Nem csak sebességben múlja felül vetélytársait, hanem szolgáltatásaiban is kiemelkedőt nyújt. És nem mellékesen ez a jelenleg kapható egyetlen DX8-gyorsító - ha nem vesszük figyelembe a GeForce3 alapjaira épülő Quadro DCC-t.

Nagy kérdés, hogy mikor jelennek meg az nFiniteFX motor lehetőségeit kihasználó alkalmazások. Amíg ez nem következik be, a GeForce3 - hála a Lightspeed Memory Architecture-nek - simán csak a leggyorsabb videochip lesz a piacon.

Természetesen nem hagyhatjuk szó nélkül a High Resolution Anti-Aliasinget, ami gyakorlatilag az első igazán jól használható anti-aliasing adaptáció ezen a piacon.

Egyszerűen nem tudok rosszat mondani a GeForce3-ról. Illetve mégis: a Leadtek WinFast GeForce3 nem az enyém. Ha figyelembe vesszük a nettó 134 ezer forintos ajánlott kiskeredkedelmi árat, valószínű egy darabig nem is lesz az enyém, bármennyire is szeretném.

Szólj hozzá a fórumban!

A Leadtek WinFast GeForce3 videokártyát a Kelly-Tech Kft., a Leadtek Research Inc. magyarországi disztribútora bocsájtotta szerkesztőségünk rendelkezésére. Köszönjük.

A cikk elkészítéséhez nagy segítséget nyújtott Laa-Yosh, Soós Árpád és a Heaven Tourist fejlesztőcsapata. Köszönet nekik.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról