Vorwort
Für die Presse wurde er schon veröffentlicht, für die breite Masse ist er aber nachwievor in nicht allzu weiter Ferne. Es geht um den Patch zu Far Cry mit der Versionsnummer 1.2, der dem Spiel ein sehr interessantes Feature hinzufügt. Explizit geht es dabei um die Unterstützung des Shader-Models 3.0, das zurzeit nur die Grafikkarten der GeForce 6800-Serie aus dem Hause nVidia beherrschen. Bevor wir uns den Ergebnissen des Vergleiches zwischen SM 2.0 und 3.0 widmen, wollen wir einmal etwas genauer auf die allgemeinen Änderungen des Patches eingehen.
ZitatChangelog:
- Made the run speed about 15% faster
- Made sprint last 30% longer
- Adjusted damage to vehicles
(vehicles now survive longer in multiplayer and behave consistently between weapon damage types) Bullet damage can be disabled by "g_vehicleBulletDamage" cvar: 0 = no bullet damage (default), 1 = bullet damage; this works only in MP.
MP vehicles can get the same damage from every kind of bullet (no distinction between sniper rifle and the deagle), this value is set by 'dmgBulletMP' variable inside 'DamageParams' table of the vehicle.
- buggy, humvee and gunboat can be destroyed with one rocket.
- bigtruck can be destroyed with three rockets.
- buggy and gunboat can be destroyed with 100 bullets (if g_vehicleBulletDamage = 1)
- humvee can be destroyed with 150 bullets (if g_vehicleBulletDamage = 1)
- bigtruck can be destroyed with 500 bullets (if g_vehicleBulletDamage = 1)
- vehicle damage code cleaned and made more consistent.
- Fixed a number of serious issues with headshot detection
- Ported a number of sensitive routines into non SDK sources
- Fixed some issues with ladder animations appearing odd to other players
- Added quicksave support for single player (still in process)
- Fixed bug where players name tag didn't show up
- Fixed bug where console would accept letters as variable states
- Fixed a number of ladder related issues
- Fixed error with warning message in connection dialogue
- Fixed a significant number of bugs relating to quicksave (~100 bugs)
- Fixed a connection dialogue error
- Fixed an incorrectly localized HUD message
- Fixed bug with server shutdown dialogue error
- Addressed a number of issues with the server list UI
- Fixed bug causing cancel button to stop working
- Server create sessions are now saved
- Fixed a bug causing game freezes when player joins and player rotates
- Fixed a rendering issue with Radeon 9600 graphics cards
- Fixed Punkbuster crash when switching from punkbuster online server to hosting LAN server
- Fixed issue with punkbuster icon not showing up in the server listing
- Fixed random crash relating to punkbuster server listing info
- Fixed issue with punkbuster refusing connection to a server that is destroyed and then re-hosted
- Fixed a number of crash problems related to punkbuster server creation with non-dedicated servers
- Fixed issue with punkbuster enabled in multiple server profiles
- Disabled e_vegetation_min_size in multiplayer (used as cheat)
- Added optimizations for character effects including invulnerability shader
- Added optimizations for scoreboard performance. Scoreboard no longer updates fields that have not changed
- Fixed issue where radar would not be drawn correctly with certain game type changes
- Fixed framerate issue when player touched assault ammo pickups
- Fixed issue with password protected servers not removing password after restart
- Fixed issue with spectators not being able to hear ambient sounds
- Fixed message printout for multiplayer statistics (was only working with log_verbosity 1, not it works with 0 (default) as well)
- Fixed listplayer on the client (was only working on the server)
- Changed multiplayer scoreboard system for less bandwidth and easier extendibility
- Fixed bug in scoreboard that reported ping incorrectly by a factor of 2. Pings now appear correctly (half the old values). Note: ping is still the same, the output value was inaccurate)
- Fixed check in server/client version check (now you cannot connect to servers with old network code)
- Fixed bug in submitted Punkbuster ID causing random CD Key hash to be generated. Global ID unique to CD keys is now parsed correctly.
- Added MultiplayerUtils:OnChatMessage a script function which is called on the server for every chat message (to enable saving out chats)
- Made several changes to improve network packet scheduling
- Separated multiplayer and single player weapon code better functionality with mod developers and support for changes to MP balance without affecting single player.
- Made a number of changes to multiplayer weapon parameters, outlined below:
- All weapons - Increase accuracy while standing still by 25%
- Made the medic packs give 50% more health for the engineer class
- Reduced rocket launcher clip to 1, no change to lethality.
- Increased MP5 damage by 30% with full auto, 50% increase with semi-automatic
- Adjusted AG36 damage to head and torso.
- Reduced AG36 grenade radius.
- Increased OICW accuracy by 30% when zoomed.
- Reduced OICW grenade clip to 3 with max carry of 3 in the gun and 3 in reserve
- Increased Pancor damage slightly
- Reduced P90 damage by 10% and reduced max range by 25%
- Increased lethality of mounted weapons.
- Improved detection code for player name tags, fixed issue causing name tags not to appear if crosshair was on arms and legs
- Fixed collision detection on the dedicated server with different arm position because of different weapons. Hit detection is now more accurate.
- The record console variable was makred as protected because it opened up some cheat posibilities
- Fixed a bug that sometimes caused players hit by a buggy not to credit the driver with a kill
- Fixed a number of issues with discrepancies between player cameras in 1st and 3rd person
So war die uns zur Verfügung gestellte Version knapp 59 MB groß. Die gute Nachricht ist, dass die Entwickler von Far Cry endlich wieder eine akzeptable Bildqualität für Besitzer von nVidia-Karten realisieren. Mit dem Patch auf Version 1.1 schraubte man diese noch signifikant herunter, um das Spiel auf Grafikkarten der NV3x-Generation besser spielbar zu machen. Zwar konnte man so wirklich die Geschwindigkeit auf „shaderlahmen“ nVidia-Karten verbessern, allerdings litt - wie bereits erwähnt - die Renderqualität schwer unter diesen Maßnahmen. Mit dem neuen Patch begibt man sich nun wieder auf den rechten Weg, Besitzer von NV3x-Karten müssen sich allerdings auf Performanceinbußen gefasst machen, die die Geschwindigkeitsverhältnisse in etwa auf die der Version 1.0 zurückversetzen. Zur besseren Darstellung haben wir die unterschiedlichen Patch-Versionen durch Screenshots untereinander verglichen. Anbei auch ein Screenshot, der auf einer Radeon 9800 XT aufgenommen wurde. Alle entstanden in einer Auflösung von 1280x1024 Pixel mit vierfachem Anti-Aliasing und achtfacher anisotroper Filterung.
| Bildqualität Far Cry 1.1 vs. 1.2 | ||
|---|---|---|
Far Cry 1.2 NV40 SM 3.0 |
Far Cry 1.2 NV40 SM 2.0 |
Far Cry 1.1 NV40 SM 2.0 |
Far Cry 1.2 R360 SM 2.0 |
Far Cry 1.1 R360 SM 2.0 |
|
Die Version 1.1 von Far Cry fabrizierte an manchen Stellen Bildfehler, wie wir sie auch auf einem Screenshot beobachten können. Diese verschwinden jedoch, sobald man sich etwas vom Fleck bewegt. Da wir aber nicht plötzlich einen anderen Bildausschnitt präsentieren wollten, tolerierten wir die Bildfehler zähneknirschend.
Zusätzlich wollen wir nochmals anhand zweier Ausschnitte aus den obigen Screenshots auf die Qualität der Schatten in Far Cry eingehen. So lässt sich beobachten, dass ATi-Karten (linkes/oberes Bild) - in diesem Falle eine Radeon 9800 XT - weitaus weichere Schatten zeichnet, als dies die GeForce 6800 Ultra (rechtes/unteres Bild) mit dem von uns verwendeten Treiber 61.45 (SM 3) tut. Wir hoffen, dass dieser Bug entweder im nächsten ForceWare-Treiber oder bis zum finalen Release des Patches behoben wird. Durch die verbesserte Darstellung der Schatten dürften auch keinerlei Performanceverluste eintreten, kann die Cry-Engine diese doch ohne große Anstrengungen rendern. Beide Screenshots entstanden bei vierfachem Anti-Aliasing und achtfachem anisotropem Filter.


