PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kein AA von Linien bei Consumer-Karten?


Hammer des Thor
2009-10-16, 23:57:42
Hallo, mir ist vor Jahren schon augefallen, dass Anti-Aliasing bei Objekten von weniger als 1 Pixel Dicke in Spielen nicht funktioniert, z.B. Bei Kabeln, Oberleitungen oder Schriftzügen in größerer Entfernung. Genau da wo Aliasing also am meisten stört !:mad:
In der neuen CT-Hardware steht u.A., dass der Unterschied zwischen den sehr teuren Profi-Karten und den Consumerkarten hauptsächlich in den Treibern liegt. U.A. wäre da Antialiasing von Linien für techniche Zeichnungen freigeschaltet.
Heißt das, dass bei Consumerkarten extra AA bei Objekten schmaler als 1 Pixel blockiert wird, damit diese den Profikarten keine Konkurrent machen? Das wäre sehr blöd, denn Aliasing stört ja bei weiten und kleinen Objekten viel mehr als bei großen und/oder nahen. Mich stört es sehr, wenn Kabel etc. keine durchgehende Linie bilden, und zerteilt flimmern. Gib es da vielleicht Tricks, dass das weg geht ?

Gruß, HdT

san.salvador
2009-10-17, 00:01:55
Bullshit.
Diese Kabel sind selten Polygone, du wirst also entweder SSAA oder Transparentes FSAA/AAA nehmen müssen.

Nasenbaer
2009-10-17, 00:34:38
Also Blender zeichnet sein Koordinatensystem auch mit Linien und meine HD5870 glättet die durchaus.

Hammer des Thor
2009-10-17, 01:00:22
Bullshit.
Diese Kabel sind selten Polygone, du wirst also entweder SSAA oder Transparentes FSAA/AAA nehmen müssen.

Wenn man näher ran geht , so dass diese Objekte breiter werden als 1 Pixel funktioniert aber AA. Ich dachte immer MSAA erkennt die Ränder von 3D-Objekten und löst in diesem Bereich höher auf ? Solche Kabel sollten m.E. 3D-Objekte sein.

lumines
2009-10-17, 01:03:45
Wenn man näher ran geht , so dass diese Objekte breiter werden als 1 Pixel funktioniert aber AA.

Pics or it didn't happen! ;)

samm
2009-10-17, 01:18:47
Die Telefonkabel in HL2 dienten ja immer mal wieder als Beispiel für AA. Habe noch nix von verschwinden auf billigen Grakas gehört ;) Und zudem kann ich nicht glauben, dass der gleiche AA-Modus auf einer Geforce 9300 anders funktionieren soll als auf einer Geforce 9800GTX+ (zufällige Beispiele von Low- und Highend einer Generation). AA sollte bei diesen Kabeln auch so wirken, dass dort, wo sie ohne AA verschwinden, noch sichtbar sind.

Das einzige, was den Artikel als nicht-Bullshit kennzeichnen könnte, ist vielleicht, dass es bei Quadros spezielle AA-Modi gibt, die auf Consumer-Grakas nicht im Treiber zugänglich sind, z.B. SSAA. Ganz sicher wird nicht "bei Objekten von weniger als 1 Pixel dicke AA blockiert".

xiao didi *
2009-10-17, 01:23:36
stinknormale GTX 260, Counterstrike Source

nichts :usad:
http://www.abload.de/img/0aarxr8.png (http://www.abload.de/image.php?img=0aarxr8.png)
4xAA
http://www.abload.de/img/2aaibjm.png (http://www.abload.de/image.php?img=2aaibjm.png)
8xAA
http://www.abload.de/img/4aatgbhj.png (http://www.abload.de/image.php?img=4aatgbhj.png)

Spasstiger
2009-10-17, 02:29:16
Es stimmt, dass es gewisse Linien-AA-Modi nur mit Profikarten gibt. Diese betreffen aber nicht das Rendering von Spielen. Natürlich werden in Spielen auch Objekte vom AA erfasst, die schmäler als 1 Pixel sind. Hier ein Beispiel von mir (Radeon HD 2900 Pro):

http://www.abload.de/img/aa_collageltbj.png

Adaptives AA ist das Gegenstück zu Transparenz-AA auf den GeForce-Karten.

