PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum geht Transparency-AA bei WC3 nicht?


aths
2006-07-05, 04:04:37
Frage siehe Topic. In WC3 werden Alphatest-Texturen nicht geglättet. Mit Supersampling gehts natürlich, aber nicht mit TSAA?!

MechWOLLIer
2006-07-05, 09:03:27
Auch wenn ich keine direkte Antwort auf deine Frage habe, vermute ich einfach mal, dass es sich um einen Treiberbug handelt. Hast du mal einen älteren Treiber probiert?
Mit dem 91.31 zum Beispiel funktioniert TSSAA in SpellForce 2 auch nicht mehr, mit dem 84.43 gehts zumindest noch halb (Bäume werden geglättet, Gras irgendwie nicht...).

Mr. Lolman
2006-07-05, 09:58:39
Bei ATi brauchts auch ASBT damit alles glatt ist. Vll. wurden die Alphatests mit mehrbittigem Alpha komprimiert, was die Treiber durcheinander bringt...

aths
2006-07-05, 10:22:56
Mr. Lolman[/POST]']Bei ATi brauchts auch ASBT damit alles glatt ist. Vll. wurden die Alphatests mit mehrbittigem Alpha komprimiert, was die Treiber durcheinander bringt...Komprimiert oder kodiert? Es ist wurscht, wie viel Bit der Alphakanal hat – Alphatest ist Alphastest. Man gibt für Alphatests den Schwellwert an, da Alpha ohnehin mitgefiltert wird. 1-Bit-Alpha in Texturen gibts ohnehin nur bei DXT1 oder bestimmten 16-Bit-Formaten (5551).

Mr. Lolman
2006-07-05, 10:30:57
Warum dann auch nicht DXT1 für 1bit Alpha nehmen? Anderersrum: Wie soll der Treiber wissen, ob eine Textur Alphatests beinhaltet oder nicht?

aths
2006-07-05, 11:00:42
Mr. Lolman[/POST]']Warum dann auch nicht DXT1 für 1bit Alpha nehmen? Anderersrum: Wie soll der Treiber wissen, ob eine Textur Alphatests beinhaltet oder nicht?Der Treiber weiß nicht, ob die Textur Alphatest oder -Blending haben will. Der Treiber weiß nur, ob die Textur einen Alphakanal enthält. Wie der genutzt wird (gar nicht, Testing, Blending) entscheidet man separat. Alphawerte können auch via Vertexdaten eingespeist werden.

Mr. Lolman
2006-07-05, 17:11:48
aths[/POST]']Der Treiber weiß nicht, ob die Textur Alphatest oder -Blending haben will. Der Treiber weiß nur, ob die Textur einen Alphakanal enthält. Wie der genutzt wird (gar nicht, Testing, Blending) entscheidet man separat. Alphawerte können auch via Vertexdaten eingespeist werden.

Wenn der Treiber nicht anhand der Texturformate entscheidet, ob Blending oder Testing ist, dann dürfts ja kein Problem geben. Nur brauchts zB auf meiner ATi Karte sowohl bei Oblivion (Gras) und Hitman:Blood Money Demo (Zäune) ASBT, damit die Kanten glatt sind, wobei beide Texturen die typischen Merkmale von Alphatests aufweisen.

aths
2006-07-05, 17:15:39
Mr. Lolman[/POST]']Wenn der Treiber nicht anhand der Texturformate entscheidet, ob Blending oder Testing ist, dann dürfts ja kein Problem geben.Genau.

Mr. Lolman[/POST]'] Nur brauchts zB auf meiner ATi Karte sowohl bei Oblivion (Gras) und Hitman:Blood Money Demo (Zäune) ASBT, damit die Kanten glatt sind, wobei beide Texturen die typischen Merkmale von Alphatests aufweisen.Ich weiß jetzt nicht, was Abkürzungen wie ASBT bedeuten.

Mr. Lolman
2006-07-05, 17:21:16
aths[/POST]']Ich weiß jetzt nicht, was Abkürzungen wie ASBT bedeuten.

