PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Diskussion zu: Anti-Aliasing Masken: Probleme und Lösungen


Leonidas
2004-01-03, 17:54:49
Link (http://www.3dcenter.org/artikel/anti-aliasing-masken/)

Gast
2004-01-03, 18:16:47
Es wird weiter gekotzt. ;)
Weiter so im neuen Jahr!

Gast
2004-01-03, 18:17:59
Entschuldigung, sollte weiter geklotzt heißen. (und nicht gekleckert)

Gast
2004-01-03, 18:31:35
Guter Artikel :)
Was ich allerdings noch für einen guten Artikel vermisse, sind die Verweise und Verwertung von schon bekanntem. Auf SigGraph, Eurographics usw. werden jedesmal dutzende Vorträge und Paper veröffentlicht zu dem Thema. Da könntest du noch etwas mehr drauf eingehen. Stattdessen hab ich den Eindruck du wurstelst dir gerne eigene Ideen mal zuerst zusammen. Falls nicht fehlen auf jeden Fall die Referenzen ;)
Auf jeden Fall mal weiter so :D

BodyLove
2004-01-03, 18:41:41
von mir gibt es ein dickes :up: !

sehr verständnisvoll erklärt. eine frage hätte ich aber noch.

kann man 8x "sparsed" Multisampling über den Treiber implementieren, oder sind hardwareseitig noch modifikationen notwendig?

GRiNSER
2004-01-03, 20:08:19
Original geschrieben von BodyLove
von mir gibt es ein dickes :up: !

sehr verständnisvoll erklärt. eine frage hätte ich aber noch.

kann man 8x "sparsed" Multisampling über den Treiber implementieren, oder sind hardwareseitig noch modifikationen notwendig?
was ich so weiß/gelesen habe muss das H/W mäßig implementiert werden... aber was weiß ich schon... ;)


btw. interessanter artikel! aber manchmal ein wenig zu hoch für mich ;)

Tesseract
2004-01-03, 20:18:18
das schachbeispiel ist mich auch gleich eingefallen - bevor ich noch bei der seite war

man sieht das ati die hausaufgaben gründlich gemacht hat bei der entwicklung des R300

eine frage hab ich aber: wozu überhaupt besseres als 6x sparsed grid wie zB das von ATI
das kommt doch dem "echten" antialiasing schon extrem nahe
gibt es fälle wo sich der "fehler" aufsummieren kann?

in die höheren modi wird schließlich - auch wenn sie hocheffektiv sind - mehr leistung reingebuttert

huha
2004-01-03, 20:39:19
Der Artikel ist recht gut... was ich allerdings begrüßen würde, wäre, einfach hinten dran noch eine Seite mit Bildern zu den Menthoden zu hängen:

Es gibt sicherlich Programme, die ein einfarbiges Dreieck mit diesen AA-Modi rendern können. Da sucht ihr euch n schönes Dreieck raus und rendert das zu jedem der vorgestellten AA-Modi. Somit wäre auch ein visueller Eindruck der Modi möglich, nicht nur "theoretisch", sondern eben auch mit Beispielbild.

Ansonsten: Klasse Artikel!
(Jetzt weiß ich auch, weshalb du die anderen AA-Artikel gern übersetzt hättest :naughty: )

-huha

HiddenGhost
2004-01-03, 21:01:57
Wäre beim Einsatz von Sparsedgrids nicht auch der Einsatz von zwei verschiedenen Subpixelmasken denkbar. Nehmen wir mal ein Schachbrett an.
Grid eins ist weiß, Grid zwei Schwarz. Wenn alles man alles gut austarieren würde, erhielte man doch auf diese weise eine weitere Verbesserung der Abtastrate, da hiermit die Löcher weiter minimiert werden könnten.

Ikon
2004-01-03, 21:55:51
*kritisier*

Ich finde den Teil auf Seite 5 über "die Problematik des Rauschens" ebenfalls problematisch. aths deklariert dieses Rauschen rigoros als Fehler und behandelt es als unerwünschten Effekt, dabei ist dieser Effekt doch genau das Ziel der Maskenrotation (oder besitzt sie noch andere Vorteile?). Natürlich muss es dem Programmierer überlassen sein ob und wann er ein (fernsehähnliches) Bildrauschen erzeugt, aber um ein graduel derart starkes/auffäliges Rauschen geht es offensichtlich nicht. Praktisch alle gängigen MPEG4 Video-Decoder erlauben mittlerweile das Generieren eines pseudozufälligen Bildrauschen als Teil des Post-Processings. Die Ergebnisse sind hier sehr überzeugend -> selbst ein nicht bewusst wahrnehmbares, künstlich erzeugtes Rauschen lässt das Bild natürlicher, wärmer, angenehmer, etc. wirken. Man mag' diesem Effekt kritisch gegenüberstehen, aber man sollte ihn nicht von vornherein verteufeln bzw. überlegen wie man ihn am besten umgehen/unterdrücken kann.

Ansonsten? Wie immer top, eben was man vom Autor gewöhnt ist - jedes weitere Wort wäre überflüssig.

Tesseract
2004-01-03, 22:29:09
Original geschrieben von Ikon
aths deklariert dieses Rauschen rigoros als Fehler und behandelt es als unerwünschten Effekt

zurecht
eine statische kante(und zwar NUR die kante bei multisampling) hat nicht einfach so zu flimmern, das braucht kein mensch