Gast
2009-10-17, 12:31:56
Hallo, mir ist vor Jahren schon augefallen, dass Anti-Aliasing bei Objekten von weniger als 1 Pixel Dicke in Spielen nicht funktioniert, z.B. Bei Kabeln, Oberleitungen oder Schriftzügen in größerer Entfernung.

AA funktioniert bei diesen Objekten durchaus.

Wenn die Objekte allerdings zu klein werden und auch (teilweise) durch die AA-Maske nicht erfasst werden nützt das ganze nichts mehr.

Vor allem wenn die Objekte so dünn werden, dass sie je nach Position 1x erfasst und 1x nicht erfasst werden kommt es zu unschönem Flimmern.

CSAA kann hier auch nicht helfen, da es nur Kanten verbessern kann die bereits von der MSAA-Maske erfasst werden.

Mr. Lolman
2009-10-17, 12:37:45
AA funktioniert bei diesen Objekten durchaus.

Wenn die Objekte allerdings zu klein werden und auch (teilweise) durch die AA-Maske nicht erfasst werden nützt das ganze nichts mehr.

Vor allem wenn die Objekte so dünn werden, dass sie je nach Position 1x erfasst und 1x nicht erfasst werden kommt es zu unschönem Flimmern.

CSAA kann hier auch nicht helfen, da es nur Kanten verbessern kann die bereits von der MSAA-Maske erfasst werden.

Wirklich Flimmern kanns eigentlich nur bei massivem Overdraw. Eine schwarze Linie auf weissem Hintergrund hätte maximal einen 'Flimmergrad' von 25% bei 4xAA.

Hammer des Thor
2009-10-17, 12:50:09
Kann es sein, dass es bei bestimmten Spielen ein Problem ist ?

aths
2009-10-17, 12:52:27
stinknormale GTX 260, Counterstrike Source

0xAABitte 1x, nicht 0x AA. Es wird ja auch ohne AA noch ein Sample genommen.

Wirklich Flimmern kanns eigentlich nur bei massivem Overdraw. Eine schwarze Linie auf weissem Hintergrund hätte maximal einen 'Flimmergrad' von 25% bei 4xAA.Overdraw heißt, dass bestehende Pixel übermalt werden. Flimmern kann auch dann auftreten wenn nur wenig übermalt wird.

Bitte "weiß" mit ß schreiben.

Spasstiger
2009-10-17, 12:59:16
Kann es sein, dass es bei bestimmten Spielen ein Problem ist ?
Bei welchen Spielen hast du denn das Problem?
Nicht funktionierendes AA kann viele Ursachen haben. Vielleicht handelt es sich bei deinen ungeglätteten Objekten um Alpa-Tests, also teiltransparente Texturen. In diesem Fall brauchst du Transparenz-AA/adaptives AA (lässt sich nur unter DirectX 9 erzwingen). Evtl. werden die MSAA-Samples auch nicht richtig vermischt, weil HDR-Rendering im Spiel ist und das Downsampling vor dem Tonemapping stattfindet. Es kann auch sein, dass AA generell nicht greift aufgrund irgendwelcher Engine-Eigenarten und dir das fehlende AA nur bei dünnen Objekten auffällt.