ASBT ist ein (selbstanzulegender) Regkey, der es ATi Karten erlaubt, auch alphablended Content zu glätten. (analog dazu: ASTT steuert AA für Alphatests)

aths
2006-07-05, 17:29:05
Mr. Lolman[/POST]']ASBT ist ein (selbstanzulegender) Regkey, der es ATi Karten erlaubt, auch alphablended Content zu glätten. (analog dazu: ASTT steuert AA für Alphatests)Interessant.

Die TMSAA-Methode vom G70 stellt ja mittels Alpha-to-Coverage Alphablending nach. Im Prinzip kann man statt einem Alphatest auch immer Alphablending ausführen (wie sinnvoll das im Einzelfall ist, sei dahingestellt.) Weder die MSAA- noch die SSAA-Methode glätten bei mir bei WC3 z. B. die Schilfrohre. Generelles Supersampling hilft aber. Ich kann mir nicht vorstellen, dass bereits Alphablending für die bewussten Texturen aktiviert ist – denn dann müsste man so oder so eine gewisse Glättung haben. Hat man aber nicht.

Mr. Lolman
2006-07-05, 17:40:20
Und genau aufgrunddessen wär meine Erklärung, dass der Treiber anhand der Texturformate entscheidet, wann TAA/AAA angewendet wird.

Madmanniman hat vor einiger Zeit nen interessanten Thread bezügl AAA Qualität gestartet: http://www.forum-3dcenter.de/vbulletin/showthread.php?t=278258

Coda
2006-07-05, 18:40:38
Mr. Lolman[/POST]']Warum dann auch nicht DXT1 für 1bit Alpha nehmen? Anderersrum: Wie soll der Treiber wissen, ob eine Textur Alphatests beinhaltet oder nicht?
Das setzt du per Renderstate. "Alpha>128 dann nicht zeichnen" o.ä. Eine Textur enthält keine Alphatests, nur einen Alpha-Wert.

Mr. Lolman[/POST]']Und genau aufgrunddessen wär meine Erklärung, dass der Treiber anhand der Texturformate entscheidet, wann TAA/AAA angewendet wird.
Macht er garantiert nicht. Der Alpha-Test-State ist eindeutig über die API zu indentifizieren. Die App setzt SetRenderState(D3DRS_ALPHATESTENABLE,TRUE) oder eben SetRenderState(D3DRS_ALPHATESTENABLE,FALSE).

Was sein kann ist das der Treiber noch untersucht ob die Textur überhaupt entsprechende Werte enhält bei denen nichts zu zeichnen ist und sich dabei vertut.

Mr. Lolman
2006-07-05, 18:51:00
Coda[/POST]']Das setzt du per Renderstate. "Alpha>128 dann nicht zeichnen" o.ä. Eine Textur enthält keine Alphatests, nur einen Alpha-Wert.

Eieiei, so ein peinlicher Fehler. :redface:

Coda[/POST]']
Macht er garantiert nicht. Der Alpha-Test-State ist eindeutig über die API zu indentifizieren.

Ja hast recht. Wie denn sonst? ;)
D.h. wenn AAA/TSAA trotz positivem Alpha-Test-State nicht funktioniert, ists wahrscheinlich ner Treiber-"Optimierung" zuzuschreiben?

Coda
2006-07-05, 18:53:16
Mr. Lolman[/POST]']D.h. wenn AAA/TSAA trotz positivem Alpha-Test-State nicht funktioniert, ists wahrscheinlich ner Treiber-"Optimierung" zuzuschreiben?
Ich vermute es ganz ganz stark. Also eine Optimierung die einen Bug hat.

Es ist allerdings immer wieder seltsam dass sowas den IHVs nicht auffällt. Wahrscheinlich ist die Benutzerbasis die überhaupt qualitätssteigernde Maßnahmen verwenden einfach zu gering.

aths
2006-07-10, 05:22:17
Davon bin ich nicht überzeugt, ich werde mal eine (nichts bringende, in letzter Zeit werde ich merkwürdig ignoriert) Anfrage an NV stellen.

Mr. Lachmann, hast du mal einen Screenshot von einer Radeon, wo auch das Gras etc. in WC3 mit AAA geglättet ist?