wenn der programmierer ein vollbild-rauschen haben will muss der das sowieso als vollbildeffekt machen
wie soll ein zufälliges subpixelmuster da weiterhelfen?

dazu kommt das dieses rauschen nur in den farbzwischenstufen vorkommt
also bei einer kante, die 1° gedreht ist schon und bei einer mit 0° nicht

imho eindeutig ein unerwünschter effekt

Benedikt
2004-01-03, 23:02:43
Wow - genau solche Artikel sind der Grund, warum 3DCenter für mich die Nr. 1 - Seite auf diesem Sektor ist und bleibt...

Ich hab zwar nicht alles verstanden, aber: Thumbs up!:up:

aths
2004-01-03, 23:19:07
Mich würde konkret interessieren, was schwer oder nicht verständlich war. (Habe einen neuen Artikel in der Pipeline, deutlich größer — und schwieriger. Den will ich nicht umsonst schreiben, sondern so, dass ihn möglichst viele verstehen. Dabei gehts weniger um das vorausgesetzte Wissen (der Artikel beginnt im Urschleim) sondern um die Präsentation.)

aths
2004-01-03, 23:23:21
Original geschrieben von Gast
Guter Artikel :)
Was ich allerdings noch für einen guten Artikel vermisse, sind die Verweise und Verwertung von schon bekanntem. Auf SigGraph, Eurographics usw. werden jedesmal dutzende Vorträge und Paper veröffentlicht zu dem Thema. Da könntest du noch etwas mehr drauf eingehen. Stattdessen hab ich den Eindruck du wurstelst dir gerne eigene Ideen mal zuerst zusammen. Falls nicht fehlen auf jeden Fall die Referenzen ;)Der Artikel ist praktisch komplett "eigene Forschung". Der Abschluss war so auch nicht geplant, eigentlich dachte ich, eine ideale 8x-Maske zu finden. Aber die Thematik ist doch komplexer, als zunächst gedacht. Anstatt nun das Muster vorhersagen zu können, was ATI oder NV nehmen, blieb es bei Überlegungen. Freut mich aber, dass das wohl ganz positiv aufgenommen wurde.
Original geschrieben von Gast
Auf jeden Fall mal weiter so :D Anti-Aliasing ist das Gebiet im 3D-Bereich, was mich besonders interessiert. (Gefolgt von Texturfilterung*, gefolgt von Pixelshading**.)

* Davon verstehe ich kaum was.

** Davon noch viel weniger.


Original geschrieben von BodyLove
sehr verständnisvoll erklärt. eine frage hätte ich aber noch.

kann man 8x "sparsed" Multisampling über den Treiber implementieren, oder sind hardwareseitig noch modifikationen notwendig? Man kann ein 8x8-EER-Grid haben, wenn auf R300 4x MSAA mit 2x2 Supersampling kombiniert würde. Für 8x sparsed Multisampling muss das AA-Subsystem erweitert werden. Das ist eine Hardware-Angelegenheit.

Original geschrieben von Tesseract
eine frage hab ich aber: wozu überhaupt besseres als 6x sparsed grid wie zB das von ATI
das kommt doch dem "echten" antialiasing schon extrem nahe
gibt es fälle wo sich der "fehler" aufsummieren kann?

in die höheren modi wird schließlich - auch wenn sie hocheffektiv sind - mehr leistung reingebuttert ATIs 6x ist ziemlich gut, aber noch nicht perfekt. (Kein MSAA-Modus kann wirklich perfekt sein. Aber man kann sich der Perfektion annähern.) Bei 8x wird die Entwicklung wohl auch nicht stehen bleiben, imo wäre dann aber ein Punkt, wo man eine "Verschnaufpause" einlegen könnte.

aths
2004-01-03, 23:28:26
Original geschrieben von huha
Der Artikel ist recht gut... was ich allerdings begrüßen würde, wäre, einfach hinten dran noch eine Seite mit Bildern zu den Menthoden zu hängen:

Es gibt sicherlich Programme, die ein einfarbiges Dreieck mit diesen AA-Modi rendern können. Da sucht ihr euch n schönes Dreieck raus und rendert das zu jedem der vorgestellten AA-Modi. Somit wäre auch ein visueller Eindruck der Modi möglich, nicht nur "theoretisch", sondern eben auch mit Beispielbild.So einen Renderer könnte ich auch in SW schreiben, wenn ich die Zeit dazu hätte. Aber der Artikel nutzt bewusst keine solchen Shots. Man kann auf einem Shot genau das nachweisen, was man möchte, wenn man nur den richtigen Winkel wählt. Auch wenn ein Modus auf allen Shots "der beste" ist, heißt das nicht, dass er der beste von allen ist. "Gucken, was rauskommt" ist eine Methode, mein Ansatz war sozusagen "Überlegen, was reinkommt".

Original geschrieben von HiddenGhost
Wäre beim Einsatz von Sparsedgrids nicht auch der Einsatz von zwei verschiedenen Subpixelmasken denkbar. Nehmen wir mal ein Schachbrett an.
Grid eins ist weiß, Grid zwei Schwarz. Wenn alles man alles gut austarieren würde, erhielte man doch auf diese weise eine weitere Verbesserung der Abtastrate, da hiermit die Löcher weiter minimiert werden könnten. Wie meinst du das?

aths
2004-01-03, 23:34:58
Original geschrieben von Ikon
*kritisier*