xiao didi *
2009-10-17, 13:08:39
Bitte 1x, nicht 0x AA. Es wird ja auch ohne AA noch ein Sample genommen.
Oh, da war ich wohl zu müde. ;(

Gast
2009-10-17, 17:32:30
Wirklich Flimmern kanns eigentlich nur bei massivem Overdraw.


Vom Overdraw hängt das eigentlich kaum ab.

Eine sehr dünne Linie kann bei 4xAA immer noch 1, 2 oder garkein Sample treffen.

AA hat natürlich den Vorteil, dass der "Flimmerkontrast" geringer wird, die schwarze Linie auf weißem Hintergrund wird dann nie mehr schwarz sondern höchstens zu 25 bzw. 50% grau.

Dafür steigt aber die "Flimmerfrequenz" in Bewegung und das größte Problem ist ja, dass die Linie unterbrochen wird, wenn sie dünn genug ist, das fällt am meisten auf.

BlackBirdSR
2009-10-17, 17:42:32
Bitte 1x, nicht 0x AA. Es wird ja auch ohne AA noch ein Sample genommen.



Dann ist es aber kein Antialiasing und die Darstellung 1xAA faktisch falsch!

aths
2009-10-17, 17:54:30
Dann ist es aber kein Antialiasing und die Darstellung 1xAA faktisch falsch!0x AA ist falsch, da 2x AA bedeutet dass zwei Samples genutzt werden (und eine Zwischenstufe ermöglichen), 4x AA nutzt vier Samples (und erzeugt drei Zwischenstufen.) 1x AA nutzt ein Sample und erzeugt keine Zwischenstufen.

0x AA wäre richtig, wenn der AA-Grad die Zahl der Zwischenstufen angeben würde. Dass 1x AA "kein Anti-Aliasing" bedeutet, sieht erst mal komisch aus, allerdings ist bei der Multiplikation die Eins das neutrale Element.

Exxtreme
2009-10-17, 17:56:47
Kann es sein, dass es bei bestimmten Spielen ein Problem ist ?
Kommt darauf an wie die Linien implementiert wurden. Sind es Polygone dann greift stinknormales MSAA in der Regel. Sind das Texturen dann wird man auf Trasparenz-AA bzw. SSAA zurückgreifen müssen. Letztere sind in der Regel deutlich langsamer.

Coda
2009-10-17, 18:23:03
Dann ist es aber kein Antialiasing und die Darstellung 1xAA faktisch falsch!
Gegenüber halber Auflösung ist 1xAA auch Anti-Aliasing :freak:

Aths hat schon recht. "0xAA" ist def. falsch, wenn dann einfach "kein AA".

abraxxa
2009-10-18, 00:50:45
Ich denke HdT meint wirkliche Linien.
In CAD & 3D Programmen (3D Studio, AutoCAD, ...) bei Wireframe Modellen z.B. kann ich mich erinnern das ohne Quadro Treiber das Linien-AA nicht aktivierbar war.

Nasenbaer
2009-10-18, 14:48:24
Ich denke HdT meint wirkliche Linien.
In CAD & 3D Programmen (3D Studio, AutoCAD, ...) bei Wireframe Modellen z.B. kann ich mich erinnern das ohne Quadro Treiber das Linien-AA nicht aktivierbar war.
Ich weiß nicht wie Blender es mach aber das werden die Drahtgitter-Modelle und das Koord-System auch mit MSAA geglättet - mit Narrow-Tent sieht das sogar recht annehmbar aus. Aber 1xAA ist mir bei diesen Programmen immer noch am liebsten.

Hammer des Thor
2009-12-03, 21:39:06
So, ich habe mir soeben das Spiel " Stalker, Call of Pripyat " gekauft und installiert und siehe da : Kein Antialiasing bei Gräsern und Blättern obwohl ich 4 mal AA eingestellt habe. Das Flimmern der Gräser nervt tierisch. Komischerweise funktioniert AA bei entfernten Oberleitungen dort.
Habe eine Radeon HD 4770.

Was kann ich dagegen probieren ?

Gruß, HdT.

deekey777
2009-12-03, 22:23:10
So, ich habe mir soeben das Spiel " Stalker, Call of Pripyat " gekauft und installiert und siehe da : Kein Antialiasing bei Gräsern und Blättern obwohl ich 4 mal AA eingestellt habe. Das Flimmern der Gräser nervt tierisch. Komischerweise funktioniert AA bei entfernten Oberleitungen dort.
Habe eine Radeon HD 4770.

Was kann ich dagegen probieren ?

Gruß, HdT.
Du spielst unter DX10?
Wenn ja: Ich habe das Problem auch, das Transparenz-AA, das das Vorgängerspiel unterstützt, kriege ich nicht an (geht eh nur über Eingriff in die Kofiguratuinsdatei).

Hammer des Thor
2009-12-03, 22:42:31
Wie geht das mit der Datei ? Oder liegt es an der Einstellung im CCC ? Da ist unten noch ne Filter-Option mit Box , Narrow-Tend usw. Ich werde mal versuchen nur mit der Option Anwendung zu spielen.
Stalker COP hat noch nen anderen Bug. Es startet in einen kleinen Fenster nur über Umwege bekomm ich dann Vollbild.

deekey777
2009-12-03, 22:54:56
Im CCC macht es keinen Sinn, was einzustellen, wenn es um AA geht, nur die CFAA-Modi kannst du COP aufzwingen (2xAA ingame plus Narrow-Tent im CCC ist gar nicht so übel).
Die Datei findest du zB unter C:\Users\Public\Documents\S.T.A.L.K.E.R. - Call Of Pripyat und sie heißt "user.ltx", du kriegst sie mit dem Editor auf. Dort suchst du nach "r3_msaa_alphatest st_opt_off" und änderst das in on. Aber du kannst dies auch über die Konsole einstellen, das wird dann in der user.ltx abgespeichert, ggf. das Spiel neustarten.

Hammer des Thor
2009-12-04, 00:19:46
Danke, habs eben gemacht, dann mal schaun !

Hammer des Thor
2009-12-04, 00:38:43
Vef..... Sch...zensiert

Das klappt nicht! Im Spiel flimmern die Büche wie immer, und wenn ich mit dem Editor nach schau ist der Eintrag vom Spiel immer wieder auf off zurückgesetzt.

Tesseract
2009-12-04, 01:03:10
Dann ist es aber kein Antialiasing und die Darstellung 1xAA faktisch falsch!

ob die bezeichnung AA passend ist oder nicht ändert aber nix daran, dass 1xAA semantisch dem entspricht was gemeint ist und 0xAA nicht.

Hammer des Thor
2011-01-13, 02:08:27
Hallo, ich mache diesen thread noch mal auf, da meine Radeon HD 4770 bei allen Spielen beim AA versagt bei feinen Strukturen. Mir ist hier im Forum gesagt worden, dass ich Transparenz-AA aktivieren soll, nur finde ich im CCC die Möglichkeit dazu nicht. Spiele gerade Mafia II und bei manchen Rändern gibt es gar kein AA, das Schlimmste ist aber wieder, dass bei Masten und Fernleitungen in größerer Entfernung kein AA geht in kleinerer Entfernung schon. Genau da wo Aliasing besonders unangehem ist. Umgekehrt, also bei großen Objekten kein AA wäre weniger ein Problem.
Kann es sein, dass das typisch für ATI/AMD ist?

Gruß HdT

ShadowXX
2011-01-13, 02:31:01
Hallo, ich mache diesen thread noch mal auf, da meine Radeon HD 4770 bei allen Spielen beim AA versagt bei feinen Strukturen. Mir ist hier im Forum gesagt worden, dass ich Transparenz-AA aktivieren soll, nur finde ich im CCC die Möglichkeit dazu nicht. Spiele gerade Mafia II und bei manchen Rändern gibt es gar kein AA, das Schlimmste ist aber wieder, dass bei Masten und Fernleitungen in größerer Entfernung kein AA geht in kleinerer Entfernung schon. Genau da wo Aliasing besonders unangehem ist. Umgekehrt, also bei großen Objekten kein AA wäre weniger ein Problem.
Kann es sein, dass das typisch für ATI/AMD ist?

Gruß HdT
Nein, das hat was mit der Engine von Mafia 2 zu tun.

In Mafia 2 funktioniert nur das in Mafia 2 selbst einstellbare AntiAliasing....und das ist leider mehr schlecht als recht.

Coda
2011-01-13, 03:42:53
Was soweit ich weiß nicht geht ist Line-AA wenn kein MSAA an ist. Das ist aber etwas was Spiele ohnehin nicht verwenden und unter Direct3D gar nicht verwendet werden kann.

Die Rasterization-Rules von D3D sagen, dass Linien genauso wie ein Quad (zwei Tris) mit der Breite 1px gerendert werden sollen (ich vermute, dass die GPUs das auch intern so machen). Da funktioniert MSAA also sicher.

Nasenbaer
2011-01-13, 09:08:43
Was soweit ich weiß nicht geht ist Line-AA wenn kein MSAA an ist. Das ist aber etwas was Spiele ohnehin nicht verwenden und unter Direct3D gar nicht verwendet werden kann.

Dass MSAA deaktiviert sein muss habe ich im SDK auch genfunden aber warum sollte Line-AA generell nicht bei D3D funktionieren?

Jedenfalls gibt es in der D3D11_RASTERIZER_DESC ein Boolean namens AntialiasedLineEnable mit der Beschreibung:
Enable line antialiasing; only applies if doing line drawing and MultisampleEnable is false.


Zumindestens prinzipiell sollte Line-AA dann doch auch unter D3D möglich sein. Ob das ein notwendiges Feature ist mag auf einem anderen Blatt stehen.

Raff
2011-01-13, 10:37:06
In Mafia 2 funktioniert nur das in Mafia 2 selbst einstellbare AntiAliasing....und das ist leider mehr schlecht als recht.

Auf einer GeForce funktioniert mit den richtigen Bits (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=490867) auch "richtiges" AA (MSAA oder SGSSAA).

MfG,
Raff

Coda
2011-01-13, 14:24:21
Dass MSAA deaktiviert sein muss habe ich im SDK auch genfunden aber warum sollte Line-AA generell nicht bei D3D funktionieren?

Jedenfalls gibt es in der D3D11_RASTERIZER_DESC ein Boolean namens AntialiasedLineEnable mit der Beschreibung:


Zumindestens prinzipiell sollte Line-AA dann doch auch unter D3D möglich sein. Ob das ein notwendiges Feature ist mag auf einem anderen Blatt stehen.
Ich dachte, dass ein so unnützes Feature mit spätestens D3D10 entsorgt wurde. Hab mich wohl getäuscht.

Wie auch immer. Man müsste mal testen ob das funktioniert auf einer GeForce.

Hammer des Thor
2011-01-13, 22:24:31
So habe einfach mal die neuesten Treiber mit dem neuesten CCC installiert (über steam runtergeladen die haben mir einfach in englisch anstatt deutsch untergejubelt) In den neuen CC gibt es eine Option für AAA )Adaptive Antialiasing). Habe dieses aktiviert und jetzt funktioniert AA bei feinen Strukturen in vielen Fällen aber leider nicht überall.

