PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Oblivion - HDR und Anti Aliasing


Kai
2006-04-23, 03:14:20
Hmm. Was ich mich schon seit längerem fragen tu: Ist das nur ne lapidare Ausrede von Bethesda, dass HDR und AA gleichzeitig nicht möglich sind? Ich meine, mit den aktuellen Chuck-Treibern geht's ja zumindest bei ATI. Ist da an deren Architektur etwas grundlegend anders, oder ist es eine Art Hack?

Und wieso zum Geier funktioniert sowas nicht auf nVidia-Karten *neidischsei* :)

Neomi
2006-04-23, 03:34:46
Hmm. Was ich mich schon seit längerem fragen tu: Ist das nur ne lapidare Ausrede von Bethesda, dass HDR und AA gleichzeitig nicht möglich sind?

Ja, das ist nur eine Ausrede. Das, was der Chuck-Treiber macht, ginge im Spiel direkt auch, wenn die Leute es hätten implementieren wollen. Wenn es nicht möglich wäre, dann könnte der Treiber es auch nicht nachträglich erzwingen.

In Direct3D kann man Rendertargets mit Multisampling anlegen, aber die kann man dann nicht als Texturen verwenden. Man kann Texturen anlegen, die man per Extraflag als Rendertarget setzen kann, aber dabei kann man kein Multisampling spezifizieren. Bethesda hat diesen Weg gewählt, Textur ohne Multisampling.

Man kann aber ein Rendertarget mit Multisampling und eine Textur ohne anlegen, ins Rendertarget rendern und das Ergebnis in die Textur per IDirect3DDevice9::StretchRect rüberschieben (mit Downsampling). Genau das ist es, was der Workaround im Treiber macht.

RT = Rendertarget mit Multisampling
Tex = Textur ohne Multisampling
RT_Tex = Rendertarget-Textur ohne Multisampling

- Spiel fordert RT_Tex an -> Treiber erstellt RT und Tex, liefert Tex zurück
- Spiel setzt RT_Tex als Rendertarget -> Treiber setzt RT als Rendertarget
- Spiel setzt anderes Rendertarget -> Treiber setzt anderes Rendertarget, kopiert (mit Downsampling) RT nach Tex
- Spiel setzt RT_Tex als Textur -> Treiber setzt Tex als Textur
- Spiel gibt RT_Tex frei -> Treiber gibt RT und Tex frei

Diese Dinge muß der Treiber hartgecodet umbiegen, mehr ist das nicht. RT_Tex existiert dabei nur aus der Sicht des Spiels. Das funktioniert prinzipiell für jedes Spiel, das diesen Weg einschlägt.

Und wieso zum Geier funktioniert sowas nicht auf nVidia-Karten *neidischsei* :)

Weil nVidia kein Multisampling für FP16-Rendertargets anbietet. Auch nVidia könnte FSAA per Treiber erzwingen, allerdings nur als Supersampling per höher aufgelöstem Rendertarget. Aber das wird so viel Füllrate fressen, daß man das wahrscheinlich nicht machen wird.

Tigerchen
2006-04-23, 09:58:03
Ja, das ist nur eine Ausrede. Das, was der Chuck-Treiber macht, ginge im Spiel direkt auch, wenn die Leute es hätten implementieren wollen. Wenn es nicht möglich wäre, dann könnte der Treiber es auch nicht nachträglich erzwingen.

In Direct3D kann man Rendertargets mit Multisampling anlegen, aber die kann man dann nicht als Texturen verwenden. Man kann Texturen anlegen, die man per Extraflag als Rendertarget setzen kann, aber dabei kann man kein Multisampling spezifizieren. Bethesda hat diesen Weg gewählt, Textur ohne Multisampling.

Man kann aber ein Rendertarget mit Multisampling und eine Textur ohne anlegen, ins Rendertarget rendern und das Ergebnis in die Textur per IDirect3DDevice9::StretchRect rüberschieben (mit Downsampling). Genau das ist es, was der Workaround im Treiber macht.

RT = Rendertarget mit Multisampling
Tex = Textur ohne Multisampling
RT_Tex = Rendertarget-Textur ohne Multisampling

- Spiel fordert RT_Tex an -> Treiber erstellt RT und Tex, liefert Tex zurück
- Spiel setzt RT_Tex als Rendertarget -> Treiber setzt RT als Rendertarget
- Spiel setzt anderes Rendertarget -> Treiber setzt anderes Rendertarget, kopiert (mit Downsampling) RT nach Tex
- Spiel setzt RT_Tex als Textur -> Treiber setzt Tex als Textur
- Spiel gibt RT_Tex frei -> Treiber gibt RT und Tex frei

Diese Dinge muß der Treiber hartgecodet umbiegen, mehr ist das nicht. RT_Tex existiert dabei nur aus der Sicht des Spiels. Das funktioniert prinzipiell für jedes Spiel, das diesen Weg einschlägt.



Weil nVidia kein Multisampling für FP16-Rendertargets anbietet. Auch nVidia könnte FSAA per Treiber erzwingen, allerdings nur als Supersampling per höher aufgelöstem Rendertarget. Aber das wird so viel Füllrate fressen, daß man das wahrscheinlich nicht machen wird.

Gabs da nicht mal ne Diskussion weil Valve den Nvidianern einen speziellen Renderpfad für die 5x00 Reihe verweigerte. Gabs da nicht einen Riesenaufstand?
Wieso gibts jetzt keinen Aufstand wenn Bethselda den ATI-Fans das schnelle MS+HDR verweigert?