Ich finde den Teil auf Seite 5 über "die Problematik des Rauschens" ebenfalls problematisch. aths deklariert dieses Rauschen rigoros als Fehler und behandelt es als unerwünschten Effekt, dabei ist dieser Effekt doch genau das Ziel der Maskenrotation (oder besitzt sie noch andere Vorteile?). Natürlich muss es dem Programmierer überlassen sein ob und wann er ein (fernsehähnliches) Bildrauschen erzeugt, aber um ein graduel derart starkes/auffäliges Rauschen geht es offensichtlich nicht. Praktisch alle gängigen MPEG4 Video-Decoder erlauben mittlerweile das Generieren eines pseudozufälligen Bildrauschen als Teil des Post-Processings. Die Ergebnisse sind hier sehr überzeugend -> selbst ein nicht bewusst wahrnehmbares, künstlich erzeugtes Rauschen lässt das Bild natürlicher, wärmer, angenehmer, etc. wirken. Man mag' diesem Effekt kritisch gegenüberstehen, aber man sollte ihn nicht von vornherein verteufeln bzw. überlegen wie man ihn am besten umgehen/unterdrücken kann.Welcher MPEG-Decoder fügt Rauschen ein und verbessert damit das Bild? Falls mit dem Rauschen Komprimierungs-Artefakte überdeckt werden, hat man vielleicht eine subjektive "Verbesserung" des Bildes, letztlich gehen aber weitere Informationen verloren. (Wenn man nun per 3D-HW-Rendering irgendwas berechnen lässt, was nicht betrachtet, sondern maschinell weiterverarbeitet werden soll, würde sich das u. U. auch ungünstig machen, wenn da die Kanten leicht vor sich hin zappeln. Bei 8x MSAA macht das wohl schon mal 2-3 Subpixel aus, bei vollem Kontrast hätte man im Pixel Differenzen von bis zu 37,5%.)

Wenn das Rauschen ein gewollter Effekt ist, sollte man ihn per Noise-Shader oder so erzeugen. Anti-Aliasing soll Kanten glätten und kein allgemeines Postprocessing sein. Man könnte sich Fälle denken, wo Rauschen total unerwünscht ist. Mit Random-MSAA würden nur Kanten "verzittert", nicht die Texturen. Ob das so toll ist, weiß ich nicht. Rauschen vernichtet Informationen, wenn man das per se ok findet, könnte man Quincunx für eine sinnvolle Anti-Aliasing-Maßnahme halten.

Falls einer der beiden großen IHVs jetzt was mit Zufallsgrid entwickelt, würde das natürlich wie üblich als weltbeste, und praktisch entgültig tolle AA-Maßnahme beworben.
Original geschrieben von Ikon
Ansonsten? Wie immer top, eben was man vom Autor gewöhnt ist - jedes weitere Wort wäre überflüssig. Öh. Danke.

Ikon
2004-01-03, 23:47:43
Original geschrieben von aths
Welcher MPEG-Decoder fügt Rauschen ein und verbessert damit das Bild?

Nicht grundsätzlich MPEG- sondern primär die aktuellen MPEG4-Decoder (obwohl das nichts mit MPEG4 im speziellen zu tun hat) besitzen oft eine solche "Funktion" (z.B. DivX, ffdshow und der neue Nero Digital). Beim DivX-Decoder ist er AFAIK sogar standardmäßig aktiviert.

Original geschrieben von aths
Falls mit dem Rauschen Komprimierungs-Artefakte überdeckt werden, hat man vielleicht eine subjektive "Verbesserung" des Bildes, letztlich gehen aber weitere Informationen verloren.

Das ist exakt der Sinn und Zweck dieser Funktion, die subjektive "Bildverbesserung". Auf Kompressionsartefakte dürfte sie allerdings kaum Einfluss haben, die werden primär durch "Deblocking" und "Deringing" bekämpft.

Original geschrieben von aths
Wenn rauschen ein gewollter Effekt ist, sollte man ihn per Noise-Shader oder so erzeugen. Anti-Aliasing soll Kanten glätten und kein allgemeines Postprocessing sein. Man könnte sich auch Fälle denken, wo Rauschen total unerwünscht ist.
Mit Random-MSAA würden auch nur Kanten "verzittert", nicht die Texturen. Ob das so toll ist, weiß ich nicht.

Das macht Sinn, der Effekt wäre unnütz wenn er nicht auf das ganze Bild angewendet würde.

Tesseract
2004-01-04, 00:02:13
Original geschrieben von aths
ATIs 6x ist ziemlich gut, aber noch nicht perfekt. (Kein MSAA-Modus kann wirklich perfekt sein. Aber man kann sich der Perfektion annähern.)

schon klar

das 6x von ati ist aber schon in einem bereich wo besserung kaum noch sichtbar ist und gleichzeitig hocheffizient (keine subpixelüberschneidungen wie bei 8x)

wenn sich der fehler zwischen 6x und perfektion also nicht irgendwie aufsummieren kann (wie zB bei der farbtiefe) macht ein höherer modus als 6x für die nächste zeit imho nicht wirklich viel sinn

aths
2004-01-04, 00:05:33
Original geschrieben von Tesseract
schon klar