Simon Moon
2011-01-18, 03:03:54
Heißt das, dass bei Consumerkarten extra AA bei Objekten schmaler als 1 Pixel blockiert wird, damit diese den Profikarten keine Konkurrent machen?

Zum Thema AA-Masken hatte 3DC mal webweite Referenz-Artikel (http://alt.3dcenter.org/artikel/multisampling_anti-aliasing/) geschrieben. Leider wurden sie nie aufs neue Layout konvertiert. Der Autor scheint auch kein Interesse mehr zu haben, die Artikel zu aktualisieren und übt sich lieber in persönlichen Eitelkeiten, wie etwa zum Beispiel die Grammatik anderer zu korrigieren. :usad:

Hammer des Thor
2011-01-18, 16:34:18
Tja bei einigen Objekten wie Maschendrahtzaun geht AA jetzt, trotzdem geht es bei vielen Rändern nicht. Das stört! Wenn schon solche Top-Spiele wie Mafia II AA nicht richtig umsetzen brauch man sich über das Texturflimmern bei Radeons nicht zu unterhalten, das sehe ich zwar auch, aber Ränder mit komplett fehlendem AA nerven viel mehr (da geht das Texturflimmern fast unter). Na ja, Mafia II hat auch den groben Fehler gemacht, dass es keine Joystick-Unterstützung zum Auto-Fahren mehr unterstützt, mit der Tastatur kann man kaum vernünftig steuern.

Nasenbaer
2011-01-18, 17:33:57
Das Problem ist die Beschränkung auf DX9 wegen XP-Kompatilität und vielleicht auch leichterer Portierung von/zur XBOX360. DX9 zusammen mit Deferred Renderern macht MSAA schwierig (oder gar unmöglich?!).
Um dem etwas entgegenzusetzen machen halt manche (Mafia2, Siedler7) einen AA-Postprozess = Matschfilter.

Das Problem von fehlendem AA ist für die Konsolenspiele ja meist nicht gravierend, da dort oft drauf verzichtet wird. Bedank dich also bei den Publishern, die ihren Teams nicht die Zeit/Geld geben um eine ordentliche PC-Portierung herzustellen. Bzw. bei den Teams, die gegenüber den Publishern nicht auf diese Zeit bestehen.
Ich meine es geht ja: BF-BC2 kann DX9, DX10 und DX11 und auch einigermaßen MSAA. Crysis hat auch Support für 9 und 10 und damit kann man auch an vielen Stellen AA nutzen.

Coda
2011-01-18, 18:19:58
Ich vermute, dass das Xbox-SDK inzwischen auch ein DX11-Level-9-Interface hat. Das würde die Sache einfacher machen.