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.
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 blurA 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 - 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... :)
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.
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.
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!
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.
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:
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.
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.
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.
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.