das 6x von ati ist aber schon in einem bereich wo besserung kaum noch sichtbar ist und gleichzeitig hocheffizient (keine subpixelüberschneidungen wie bei 8x)Welche Subpixel-Überschneidungen? Das Thema 6x klammerte ich ja fast aus, aber es gibt auch kein "ideales" 6x-Muster. Jedes 6x-Muster hat einen größeren Bereich, wo es keine Subpixel gibt. Das Muster, was ich bei 6x für noch am besten halte, setzt ATI offenbar nicht ein, sondern ein anderes, was bei mir zweite oder dritte Wahl wäre. "Meine" Muster haben allerdings auch wieder Nachteile.
Original geschrieben von Tesseract
wenn sich der fehler zwischen 6x und perfektion also nicht irgendwie aufsummieren kann (wie zB bei der farbtiefe) macht ein höherer modus als 6x für die nächste zeit imho nicht wirklich viel sinn Löse dich von der Hardware, die du hast ("die reicht doch, mein Geld ist gut angelegt") und gehe theoretisch an die Sache heran :) Klar macht 8x Sinn, wenn 8x "deutlich" besser als 4x ist, während 6x "noch nicht so deutlich" besser ist. Außerdem wäre das schon marketing-technisch sinnvoll, mehr zu bieten.

HiddenGhost
2004-01-04, 00:12:49
Original geschrieben von aths

Wie meinst du das?

Man hat zwei Suppixelmasken, die abwechselnd aufeinanderfolgen. Durch ihre anordnung aber so ergänzen, dass ein optimales Ergebnis erzeugt wird.

Annordung der Masken:
Suppixelmaske 1 = x
Subpixelmaske 2 = o

xoxoxox
oxoxoxo
xoxoxox
oxoxoxo
xoxoxox

aths
2004-01-04, 00:18:11
Das erzeugt (leichtes) Kantenflimmern. Dein Modus wäre abwechselnd 17x und 18x AA, wofür weder Speicherplatz, noch -Bandbreite, noch die ROPs da sind. Mit 17x AA könnte man außerdem ein Muster nehmen, dass eine viel höhere EER hat, als dein Modus.

Tesseract
2004-01-04, 00:24:11
Original geschrieben von aths
Welche Subpixel-Überschneidungen? Das Thema 6x klammerte ich ja fast aus, aber es gibt auch kein "ideales" 6x-Muster. Jedes 6x-Muster hat einen größeren Bereich, wo es keine Subpixel gibt.

ich mein damit das beispiel mit dem schachbrett
so eine "2er Klumpung" kommt nicht vor, genausowenig wie subpixel die diagonal auf einer linie liegen
oder hab ich da was missverstanden?

Original geschrieben von aths
Löse dich von der Hardware, die du hast ("die reicht doch, mein Geld ist gut angelegt") und gehe theoretisch an die Sache heran :) Klar macht 8x Sinn, wenn 8x "deutlich" besser als 4x ist, während 6x "noch nicht so deutlich" besser ist.

das hat mit meiner hardware nichts zu tun

meine überlegung ist folgende:
je mehr subpixel (bei ähnlicher effizienz), umso geringer der vorteil den man daraus zieht
in wahrheit ist schon atis 6x preis/leistung viel schlechter als das 4x weil kaum ein unterschied sichtbar ist
wenn also der unterschied von 6x auf 8x nochmal kleiner als von 4x auf 6x ist, dann frage ich mich nur wozu man dafür jede mange leistung verpulvern sollte?

aths
2004-01-04, 00:27:51
Original geschrieben von Tesseract
ich mein damit das beispiel mit dem schachbrett
so eine "2er Klumpung" kommt nicht vor, genausowenig wie subpixel die diagonal auf einer linie liegen
oder hab ich da was missverstanden?Die ist bei 6x, wenn ich mich recht entsinne, sogar unvermeidlich, bei 8x hingegen je nach Muster vermeidlich.
Original geschrieben von Tesseract
je mehr subpixel (bei ähnlicher effizienz), umso geringer der vorteil den man daraus zieht
in wahrheit ist schon atis 6x preis/leistung viel schlechter als das 4x weil kaum ein unterschied sichtbar ist
wenn also der unterschied von 6x auf 8x nochmal kleiner als von 4x auf 8x ist, dann frage ich mich nur wozu man dafür jede mange leistung verpulvern sollte? Warum gibt es 4x, wenn man doch von 1x auf 2x den größten Sprung hat? :)

4x ist schon ganz gut, aber noch verbesserbar. 6x bringt relativ wenig Verbesserung. Gegenüber 6x bringt 8x noch weniger, aber gegenüber 4x sollte das für Pixelfetischisten schon ein wahrnehmbares Qualitätsplus ergeben.

betasilie
2004-01-04, 00:30:03
Ein toller Artikel und besonders gefällt mir, dass man das Gefühl hat einen wissenschaftlichen Text zu lesen.

HiddenGhost
2004-01-04, 00:30:38
Original geschrieben von aths
Das erzeugt (leichtes) Kantenflimmern. Dein Modus wäre abwechselnd 17x und 18x AA, wofür weder Speicherplatz, noch -Bandbreite, noch die ROPs da sind. Mit 17x AA könnte man außerdem ein Muster nehmen, dass eine viel höhere EER hat, als dein Modus.

Nein... du missverstehst mich. Zwei unterschiedlich 8x Subpixelmasken, die auf ein ander abgestimmt sind.

aths
2004-01-04, 00:32:12
Original geschrieben von betareverse
Ack. Therotisch mag aths recht haben, aber die Wirkung muss man erstmal in der Praxis überprüfen, um wirklich was dazu zu sagen. Wenn man richtig gedacht hat, stimmt die Theorie schon. Falls die Praxis was anderes zeigt, hat man eine falsche Theorie. Diesen Fall durch die "Praxis" lösen zu wollen, halte ich insofern für bedenktlich, da persönliche Vorlieben stark mit reinspielen. Einige nehmen ja auch gerne Quincunx.

