Supersampling Anti-Aliasing auf ATI & nVidia unter DirectX 10/11

Sonntag, 9. Mai 2010
 / von Leonidas & Mr. Lolman
 

Das Thema Supersampling Anti-Aliasing hat in letzter Zeit wieder vermehrt Aufmerksamkeit auf sich gezogen: Erst bot ATI mit der Radeon HD 5000 Serie diese Funktionalität ganz offiziell unter DirectX9 an, dann wurde kürzlich durch einen Treiberfehler Supersampling Anti-Aliasing auf GeForce GTX 470 & 480 unter DirectX 10/11 freigelegt. Und die ganze Zeit zwischendurch köchelte eine andere Herangehensweise an diese Problematik vor sich hin, welche nun erstmal richtig praktikabel und für viele Anwendungsfälle anwendbar wird: Das Downsampling Anti-Aliasing.

Hierbei handelt es sich auch um Supersampling Anti-Aliasing, allerdings wird dieses anders, nämlich sehr viel einfacher erzeugt. Denn während reguläres Supersampling Anti-Aliasing dasselbe Bild mehrfach mit differienden Sample-Positionen berechnet, wird beim Downsampling Anti-Aliasing das Bild schlicht intern in einer höheren Auflösung berechnet und dann für die Ausgabe auf die benutzte Monitorauflösung herunterskaliert ("downgesampelt"). Hierdurch entsteht genauso auch ein Anti-Aliasing-Effekt, wenngleich dieser einem geordnetem Sample-Raster entspricht, von der Anti-Aliasing-Wirkung her gegenüber den heutzutage üblichen rotierten Sample-Rastern also nicht optimal ist.

Dafür aber ist gerade für Downsampling kein explizites Mitwirken der Hersteller notwendig – weder bei der Hardware noch beim Treiber, da ab DirectX10 Downsampling Bestandteil der DirectX-10/11-API ist und daher von den Grafikchip-Entwicklern automatisch unterstützt werden muß, selbst wenn es (wie derzeit) nicht offiziell im Treiber freigelegt ist. Eben diesen Umstand hat sich nun Thomas Bruckschlegel von Tommti-Systems zunutzegemacht und ein Tool namens "SSAA Tool" programmiert und in unserem Forum vorgestellt, welches genau diese Aufgabe übernimmt: Downsampling unter DirectX-10/11-Spielen zu ermöglichen – und zwar unabhängig der Grafikkarte. Es muß zwar logischerweise mindestens eine DirectX10-Grafikkarte sein, aber danach ist dann egal, ob ATI oder nVidia.

Damit wird erstmals unter modernen DirectX-10/11-Spielen (nahezu) durchgängig Supersampling Anti-Aliasing möglich – und damit auch der Vergleich der Spitzenmodell Radeon HD 5870 gegen GeForce GTX 480 unter Supersampling Anti-Aliasing. Wir wollen nachfolgend als Vorgeschmack auf den kommenden Test von GeForce GTX 470 & 480 auf 3DCenter einen kleinen Supersampling-Vergleich unter einigen DirectX-10/11-Titeln antreten. Das benutzte Testsystem lautet dabei folgendermaßen:

  • Intel Core 2 Quad Q9450 @ 3.6 GHz (450x8)
  • Asus P5K-E (Intel P35)
  • 4 GB DDR2 @ 900 MHz, 5-5-5-15-1T
  • Sapphire Radeon HD 5870 1024MB
  • Zotac GeForce GTX 480 1536MB (freundlicherweise gestellt von Zotac)
  • Windows 7 64-Bit
  • ATI Catalyst 10.4a
  • nVidia Forceware 197.41

Als Software kam wie gesagt das SSAA Tool zum Einsatz, welches für die vorhandene Monitorauflösung von 1920x1200 eine Berechnungsauflösung von 3840x2400 ermöglichte, was 2x2 Supersampling Anti-Aliasing entspricht. Dies ergibt eine anständige Kantenglättung, wenngleich das übliche 4x Multisampling Anti-Aliasing (durch das rotierte Raster) diesbezüglich doch schon etwas besser ist. Hinzu kommt dann natürlich auch noch der Glättungseffekt auf Texturen, welcher insbesondere bei transparenten Texturen und zur Beseitigung von Texturenflimmern willkommen ist – hier liegt der eigentliche Gewinn von Supersampling Anti-Aliasing, nachfolgend beispielshaft in Battlefield: Bad Company 2 gezeigt:


MouseOut: no AA (Originalbild), Mouseover: 2x2 SSAA (Originalbild)

Deutlich ist in den Bildausschnitten zum einen die reguläre Anti-Alasing-Wirkung (links) zu sehen wie auch das Wirken auf transparente Texturen (rechts). Insbesondere mit letzterem wird ein deutlich ruhigeres, flimmerärmeres Bild erzeugt, was einfach viel angenehmer anzusehen ist. Der Effekt ist leider auf Screenshots nur unzureichend demonstrierbar, erst in Bewegung sieht man den doch erheblichen Einfluß des Supersampling Anti-Aliasings so richtig.

Interessant ist natürlich gerade bei Supersampling Anti-Aliasing immer dessen Performance, da dieses bildqualitätsverbessernde Feature immer schon als großer Performance-Schlucker verschrien war. Mit den Performancereserven von heutigen HighEnd-Beschleunigern kann man allerdings 2x2 Supersampling Anti-Aliasings anscheinend auch auf aktuellen Spielen mit der ansonsten jeweils höchsten Bildqualität nutzen, wie unsere ersten Tests mit Avatar, Battlefield: Bad Company 2 und BioShock 2 beweisen:

Supersampling-Benchmarks Avatar
 Bad Company 2
Supersampling-Benchmarks BioShock 2

Erstaunlicherweise zeigen diese ersten Benchmarks einen gewissen Vorteil der Radeon HD 5870 gegenüber der GeForce GTX 480, sobald Supersampling Anti-Aliasing angeworfen wird. Dies ist um so mehr bemerkenswert, als daß unter gewöhnliche Bedingungen mit Multisampling Anti-Aliasing in diesem Vergleich eigentlich immer die nVidia-Karte vorn liegt. Woran die Schwäche der GeForce GTX 480 unter Supersampling Anti-Aliasing liegt, wird noch herauszufinden sein – aber natürlich sind bei einem nicht von den Grafikchip-Entwicklern promoteten Feature immer ungewöhnliche Benchmarkergebnisse möglich, erst nach intensiver Treiberarbeit würde sich das wahre Leistungsvermögen dieser Karten unter Supersampling Anti-Aliasing offenlegen lassen.

Dabei sind diese ersten Benchmarkergebnisse natürlich nur ein Vorgeschmack auf den gerade bei uns entstehenden Artikel zu GeForce GTX 470 & 480, welcher dann noch mehr Supersampling-Benchmarks (neben den regulären Multisampling-Benchmarks) bieten wird. Für den Augenblick ist wohl erst einmal die Demonstration der reinen Möglichkeit wichtiger, daß man eben mit DirectX-10/11-Grafikkarten und dem SSAA Tool nunmehr auch Supersampling Anti-Aliasing unter DirectX-10/11-Spielen unabhängig des Grafikkarten-Herstellers erzwingen kann. Im entsprechenden Thread unseres Forums gibt es auch eine Liste mit Spielen, wo das SSAA Tool funktioniert.

Leider ist das Tool derzeit noch mit praktischen Einschränkungen verbunden, weil für dieses ein nicht zertifizierter Treiber verwendet werden muß (und das Zertifikat Geld kosten würde). Besser wäre es sowieso, wenn ATI und nVidia sich ganz offiziell dieses Themas annehmen würden und Supersampling Anti-Aliasing entweder direkt im Treiber (wird wohl nicht gehen wegen der DirectX-10/11-Forderung, daß der Treiber kein Anti-Aliasing mehr forcieren darf) oder per Tweaktools anbieten würden. Es wäre in jedem Fall schade, diese gute Möglichkeit zu Supersampling Anti-Aliasing (und damit zu mehr Bildqualität) einfach so liegenzulassen, nur weil irgendwelche API-Regularieren dies ohne technisch begründbare Notwendigkeit verbieten. In jedem Fall sollten beide Grafikchip-Entwickler bei diesem Thema in Zukunft verstärkt ansetzen.