Kepler und die DirectX-11-Demo auf Basis der Unreal Engine 3: Technische Hintergründe
Epic und Nvidia zeigen auf der GDC 2012 die vom letzten Jahr bekannte Samaritan-Demo auf Basis der Unreal Engine 3 - dieses Jahr aber nicht mit drei Geforce GTX 580, sondern mit nur einer Kepler-basierten Grafikkarte. PCGH erklärt einige technische Hintergründe der DirectX-11-Demo.
Da die Samaritan-Demo (PCGH berichtete) auf einem Deferred Renderer basiert, ist Multisample-Kantenglättung (MSAA) nicht ohne Tricks möglich, so Ignacio Llamas, Senior Research Scientist bei Nvidia. Die Funktionsweise eines Deferred Renderers erlaubt jedoch auf effiziente Art und Weise eine hübsche Beleuchtung, die mit einem klassischen Forward Renderer nicht möglich wäre. Die Crux: MSAA ist, sofern man es einbaut, eine sehr rechen- und speicherintensive Geschichte. Für 4x MSAA ist die vierfache Speichermenge nötig, da pro Pixel vier anstelle eines Samples (kein AA) benötigt und gespeichert werden; auch der Rechenaufwand steigt weitgehend um Faktor 4 - fast wie bei Supersampling.
"Ohne Kantenglättung belegt ein Lighting Pass rund 120 MiByte Videospeicher auf der Grafikkarte. Mit 4x Multisample-AA werden etwa 500 MiByte benötigt - ein Drittel von dem, was eine Geforce GTX 580 an Gesamtspeicher zur Verfügung hat.", so Llamas weiter. "Dadurch wird es schwierig, auch noch die detaillierten Texturen der Demo im VRAM unterzubringen. Die Folge: Die Karte muss öfter ihre Daten wechseln, was die Bildrate in den Keller drücken kann. FXAA hingegen ist eine shaderbasierte AA-Technik, die keinen zusätzlichen Speicher (gegenüber 1x AA) belegt. Damit ist FXAA deutlich performancefreundlicher für Deferred Renderer wie Samaritan bzw. die Unreal Engine. Mit dem freigeschaufelten Speicher lassen sich ausgleichend bessere Texturen oder weitere grafische Details realisieren. Hinzu kommt, dass FXAA weichere Sample-Übergange zaubern kann als 4x MSAA, wie auch der Samaritan-Vergleich zwischen 4x MSAA und FXAA 3 zeigt."
Letzteres stimmt definitiv, die reine Kantenglättung, also die Kontrastminderung an harten Kanten, verläuft weicher und mit weniger sichtbaren Übergängen (Farb-Zwischenstufen) als bei üblichen Multisample-Modi wie 4x MSAA. Was Nvidia und Epic nicht erwähnen: FXAA (3.x) ist keine eierlegende Wollmilchsau, auch wenn sich die Schilderungen erst mal so anhören. Da Post-AA auf fertig berechnete Bilder wirkt und erst dort die Glättung beginnt, ist es machtlos gegen Aliasing-Artefakte, die durch ungenügende Abtastung auftreten. Das kann eine flackernde Polygonkante in Bewegung sein, schlimmer jedoch sind pixelfeine Objekte, welche einer höheren Genauigkeit beim Rendervorgang - und nicht erst danach - bedürfen. Gegen derartige Effekte hilft nur Multisample-AA oder besser direkt Supersample-AA. Letzteres verleiht der kompletten Szene eine feinere Abtastung, sodass Aliasing-Artefakte im Keim erstickt werden. Da hier jedes Sample sehr rechenintensiv ist, bietet sich beispielsweise eine Kombination aus SSAA/MSAA und FXAA an – so, wie Epic das bei der neuen Samaritan-Demo anscheinend tut.
Sie verstehen nur Bahnhof? Anti-Aliasing-Durchblick: Das Special-Thema der PCGH 01/2012 hilft Ihnen weiter. Das Heft lässt sich komfortabel im Abo-Shop bestellen.


Ich verstehe den Hype um FXAA nicht.
Mittlerweile ist schon ein Injector für SMAA verfügbar, der mit deutlich weniger Blur wesentlich mehr Glättung bewirkt
mrhaandi's crypto corner
Ich persönlich finde ja schon niedersampliges MS/SSAA fragwürdig und nutze es nur, wenn störendes Flimmern auftritt.
Ach so, ist nur die Demo von der Techdemo. Danke.
Die MOV Datei ist ja nur das Video der Demo...
Die eigentliche Demo gibts nicht als Download.
Ist die Techdemo eigentlich diese Samaritan_Realtime_Demo.mov 3 GB Datei?
Habe mir die bei fileplanet runtergeladen und die läuft problemlos flüssig auf meinem System. X79, GTX 570 SLI. Merkwürdigerweise gehen bei mir nicht mal die temps von den Grafikkarten hoch, als wenn mein System überhaupt nicht gefordert wäre.
Und wenn das nicht die Techdemo ist, wo kann man die kriegen?