edit: Habe ich da versehtlich in betas Message editiert??

edit2: Hm, das Posting ist verkürzt? Kann ich diesen Teil also aus Konsistenzgründen auch löschen?


Original geschrieben von HiddenGhost
Nein... du missverstehst mich. Zwei unterschiedlich 8x Subpixelmasken, die auf ein ander abgestimmt sind. Erzeugt Kanten-Flimmern. Wenn man nun beim 8x8-EER-Grid bleibt, weniger Flimmern, aber kaum Verbesserungen. Macht man mit 2x 8x sparsed quasi ein 16x16-EER-Grid, sieht das bei niedriger Framerate wahrscheinlich nicht sehr gut aus. Vielleicht wird das trotzdem gemacht, sehr großer Aufwand wäre das nicht. Kanten sollten geglättet werden durch Zwischenfarben. Kommen diese zustande, weil sich Pixelfarben ändern, ist das weniger gut, als "stehende" Zwischenfarben. Man bräuchte schon eine extrem hohe Framerate, um zu erreichen, dass die zitternden Zwischenfarben "stehend" wirken. Ansonsten könnte man argumentieren, Verrauschung senkt auch die Wahrnehmbarkeit von Treppenartefakten, aber Rauschen halte ich ja für der AA-Qualität abträglich.

Tesseract
2004-01-04, 00:34:55
Original geschrieben von aths
Die ist bei 6x, wenn ich mich recht entsinne, sogar unvermeidlich, bei 8x hingegen je nach Muster vermeidlich.


stimmt, bei der anordnung von ati gibt es den fall das 2 auf einer diagonale liegen - hab mich verschaut
das ändert das ganze natürlich wieder etwas

Original geschrieben von aths
Warum gibt es 4x, wenn man doch von 1x auf 2x den größten Sprung hat? :)

weil hier noch nicht der monitor bzw. das auge der flaschenhals ist ;)

betasilie
2004-01-04, 00:56:20
Original geschrieben von aths
Wenn man richtig gedacht hat, stimmt die Theorie schon. Falls die Praxis was anderes zeigt, hat man eine falsche Theorie. Diesen Fall durch die "Praxis" lösen zu wollen, halte ich insofern für bedenktlich, da persönliche Vorlieben stark mit reinspielen. Einige nehmen ja auch gerne Quincunx.

edit: Habe ich da versehtlich in betas Message editiert??

edit2: Hm, das Posting ist verkürzt? Kann ich diesen Teil also aus Konsistenzgründen auch löschen?



Sorry. Ich muss mir um das Thema nochmal ausführlicher Gedanken machen, um wirklich zu einem Schluss zu kommen. Du kannst meine Aussage aber ruhig stehen lassen. Ich werde morgen nochmal drüber nachdenken, wenn ich wieder wach bin.


EDIT ... Ich lasse es heute Abend mal sein. :D

RLZ
2004-01-04, 03:01:01
Original geschrieben von aths
Der Artikel ist praktisch komplett "eigene Forschung". Der Abschluss war so auch nicht geplant, eigentlich dachte ich, eine ideale 8x-Maske zu finden. Aber die Thematik ist doch komplexer, als zunächst gedacht. Anstatt nun das Muster vorhersagen zu können, was ATI oder NV nehmen, blieb es bei Überlegungen. Freut mich aber, dass das wohl ganz positiv aufgenommen wurde.
Anti-Aliasing ist das Gebiet im 3D-Bereich, was mich besonders interessiert. (Gefolgt von Texturfilterung*, gefolgt von Pixelshading**.)

* Davon verstehe ich kaum was.

** Davon noch viel weniger.


<-- war der Gast :=)

Dacht ich mir eigentlich schon, dass das meiste auf deinem "Mist" gewachsen ist. Die Thematik ist wahrscheinlich noch komplexer als dir du das noch vorstellst :D Sonst würde es nicht jedes Jahr neue Vorträge/Paper/etc über neue Erkenntnisse auf dem Gebiet geben. Fast ideale Muster sind halt oft zufällige Muster (wenn auch imo erst ab >= 8 Samples). Schliesslich handelt es sich letzten Endes ja um eine Integration und wofür wurden die ganzen schönen (Quasi-)MonteCarlo-Methoden sonst entwickelt und sind in der CG so sehr verbreitet.

Aber öffentliche Artikel in der Form findet man kaum und halt sehr gut für interessierte Leute. Es wäre halt oft noch ganz lustig, wenn man ein zusätzliches Kapitel mit bisschen mehr Mathe einbauen würde für interessiertere Leser mit mehr Grundlagen. Keine Ahnung, ob sowas sonst noch jm wünscht. Ist nur mal ein Vorschlag...

Demirug
2004-01-04, 03:02:07
Original geschrieben von aths
So einen Renderer könnte ich auch in SW schreiben, wenn ich die Zeit dazu hätte. Aber der Artikel nutzt bewusst keine solchen Shots. Man kann auf einem Shot genau das nachweisen, was man möchte, wenn man nur den richtigen Winkel wählt. Auch wenn ein Modus auf allen Shots "der beste" ist, heißt das nicht, dass er der beste von allen ist. "Gucken, was rauskommt" ist eine Methode, mein Ansatz war sozusagen "Überlegen, was reinkommt".