Demirug
2006-04-23, 10:02:56
Gabs da nicht mal ne Diskussion weil Valve den Nvidianern einen speziellen Renderpfad für die 5x00 Reihe verweigerte. Gabs da nicht einen Riesenaufstand?
Wieso gibts jetzt keinen Aufstand wenn Bethselda den ATI-Fans das schnelle MS+HDR verweigert?


Der wesentlichen Unterschied ist wohl das bei Valve bekannt wurde das dieser spezielle Renderpfad schon fertig war und einfach wieder entfernt wurde. Bei Oblivion dagegen kann man das nicht sicher sagen. Zudem scheint die Schmerzgrenze für Bugs usw bei Rollenspielfans viel höher zu sein als bei FPS Fans.

reunion
2006-04-23, 10:45:36
Der wesentlichen Unterschied ist wohl das bei Valve bekannt wurde das dieser spezielle Renderpfad schon fertig war und einfach wieder entfernt wurde. Bei Oblivion dagegen kann man das nicht sicher sagen.

Da die Xbox 360-Version AFAIK HDR+MSAA bietet, kann man das eigentlich schon sicher sagen.

Demirug
2006-04-23, 11:00:29
Da die Xbox 360-Version AFAIK HDR+MSAA bietet, kann man das eigentlich schon sicher sagen.

Nein, weil gerade diese Postfiler und spezielle Backbuffer formate Sache bei der XBox 360 wegen dem EDRAM anders ist.

ShadowXX
2006-04-23, 11:15:32
Da die Xbox 360-Version AFAIK HDR+MSAA bietet, kann man das eigentlich schon sicher sagen.
Lt. technischen Aussagen der Programmierer von Bethesda, bietet keine Plattform HDR+AA an.....

(Die ATI ausnahme kommt ja von ATI selbst).

Ich such jetzt mal kurz die Stelle des Statements und editiere dann den Link rein....

reunion
2006-04-23, 11:23:45
Lt. technischen Aussagen der Programmierer von Bethesda, bietet keine Plattform HDR+AA an.....

(Die ATI ausnahme kommt ja von ATI selbst).

Ich such jetzt mal kurz die Stelle des Statements und editiere dann den Link rein....

Möglich. Im Konsolenforum herrscht jedenfalls die Meinung, dass die Xbox-Version HDR+2xMSAA bietet. Außerdem habe ich das auch schon bei B3D desöfteren gelesen.

ShadowXX
2006-04-23, 11:33:51
So gefunden...das Problem ist nun leider, das Bethesda die dumme angewohnheit hat Ihr Forum dauernd umzuräumen und deshalb der Link von damals nicht mehr funktioniert....ich poste deshalb mal den Text, der dort stand:

On High-Dynamic Range (HDR) and Anti-Aliasing (AA)

HDR will work with all SM2.0 and later cards; (See the quote here, on a SM 2.0 implementation of HDR) though now, Gavin Carter (Kathode) appears to have taken a different definition of what is and what isn’t HDR, and now dismisses it as “bloom.” However, this, by any definition that most know of, is HDR, and is fully compatible with any form of anti-aliasing.

What they’ve taken to calling “true” HDR apparently requires a SM 3.0 card to use, and though it’s unknown exactly what further effects it brings over the SM 2.0 variant, it also, according to recent comments by Orin Tresnjak, (Lancekt) it’s mutually exclusive to AA on all chipsets; this would apparently even include ATi’s X1k video cards as well as the Xbox 360.

Demnach ist es bei der X360 auch "nur" Bloom + AA und kein HDR + AA.

(und hier der ins leere führende alte Link dazu http://www.elderscrolls.com/forums/index.php?showtopic=264257)

....uppss...das sollte eigentlich ein edit werden.

reunion
2006-04-23, 11:43:41
AFAIK verwendet die Xbox FX10 HDR, aber vermutlich hast du recht. Die Entwickler werden schon wissen, was sie gemacht haben.

http://www.beyond3d.com/forum/showthread.php?p=716900#post716900
http://www.beyond3d.com/forum/showthread.php?p=725207#post725207

Nein, weil gerade diese Postfiler und spezielle Backbuffer formate Sache bei der XBox 360 wegen dem EDRAM anders ist.

Okay, unabhängig davon wäre es einen leichtigkeit gewesen, das zu implementieren.

Demirug
2006-04-23, 11:50:00
Okay, unabhängig davon wäre es einen leichtigkeit gewesen, das zu implementieren.

Wie schon einmal geschrieben sind es weniger als 10 Zeilen Code die für FP16 AA zusätzlich benötigt werden.

LordDeath
2006-04-23, 15:50:29
Wie schon einmal geschrieben sind es weniger als 10 Zeilen Code die für FP16 AA zusätzlich benötigt werden.

die entwickler haben bestimmt eine eigene build mit dem feature und lachen uns alle aus ;D

robbitop
2006-04-23, 16:22:14
AFAIK verwendet die Xbox FX10 HDR, aber vermutlich hast du recht. Die Entwickler werden schon wissen, was sie gemacht haben.

Warum nutzt man dafür nicht das FP10 Format? Gerade für HDR-R ist doch die Nachkommazahl enorm wichtig. FX10 und HDR-R widerspricht sich da IMO ziemlich.