In der Version 1.2 von Far Cry integrierten die Entwickler ebenfalls endlich ordentliche Bezeichnungen für die verschiedenen Modi des Anti-Aliasings und der anisotropen Filterung. Konnte man zuvor beim AA noch aus den Stufen „niedrig“, „mittel“ und „hoch“ wählen, stehen nun mit den Modi „2s AA“ und „4s AA“ zwei weitaus anschaulichere zur Verfügung. Beim anisotropen Filter kann man nun zwischen 1, 2, 4 sowie 8 wählen.
Was ist Shader 3.0?
Doch was ist das Shader-Model 3.0 überhaupt? Im Folgenden wollen wir nun einmal zumindest ansatzweise in die Materie eintauchen und einen kleinen Überblick über diese neue, eher evolutionäre Technologie liefern. So muss man von vorne herein sagen, dass das SM 3.0 gegenüber seinem Vorgänger keinerlei Verbesserungen in der Renderqualität mit sich bringt. Die Pixel- und Vertex-Shader 3.0 ermöglichen es also fast ausschließlich Shader-Code schneller auszuführen. Dies wird durch das so genannte „Branching“ erreicht, welches eine Art Loop-Funktion innehat, die es z.B. Softwareentwicklern ermöglicht, ein und den selben Shader ohne großen Aufwand mehrmals hintereinander auszuführen. Im SM 2.0 musste dazu noch umständlich derselbe Code mehrfach integriert und ausgeführt werden. Dank des Shader-Model 3.0 geht dies nun weitaus schneller vonstatten, so dass sich durchaus einige Performancevorteile ergeben können. Anbei noch ein Bild der Vertex Shader 3.0-Architektur des NV40, welches gut die Branching-Einheit zeigt.
Wer nun mehr über das Shader-Model 3.0 erfahren möchte, dem sei unser Launchartikel zur GeForce 6800 Ultra [1] ans Herz gelegt. Zudem haben die Kollegen des 3DCenters einen sehr technischen Artikel zum Thema Was bringt ein Pixel-Shader 3.0-Chip heute? [2] verfasst. Dieser strotzt nur so vor nützlichen Informationen bezüglich nVidias neuestem Streich, so dass jeder, der etwas Ahnung von der Materie hat, sich diesen zu Gemüte führen sollte. Zusätzlich wollen wir aber nochmals mit Hilfe einer kleinen Tabelle auf die Unterschiede in den Shader-Einheiten des NV40 gegenüber seinen Vorgängern eingehen.
| NV30 | NV35/8 | NV40 | |
|---|---|---|---|
| Pixel Shader 2.0 vs. 3.0 | |||
| Anzahl FP-Einheiten | 4 | 8 | 32 |
| Max. Instruction Slots | 512 | 512 | >511 |
| Max. Instructions | 512 | 512 | 65535 |
| Interpolated Reg. | 2+8 | 2+8 | 10 |
| Temporary Registers | 22 | 22 | 32 |
| Constant Registers | 32 | 32 | 224 |
| Dynamic Flow Control | Nein | Nein | Ja |
| Vertex Shader 2.0 vs. 3.0 | |||
| Anzahl Vertexeinheiten | 3 (Array) | 6 (2*Array) | |
| Durchsatz pro Takt | 0,75 | 1,5 | |
| Max. Instructions | 65535 | 65535 | |
| Max. Static Instructions | 256 | >511 | |
| Max Const. Instructions | 256 | >511 | |
| Temporary Registers | 16 | 32 | |
| Static Flow Control | Ja | Ja | |
| Dynamic Flow Control | Ja | Ja | |
| Geometry Instancing | Nein | Ja | |
| Vertex Texture Fetch | Nein | Ja | |
Testsystem
Um das SM nach Version 3.0 nutzen zu können, braucht man natürlich Microsofts DirectX 9.0c, denn in der frei erhältlichen Version 9.0b ist bis jetzt nur das Shader-Model nach der Version 2.0 verankert. Zusätzlich nutzen wir einen speziellen, von nVidia bereitgestellten ForeWare-Treiber der Version 61.45, da frühere Treiber nicht die Option auf die Verwendung von SM 3.0 bieten. Selbst wenn der Patch für Far Cry also durch irgendein Loch an die Öffentlichkeit gelangen würde, müsste man erst an den speziellen nVidia-Treiber herankommen, um auch wirklich von dem neuen Feature profitieren zu können. Die Suche nach DirectX 9.0c dürfte sich allerdings wiederum nicht sonderlich schwer gestalten.
- Prozessor
- Motherboard (Timings per SPD)
- Asus SK8V (Sockel 940, VIA K8T800)
- Arbeitsspeicher
- Grafikkarten
- nVidia GeForce 6800 Ultra
- nVidia GeForce 6800 GT
- Peripherie
- Traxdata RW2500 [5]
- Pioneer DVD-Laufwerk (Slot-in)
- Samsung 120 GB S-ATA HDD (8 MB Cache)
- Treiberversionen
- nVidia ForceWare 61.45 (SM 3.0 aktiv)
- VIA Hyperion 4.51 Pro
- Software
- Microsoft Windows XP Professional SP1
- Microsoft Windows Media Player 9
- Microsoft Windows Movie Maker 2.0
- Microsoft DirectX 9.0c
Benchmarks Far Cry 1.2
1024x768 Pixel
Far Cry 1.2 1024x768
Angaben in Bildern pro Sekunde (FPS)
|
Schnell wird deutlich, dass Far Cry in der v1.2 von den Pixel- und Vertex-Shadern nach den Spezifikationen von Version 3.0 ausnahmslos profitieren kann. Einzig in der Map „Training“ bewegen sich die Zuwächse im kaum wahrnehmbaren Bereich. Offensichtlich kann man die Performancegewinne nicht pauschal an einem Indoor- oder Outdoor-Level festmachen, profitiert z.B. die Map „Research“, eine reine Indoor-Map, mit fast 20 Bildern pro Sekunde mit am meisten. Die bereits erwähnte Map „Training“ - ebenfalls größtenteils eine Indoor-Map - hingegen kaum. Die Maps „Regulator“ und „Volcano“ besitzen beide große Außenareale und profitieren ebenfalls signifikant vom SM 3.0.
Far Cry 1.2 1024x768 2xAA/4xAF
Angaben in Bildern pro Sekunde (FPS)
|
Auch unter Verwendung von Anti-Aliasing und anisotroper Filterung profitiert Far Cry teilweise eklatant vom neuen Patch, der dem Spiel das SM 3.0 beibringt. Oftmals kann eine GeForce 6800 GT dank des Patches auch die Leistungen einer 6800 Ultra mit SM 2.0 übertreffen und sorgt so für die eine oder andere Überraschung. Die stärksten Zuwächse verzeichnen wir in den Maps „Research“ und „Volcano“.
Far Cry 1.2 1024x768 4xAA/8xAF
Angaben in Bildern pro Sekunde (FPS)
|
Auch unter der Verwendung von vierfachem Anti-Aliasing und maximalem anisotropen Filter ändert sich nicht viel an der Tatsache, dass Far Cry dank SM 3.0 einen gehörigen Geschwindigkeitsboost erfährt. Auf der Map „Research“ gewinnt eine GeForce 6800 Ultra immerhin satte 22 FPS, eine 6800 GT immerhin noch 20.
1280x1024 Pixel
Far Cry 1.2 1280x1024
Angaben in Bildern pro Sekunde (FPS)
|
In der nächsthöheren Auflösung, 1280x1024, kann Far Cry dank des neuen Patches ebenfalls signifikante Performancevorteile einfahren. An vorderster Front steht natürlich wieder die GeForce 6800 Ultra, die durchweg gute Ergebnisse abliefert und auf allen Maps einige Bilder pro Sekunde gewinnt. Aber auch die 6800 GT ist gut dabei und kann sich dank SM 3.0 in zwei von vier Testdurchläufen vor eine 6800 Ultra mit SM 2.0 setzen.
Far Cry 1.2 1280x1024 2xAA/4xAF
Angaben in Bildern pro Sekunde (FPS)
|
Auch unter Verwendung von Anti-Aliasing und anisotroper Filterung machen sich Zuwächse bemerkbar. So kann die GeForce 6800 Ultra auf der „Research“-Map 18 FPS gewinnen, in der Outdoor-Map „Volcano“ sind es immerhin noch elf. Aber auch die GeForce 6800 GT schlägt sich wacker und kann auf den Maps „Research“ und „Volcano“ wieder einmal die 6800 Ultra mit SM 2.0 überflügeln. Auf den anderen beiden Maps hält sich der Performancegewinn derweil in Grenzen, ist aber definitiv vorhanden.
Far Cry 1.2 1280x1024 4xAA/8xAF
Angaben in Bildern pro Sekunde (FPS)
|
Verwendet man vierfaches AA und maximales AF, sieht die Situation ähnlich aus wie schon zuvor. Auch hier sind die größten Geschwindigkeitszuwächse in den Maps „Research“ und „Volcano“ zu verzeichnen, „Regulator“ und „Training“ profitieren weitaus weniger von den neuen Shadern nach Version 3.0.
Fazit
Die Werte sprechen eigentlich eine deutliche Sprache. So muss man Far Cry neidlos attestieren, dass die Implementierung des Shader-Models 3.0 reibungslos vonstatten ging und der GeForce 6800-Serie den einen oder anderen Performanceschub verleiht. Allerdings lässt sich dieser nicht pauschal an einer speziellen Umgebung festmachen. Es kommt explizit auf die Anzahl der genutzten Shader an. Ist diese hoch, lassen sich durch SM 3.0 Zuwächse erzielen. Ist diese niedrig, vermag auch das SM 3.0 nur wenig Mehrleistung herauszuholen. Oftmals sind es dann aber doch bis zu 25 Bilder pro Sekunde, die z.B. eine 6800 Ultra gegenüber dem SM 2.0 gewinnen kann. Allerdings muss man im gleichen Atemzug auch wieder etwas relativieren. So ist im Moment Far Cry das einzige Spiel, das Unterstützung für DirectX 9.0c bietet und am Horizont zeichnet sich auch so schnell kein anderes Spiel mit solchen Fähigkeiten ab. Im Gegenteil, oftmals erscheinen neue Spiele noch ohne die Unterstützung des Shader-Model 2.0 oder machen nur sehr wenig Gebrauch davon, so dass eine Unterstützung des SM 3.0 recht abwegig erscheint.
Allerdings hat nVidia beim Launch der GeForce 6800 Ultra [6] angekündigt, dass man Spieleherstellern tatkräftig bei der Implementierung des SM 3.0 unter die Arme greifen wird. Zudem sollen die Entwickler die Features des neuen Shader-Sets relativ leicht in die eigene Software einfügen können, so dass einer weiten Verbreitung eigentlich nichts im Wege stehen dürfte. Und so ist nVidia mit dem Shader-Model 3.0 wohl auf dem richtigen Weg zu einer effizienteren Verarbeitung von Shader-Code, wie sie das SM 2.0 nicht bietet. Dass die GeForce 6800 Ultra und GT dadurch schneller werden, beweisen unsere Benchmarks derweil eindrucksvoll. ATi droht - zumindest was Far Cry angeht - ins Hintertreffen zu geraten, beherrscht die neue X800-Serie [7] doch nur das „alte“ Shader-Model 2.0 und kann mit 3.0 nichts anfangen. Hier dürfte nVidias Unterstützung des SM 3.0 dafür sorgen, dass beide Grafikkartenhersteller bei gleicher Bildqualität wieder gleichauf sind und sich ein Kopf-an-Kopf-Rennen liefern. Für die nächste Version von Far Cry wurde allerdings schon eine Unterstützung von ATis 3dc [8]-Texturkomprimierung angekündigt, die den Karten der X800-Serie ebenfalls wieder etwas mehr Performance entlocken sollte.