Ich werde mal deine Muster durch meinen AA-Muster Analyser jagen der vergleicht 2M Fälle gegen das mathematische Ideal.

Demirug
2004-01-04, 03:05:02
Original geschrieben von aths
Die ist bei 6x, wenn ich mich recht entsinne, sogar unvermeidlich, bei 8x hingegen je nach Muster vermeidlich.


Also ich habe hier eine Lösung (es gibt 4) für das Damenproblem bei 6 Damen


**X***
*****X
*X****
****X*
X*****
***X**


Die anderen 3 ergeben sich durch Rotation.

aths
2004-01-04, 03:23:26
Original geschrieben von Demirug
Also ich habe hier eine Lösung (es gibt 4) für das Damenproblem bei 6 Damen


**X***
*****X
*X****
****X*
X*****
***X**


Die anderen 3 ergeben sich durch Rotation. 26°-Winkel werden da teilweise nur wie mit 2x geglättet. Selbst dieses Muster hat das Problem, dass oben und unten (wo die Pixel zusammenstoßen) wieder "2-er Diagonal-Klumpen" auftreten.

mapel110
2004-01-04, 10:27:18
seite 5 zwischen den ersten bildern:


Andererseits sehen wir hier ungünstige Winkel,


hm, könnte es sein, dass in zukunft AA anwendungsspezifisch eingesetzt wird?! d.h. erst kontentanalyse und dann das entsprechende verfahren?

zb anwendung hat viele 45 grad winkel also wird ein muster genommen, dass diese am besten glättet.

dürfte doch auch in quasi realtime möglich sein, wenn man sieht, was nvidias shadercompiler zu leisten im stande ist. :)

das würde natürlich ein frei programmierbares grid erfordern. aber das ist wohl das kleinste problem.

aths
2004-01-04, 12:05:10
Original geschrieben von mapel110
hm, könnte es sein, dass in zukunft AA anwendungsspezifisch eingesetzt wird?! d.h. erst kontentanalyse und dann das entsprechende verfahren? Das kann ich mir kaum vorstellen.

Exxtreme
2004-01-04, 13:12:44
Original geschrieben von mapel110
dürfte doch auch in quasi realtime möglich sein, wenn man sieht, was nvidias shadercompiler zu leisten im stande ist. :)

das würde natürlich ein frei programmierbares grid erfordern. aber das ist wohl das kleinste problem.
Also ATis R3x0-Serie hat bereits ein voll programmierbares Grid. Man kann jedes erdenkliche Muster einstellen. Man müsste tatsächlich das gesamte Bild analysieren und dann das beste Subpixelraster wählen. Ich weiss aber nicht wie zeitaufwendig so eine Analyse wäre.

BodyLove
2004-01-04, 13:18:21
Original geschrieben von Exxtreme
Also ATis R3x0-Serie hat bereits ein voll programmierbares Grid. Man kann jedes erdenkliche Muster einstellen. Man müsste tatsächlich das gesamte Bild analysieren und dann das beste Subpixelraster wählen. Ich weiss aber nicht wie zeitaufwendig so eine Analyse wäre.

selbst wenn man nur 2 völlig unterschiedliche Subpixelraster zur Auswahl hätte?

Tesseract
2004-01-04, 13:46:09
hier haben wir aber wieder das problem des flimmerns

wenn ein winkel sich in einer weichen bewegung ändert gibt es irgendwo eine sprungstelle des grids und damit potenzielles flimmern wie bei einem zufallsgrid

BodyLove
2004-01-04, 13:48:16
mhh stimmt, hast recht. danke.

StefanV
2004-01-04, 13:55:17
hm...

Nur so eine idee, aber könnte man nicht pro Tile das Muster ändern und dann beibehalten??

Tom Servo
2004-01-04, 13:58:56
Seite 2: "Betrachten wir das rechte Muster um 45° gedreht: Aus dieser gedrehten Sicht ergibt sich ein geordnetes Raster "

Besser wäre m.E.: "Denken wir uns das Muster auf dem rechten Bild um 45° gedreht: ...".

Bin an dieser Stelle nämlich gerade 1 Minute festgehangen. Wusste nicht, dass ich mir das Bild nur vorstellen soll und habe die dazugehörige Illustration gesucht.

edit: Den Begriff EER sollte man m.E. auf Seite 2 genauer definieren. Hätte einen kurzen Satz zur Definition hilfreich gefunden. Also etwas wie:

EER: Abkürzung für ... (deutsch: ...). {Erklärung der beiden Zahlen.}

Gast
2004-01-04, 14:31:56
Woher wissen eigentlich alle, dass es bei einem ordentlichen Zufallsgrid zu so starkem flimmern kommt?
Etwa schon getestet?

Exxtreme
2004-01-04, 15:01:34
Original geschrieben von Gast
Woher wissen eigentlich alle, dass es bei einem ordentlichen Zufallsgrid zu so starkem flimmern kommt?
Etwa schon getestet?
Eric Demers hat das u.A. gesagt. Der meinte, daß das Flimmern tatsächlich stark sichtbar ist wenn man wenige Subpixel hat. Er meinte auch, daß zufällige Masken erst ab 32 AA-Samples pro Pixel Sinn machen würden weil man dann kein Flimmern mehr sieht.

aths
2004-01-04, 19:28:40
Original geschrieben von Exxtreme
Er meinte auch, daß zufällige Masken erst ab 32 AA-Samples pro Pixel Sinn machen würden weil man dann kein Flimmern mehr sieht. Bei tatsächlich stochastischer Verteilung sollte man sogar 64 oder mehr Samples haben.

betasilie
2004-01-04, 21:50:08
Original geschrieben von aths
Bei tatsächlich stochastischer Verteilung sollte man sogar 64 oder mehr Samples haben.
Eine echte stochastische Verteilung wäre aber wirklich Verschwendung. Ich denke eine feste Anzahl guter, kombinierbarer Muster, die sich abwechseln, wäre die bessere Lösung. Eric Demers hat bestimmt auch nicht an echte stochastische Verteilung gedacht, als er von mindestens 32 Subpixeln sprach.

Tesseract
2004-01-05, 02:39:12
Original geschrieben von betareverse
Ich denke eine feste Anzahl guter, kombinierbarer Muster, die sich abwechseln, wäre die bessere Lösung.

das kann aber auch nie gutgehen

um wieder zum beispiel der bewegten kante (veränderter winkel) zu kommen:

ein muster A ist nur dann besser als ein muster B(beim entsprechenden winkel), wenn es im fertigen bild die bessere glättung bietet
die glättung von B kann aber nur besser sein als die von A wenn sie sich unterscheiden
sind sie aber verschieden hat man bei der sprungstelle von A auf B flimmern

DrumDub
2004-01-05, 10:35:23
sehr feiner artikel, aths! :up:

rechtschreibung seite 5:

bei vergleichbarem Rechenaufwand sehr viel glättere Kanten berechnen.

es muss natürlich "glattere" heißen... ;)

reunion
2004-01-05, 11:23:23
Sehr guter Artikel aths :up: ...

Da du dir darin den Kopf zerbrichst was das beste 8x Muster wäre würde mich mal intressieren welch ein muster 3dfx beim 8xAA der V5 6k eingestezt hat?? Weiß das jemand??

huha
2004-01-05, 13:50:10
Ich hab die Diskussion jetzt nicht weiter verfolgt, aber nochmal zum Rauschen:
Ich persönlich finde nicht, daß Rauschen den Detailgrad des Bildes verbessert. Wenn dem so wäre, würde ich mich über die Wellen auf meiner 9700 pro freuen, denn letztendlich ist das ja ncihts anderes als das propagierte Rauschen.

Selbst wenn Rauschen in Spielen nicht SO auffällt, ist es äußerst störend in 3d-Programmen. Wenn ich n boßchen mit der Maxya PLE rummach, könnte ich es nciht gebrauchen, daß meine gesamte Szene rumrauscht, weil irgendjemand meint, er müßte AA-Modi abwechseln, um mehr "Realismus" ins Bild zu bringen.

-huha

aths
2004-01-05, 16:10:01
Original geschrieben von reunion
Da du dir darin den Kopf zerbrichst was das beste 8x Muster wäre würde mich mal intressieren welch ein muster 3dfx beim 8xAA der V5 6k eingestezt hat?? Weiß das jemand?? Die Muster sind prinzipiell bekannt, habe ich aber nicht im Kopf. Jedenfalls hatten beide Muster (Glide/OpenGL, Direct3D) ihre Schwächen.

DrumDub
2004-01-05, 18:00:31
Original geschrieben von aths
Die Muster sind prinzipiell bekannt, habe ich aber nicht im Kopf. Jedenfalls hatten beide Muster (Glide/OpenGL, Direct3D) ihre Schwächen.

here you go:

v5 6000

8xrgss glide/opengl
http://www.users.on.net/triforce/glide8xpos.png

8xrgss d3d
http://www.users.on.net/triforce/d3d8xpos.png

das muster im d3d-modus ist imho ziemlich gut.

reunion
2004-01-06, 19:09:34
Original geschrieben von DrumDub
here you go:

v5 6000

8xrgss glide/opengl
http://www.users.on.net/triforce/glide8xpos.png

8xrgss d3d
http://www.users.on.net/triforce/d3d8xpos.png

das muster im d3d-modus ist imho ziemlich gut.

thx...

Tesseract
2004-01-07, 15:35:16
hat das einen besonderen grund wieso das eine horizontal/vertikal, und das andere diagonal optimiert ist?

DrumDub
2004-01-07, 16:59:21
Original geschrieben von Tesseract
hat das einen besonderen grund wieso das eine horizontal/vertikal, und das andere diagonal optimiert ist?

nee. das obere (opengl/glide) muster ist einfach schrott...

Quasar
2004-01-08, 18:02:55
Seite 4,
Original geschrieben von Artikel

Man kann sehen, dass RG, je mehr Subpixel im Spiel sind, sich immer näher an das ineffiziente OG-Raster annähert: Der "schwache Winkel", der besonders schlecht geglättet wird, kommt immer näher an die kritischen 90°-Winkel heran, welche ja eben gerade besonders gut geglättet werden sollten. Exakte 90°-Winkel bekommen zwar weiterhin volle Glättung, doch schon relativ leichte Abweichungen davon resultieren dann schnell in schlechter Abstufung


90°-Winkel? Also Strecken, oder?
Sind die nicht 'online' mit der Maske eines CRT oder LCD?

aths
2004-01-08, 18:45:25
Original geschrieben von Quasar
90°-Winkel? Also Strecken, oder?
Sind die nicht 'online' mit der Maske eines CRT oder LCD? Hm?

Quasar
2004-01-08, 19:34:16
90° halt.
Ob nun horizontale oder vertikale Linien (Geraden, da nicht unendlich 'nur' Strecken) sind bei der Abbildung auf Monitoren doch keinerlei Aliasing-Artefakten unterworfen. Erst wenn man von diesen 0,90,180 oder 270° abweicht, gibt es doch 'Treppchen'.

Oder meintest du mit 90°-Winkeln etwas anderes?

Mr. Lolman
2004-01-08, 19:57:20
Hmm, sobald die Szene bewegt wird, wandern auch die horizontalen Linen. :grübel:

Quasar
2004-01-08, 21:21:09
Korrekt. Aber dann sind sie eben nicht mehr horizontal, sondern meinetwegen 89° oder 91°, eben so, daß irgendwo auf der ansonsten geraden Linie eine Stufe entsteht. Und AA kann ja nur bei solchen Stufen einschreiten...

huha
2004-01-08, 21:35:11
Quasar, ich glaube, daß hier ein Mißverständis vorliegt.
Natürlich sind horizontale sowie vertikele Linien Deckungsgleich mit dem Raster des Bildschirms und deshalb gibt's keine "Treppeneffekte" wie z.B. bei 60°-Linien.
Allerdings soll ja AA nicht nur Treppeneffekte beseitigen, sondern auch einfach ein schöneres, "weicheres" Bild liefern.
AA greift zum Beispiel auch bei einer vertikalen Linie, die sich zur Seite bewegt. Ohne AA würde die Linie immer einen Pixel "springen", mit AA bewegt sie sich flüssiger, weil Subpixel ins Spiel kommen. Durch die feinere Farbabstufung erscheint die Bewegung - mal die entsprechende Framerate vorausgesetzt - dadurch einfach flüssiger bzw. "schöner"

-huha

Quasar
2004-01-08, 21:46:07
huha, dazu bräuchte es aber MSAA, welches Pixelübergreifend arbeitet.
Solange die Linien schön deckungsgleich mit dem Raster des Monitors bleiben, sprich 90/270 oder 0/180 Grad haben, können sie nur pixelweise über den Bildschirm springen.

Bei einem sich leicht biegenden Fahnenmast z.B. gebe ich dir natürlich recht, aber darauf ist meine Aussage nicht bezogen.

huha
2004-01-08, 21:57:48
Quasar: Sorry, aber wird hier nicht z.Zt. über MSAA bzw SSAA geredet? Bei beiden dürfte der Effekt bezüglich vertikaler Linien mehr oder weniger gleich sein*

Natürlich kann eine vertikale Linie nur Pixelweise über den Bildschirm wandern; mir wäre auch kein Beispiel bekannt, daß ein anderes Objekt *nicht* pixelweise über den Bildschirm wandern kann. Nur wird eben durch AA eine "Glättung" der Bewegung durch Einbringen von Zwischenschritten erzeugt.

-huha
*sollte ich falsch liegen, so möge man mich bitte korrigieren.

Quasar
2004-01-08, 22:44:49
Ja, wir reden über Anti-Aliasing. Ob SS oder MS hat m.W. damit nichts zu tun. In diesem Falle allerdings auch nicht, ob RG oder OG, ebenfalls AFAIK.

Beispiel.
Angenommen, du bewegst eine schwarze, horizontale Linie von oben nach unten über den Bildschirm.
Die oberste Pixelzeile wird schwarz, danach wird die nächste Pixelzeile schwarz und die erste wieder weiß.

Solange diese Linie nicht am linken Bildschirmrand mindesten einen Pixel Unterschied zum rechten Bildschirmrand hat, gibt es in der Mitte auch keine Treppenstufe, also nichts, wo AA einen Farbwert interpolieren könnte.

:gruebel:
Die Diagramme, die in dem Artikel sind, beziehen sich auf eine Fläche von genau einem Pixel (ok, es gibt Ausnahmen). Und erst auf dieser sog. Subpixelebene wird dann der finale Farbwert ermittelt.
Da aber die Subpixel-Auflösung (ich meine die EER, in diesem Falle die horizontale EER) die kleinste Kenngröße ist, auf der der Chip unterscheiden kann, kann auch kein Anti-Aliasing funktionieren, weil schlicht kein Aliasing vorhanden ist.

AHF
2004-01-08, 23:04:04
mal eine ganz noobige frage: mir ist bereits klar, dass multisampling nur die kantenb glättet und supersampling den kompletten frame. aber was ist dieses 4xs von nvidia, diese mischung? was darf ich mir darunter vorstellen?

zweite n00bige frage: ms passiert zeitlich bevor der frame zur textur wird und ms erst danach, richtig?

OBrian
2004-01-09, 06:14:56
Das Rauschen käme doch daher, daß bei jedem Frame eine andere Subpixelmaske an dieser Stelle verwendet würde (wenn ich das richtig verstanden habe)?

Was, wenn man zwar unterschiedliche (natürlich gute sparsed pseudo-zufällige) Subpixelmasken für neben einanderliegende Pixel verwendet, aber deren Position im Bild unverändert läßt? Dann würden statische Kanten zumindest nicht flimmern.

Oder denke ich da falsch und wäre das bei z.B. 4 verschiedenen 8er Masken dann im Endeffekt wie eine 32er (vom Performanceverlust, Speicherbedarf etc.)? Diese "32er" würde aber dann nicht auf ein, sondern 4 Pixel anwenden.