PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum gibt es außer SSAA nichts gegen Shader Aliasing?


Heinz-Norbert
2009-11-20, 16:29:10
Hallo :)

Shader-aliasing ist ja heute ein Problem, was nur durch SSAA bekämpft werden kann. SSAA frißt aber nunmal jede menge Leistung.

Warum hat man bisher noch keine Möglichkeit gefunden, ohne großen Leistungsverlust was gegen Shader-aliasing zu tun?

Banshee18
2009-11-20, 16:43:22
Shader-AA ist durchaus möglich, unsere Gurus können da mit Sicherheit mehr dazu sagen.
Die traurige Wahrheit ist aber, dass Bildqualität für die Meisten eher eine untergeordnete Rolle spielt. Auf Konsolen gibt es oft garkein AA und AF und die Leute sind damit zufrieden. Selbst in diesem Forum voller Freaks geben sich viele mir Flimmer-AF zufrieden und posten voller Stolz Screenshots im entsprechenden Thread mit "4xAA" und erkennen garnicht, dass kein AA aktiv ist.
Ich mache mir wenig Hoffnung, dass sowas wie Shader-AA irgendwann mal breitflächig genutzt wird. Der Trend geht eher dorthin, dass immer mehr Spiele selbst normales AA nicht unterstützen. Traurig, aber wahr.

Spasstiger
2009-11-20, 16:56:45
Eigentlich wird schon durch das grafische Design etwas gegen Aliasing getan, nämlich Bewegungsunschärfe und Tiefenunschärfe. Ein Antialiasing-Filter ist strenggenommen nur ein Tiefpassfilter und diese Funktion übernimmt ein Unschärfe-Filter.
Richtiges Shader-Antialiasing, das die Schärfe erhält, basiert letztlich auch nur auf Supersampling-AA. Anders geht es nicht. Und das kostet nunmal Rechenleistung, die die Artists lieber für anderen Eyecandy verwenden. Hier gibts eine Shader-AA-Demo, bei der selektiv nur auf die flimmeranfälligen Oberflächen SSAA angewandt wird:
http://www.humus.name/index.php?page=3D&ID=64

Tesseract
2009-11-20, 17:30:06
du kannst shader auch so bauen, dass sie per se nicht flimmern. schon allein deswegen, weil du die sowieso gefilterte textur meist in die berechnungen einfließen lässt oder wenn du stetige funktionen verwendest die keine sprungstellen/hohe frequenzen besitzen etc.

Heinz-Norbert
2009-11-20, 18:28:20
Richtiges Shader-Antialiasing, das die Schärfe erhält, basiert letztlich auch nur auf Supersampling-AA.
Also ähnlich wie transparenz-AA.

Anders geht es nicht. Und das kostet nunmal Rechenleistung
Aber selbst Transparenz-AA und Shader-AA zusammen dürften immer noch schneller sein, als komplettes SSAA.
du kannst shader auch so bauen, dass sie per se nicht flimmern. schon allein deswegen, weil du die sowieso gefilterte textur meist in die berechnungen einfließen lässt oder wenn du stetige funktionen verwendest die keine sprungstellen/hohe frequenzen besitzen etc.
Warum machen die Entwickler das dann nicht gleich so?

Gast
2009-11-20, 19:14:53
Warum machen die Entwickler das dann nicht gleich so?

weil die meisten Game-Designer eben Designer sind und entsprechend wenig Ahnung von digitaler Signalverarbeitung und Signaltheorie haben...

mfg,
zgep

Spasstiger
2009-11-20, 19:40:31
Und Shader-Designer-Tools, bei dem man seine Shader auch ohne Programmierkenntnisse nach Lust und Laune zusammenklicken kann, tragen nicht unbedingt zu einer Sensibilisierung für das Thema bei.

Tesseract
2009-11-20, 21:32:02
Warum machen die Entwickler das dann nicht gleich so?

frag mich nicht. vermutlich aus dem selben grund, aus dem man miese steuerung mit massivem inputlag, flimmernde texturen, augenkrebs-postfiltering, absolut deprimierende spielmechanik oder andere derartige dinge einbaut. ;)

Exxtreme
2009-11-20, 21:34:16
Eigentlich wird schon durch das grafische Design etwas gegen Aliasing getan, nämlich Bewegungsunschärfe und Tiefenunschärfe. Ein Antialiasing-Filter ist strenggenommen nur ein Tiefpassfilter und diese Funktion übernimmt ein Unschärfe-Filter.
Unschärfe/Blurr und Antialiasing sind zwei Paar Stiefel und überhaupt nicht miteinander vergleichbar.

mapel110
2009-11-20, 21:38:36
Unschärfe/Blurr und Antialiasing sind zwei Paar Stiefel und überhaupt nicht miteinander vergleichbar.
Aber AntiAliasing blurt doch auch. ;(
(NextSSAA-Discussion-Mission, Ignition Sequence started)

Gast
2009-11-20, 21:41:16
Unschärfe/Blurr und Antialiasing sind zwei Paar Stiefel und überhaupt nicht miteinander vergleichbar.

Antialiasing ist alles was dem Aliasing entgegenwirkt. Damit ist natürlich auch ein Blurfilter eine Antialiasing-Methode, wenn auch keine sehr gute.

Exxtreme
2009-11-20, 21:43:53
Aber AntiAliasing blurt doch auch. ;(
:mad: :mad: :mad:
Antialiasing ist alles was dem Aliasing entgegenwirkt. Damit ist natürlich auch ein Blurfilter eine Antialiasing-Methode, wenn auch keine sehr gute.
Nein, Unschärfe ist das Gegenteil von Antialiasing.

Tesseract
2009-11-20, 21:48:58
Antialiasing ist alles was dem Aliasing entgegenwirkt. Damit ist natürlich auch ein Blurfilter eine Antialiasing-Methode, wenn auch keine sehr gute.

blur wirkt aliasing nicht entgegen. es zerstört das aliasing nur genau gleich stark wie jede andere information im bild.

der monitor-ausschalt-knopf ist auch kein antialiasing, auch wenn das gesamte aliasing damit auf knopfduck weg ist.

Demirug
2009-11-20, 21:52:36
weil die meisten Game-Designer eben Designer sind und entsprechend wenig Ahnung von digitaler Signalverarbeitung und Signaltheorie haben...

mfg,
zgep

Wenn die Game-Designer Shader bauen läuft irgendwas gehörig falsch. Jetzt mal von Microteams abgesehen.

Spasstiger
2009-11-20, 21:58:17
Nein, Unschärfe ist das Gegenteil von Antialiasing.
Hattest du mal eine Vorlesung Systemtheorie oder Digitale Signalverarbeitung? Ein Tiefpass ist ein Antialiasing-Filter (und umgekehrt). Und was macht ein Tiefpass mit einem Bild? Er macht es unscharf!

Vertigo
2009-11-20, 22:08:38
Hattest du mal eine Vorlesung Systemtheorie oder Digitale Signalverarbeitung? Ein Tiefpass ist ein Antialiasing-Filter (und umgekehrt). Und was macht ein Tiefpass mit einem Bild? Er macht es unscharf!
Es stimmt schon, dass durch Tiefpassfilter Kantenkontraste abgeschwächt werden, wodurch dann schlussendlich das Bild unschärfer wird.

Aber kann man denn Anti-Aliasing-Filter aus der Signaltechnik (bzw. die Theorien dazu) in jedem Fall auf Computergrafik (speziell Echtzeit-Rendering) übertragen? Bei Prefilter und Postfilter?

Exxtreme
2009-11-20, 22:23:18
Hattest du mal eine Vorlesung Systemtheorie oder Digitale Signalverarbeitung? Ein Tiefpass ist ein Antialiasing-Filter (und umgekehrt). Und was macht ein Tiefpass mit einem Bild? Er macht es unscharf!
*heul*

Du vergleichst gerade ein Kinderfahrrad mit Stützrädern mit einem Traktor bloß weil beides vier Räder hat.

Was ist Aliasing? Informationsvernichtung und Artefakte, die durch das Abtasten bestimmten Materials auf eine feste Auflösung entstehen. Was macht Antialiasing? Es sorgt dafür, daß nicht ganz soviele Informationen vernichtet werden und es nicht ganz soviele Artefakte gibt.

So, und jetzt überleg dir mal ob das auf Unschärfe ebenfalls zutrifft. :D

Vertigo
2009-11-20, 22:28:06
*heul*

Du vergleichst gerade ein Kinderfahrrad mit Stützrädern mit einem Traktor bloß weil beides vier Räder hat.

Was ist Aliasing? Informationsvernichtung und Artefakte, die durch das Abtasten bestimmten Materials auf eine feste Auflösung entstehen. Was macht Antialiasing? Es sorgt dafür, daß nicht ganz soviele Informationen vernichtet werden und es nicht ganz soviele Artefakte gibt.

So, und jetzt überleg dir mal ob das auf Unschärfe ebenfalls zutrifft. :D
Spasstiger hat aber Recht (was keineswegs heißen soll, dass du nicht Recht hast). Eine Antwort auf meine Frage, ob sich das Anti-Aliasing aus Signaltechnik und Systemtheorie (Elektrotechnik) mit dem der Computergrafik (Informatik) deckt, wäre hier wahrscheinlich den ersten Eintrag in einem entsprechenden Wörterbuch wert.

Avalox
2009-11-20, 22:59:34
Spasstiger hat aber Recht (was keineswegs heißen soll, dass du nicht Recht hast). Eine Antwort auf meine Frage, ob sich das Anti-Aliasing aus Signaltechnik und Systemtheorie (Elektrotechnik) mit dem der Computergrafik (Informatik) deckt, wäre hier wahrscheinlich den ersten Eintrag in einem entsprechenden Wörterbuch wert.

Natürlich ist es identisch. Wo soll denn der Unterschied begründet liegen?
Grade dieses ist identisch.

Wenn es eine unterschiedliche Betrachtung gibt, dann aus der Informationswissenschaft und nicht der Informatik. Für die Verarbeitung ist es erst mal egal, wie viel Wert eine Information hat.

Spasstiger
2009-11-20, 23:11:44
Die Gesetze und Theorien aus der digitalen Signalverarbeitung gelten in allen Räumen, auch im Zweidimensionalen.
Der Unterschied zur Verarbeitung elektromagnetischer Signale liegt darin, dass man bei der Rasterisierung nicht einfach vor der Abtastung auf die halbe Abtastfrequenz tiefpassfiltern kann (die Geometrie weist unendlich große Frequenzen auf). Das abgetastete Bild enthält dadurch immer Aliasing. Allerdings kann man dieses Aliasing beim Endresultat abschwächen, indem man vor dem Resampling auf die Framebufferauflösung eine Tiefpassfilterung vornimmt. Je nachdem, wie hoch die Auflösung bei der Rasterisierung war und welchen Tiefpassfilter man wählt, erscheint das Bild im Framebuffer unterschiedlich scharf und das Aliasing verschwindet in unterschiedlichem Maße.
Die AA-Varianten, die von Grafikkarten implementiert werden, sind Spezialfälle und beschreiben keineswegs die allgemeingültige, signaltheoretische Herangehensweise.

Coda
2009-11-20, 23:18:08
Das Endergebnis mit Anti-Aliasing hat weniger Frequenz, aber mehr Informationen, deshalb ist es nicht das gleiche wie Blur.

Anti-Aliasing ist das gezielte weglassen von hohen Frequenzen die nicht dargestellt werden können, Blur vermatscht einfach alles.

Spasstiger
2009-11-20, 23:19:50
Anti-Aliasing ist ein Tiefpassfilter. Wer es mir nicht glaubt, soll eine Vorlesung besuchen, die sich mit der Signaltheorie befasst.
/EDIT: Damit hier keine sprachlichen Missverständnisse entstehen: Multisampling-AA und Supersampling-AA sind Verfahren, die Antialiasing als einen Schritt enthalten (das Downsampling). Um die Bildschärfe zu erhalten, wird das Bild bei MSAA und SSAA in mit einer höheren Frequenz als der Zielfrequenz abgetastet. Deshalb Multisampling (Mehrfachabtastung) bzw. Supersampling (Superabtastung).

aths
2009-11-20, 23:26:32
du kannst shader auch so bauen, dass sie per se nicht flimmern. schon allein deswegen, weil du die sowieso gefilterte textur meist in die berechnungen einfließen lässt oder wenn du stetige funktionen verwendest die keine sprungstellen/hohe frequenzen besitzen etc.Eine Textur ist bei linearer (bi- oder trilinearer) Filterung bereits eine nichtstetige Funktion.

Ich bin immer noch für eine Art Shader-AF, was allerdings in der Implementation auf vom Shader berechnete Schätzwerte zurückreifen müsste.

aths
2009-11-20, 23:29:56
Hattest du mal eine Vorlesung Systemtheorie oder Digitale Signalverarbeitung? Ein Tiefpass ist ein Antialiasing-Filter (und umgekehrt). Und was macht ein Tiefpass mit einem Bild? Er macht es unscharf!Das ist zu verkürzt. Was wir auf dem Monitor sehen ist ein mehr oder minder gutes Resampling des echten Bildes. Vorher zu hohe Frequenzen in der Amplitude zu dämpfen ist gut. Nachträglich Pixelfarben mit den Farben der Umgebungspixel zu mischen ist zwar auch eine Art Tiefpass, aber kein Antialiasing mehr.

Spasstiger
2009-11-20, 23:39:44
Aliasingfreies Antialiasing bekommt man bei der Rasterisierung tatsächlich nicht hin. Wobei man Aliasingfreiheit auch ganz allgemein in der Signaltheorie nur theoretisch hinbekommt. In der Praxis muss man eine Fehlerrechnung durchführen, da es kein ideales Tiefpassfilter gibt. Das Aliasing führt automatisch zu einem endlichen Signal-Rausch-Verhältnis.
Bei der Rasterisierung stellt zumindest das Downsampling auf die Zielauflösung echtes Antialiasing dar, weil man eben vor dem Resampling einen Tiefpassfilter verwendet. Im einfachsten Fall einen boxed-Filter und wenn man es besser macht, halt auch andere Filter (z.B. Tent-Filter).
Ein Blur-Filter wäre Antialiasing in der Form, dass die Zielauflösung der Rasterisierung niedriger ist als die Auflösung, mit der das Bild dargestellt wird. Das Aliasing wird dabei verringert.

P.S.: Mir fällt gerade auf, dass man den Begriff Signal-Rausch-Verhältnis auch sehr gut auf die Rasterisierung übertragen kann. Rauschen ensteht dabei nur durch das Aliasing und Quantisierungsfehler. Damit das gerenderte Bild für den Betrachter gut aussieht, muss ein gewisses Signal-Rausch-Verhältnis erreicht werden. Und genau dieses Ziel verfolgt man mit MSAA und SSAA.

TheRealTentacle
2009-11-20, 23:50:36
Vorher zu hohe Frequenzen in der Amplitude zu dämpfen ist gut.

Dämpfen reicht hier nicht. Es muss ein scharfkantiger Tiefpass sein, und das ist nunmal ein Weichzeichner. Aufgrund der hohen Auflösung und des Herunterrechnens erscheint uns das Bild aber scharf.

So gesehen könnte ein Tiefpass auch zur Verringerung der zu hohen Frequenzanteile beitragen, zerstört aber wie oben bereits gesagt Information, und sorgt auch nicht für die gewünschten scharfen Kanten.

Ich bin aber der Meinung, das ein wenig Unschärfe nicht schaden kann. Beim Film wird auch leicht defokussiert, um einen natürlichen analogen AA Filter über das Bild zu legen. Aber da wären wir bei einem Thema, das hier schon vor 7 Jahren ausreichend heiß diskutiert wurde.

samm
2009-11-21, 00:31:33
Darf ich mal ein wenig laienhaft herumdrucksen: Blurren kann man, indem man bspw. bei einem bereits gerasterten Bild Daten von umliegenden Pixeln mit dem mittleren Pixel vermischt. Antialiasing muss früher ansetzen, indem man mehrere Positionen statt nur der späteren Pixelmitte berücksichtigt, um daraus die resultierende Pixelfarbe zu berechnen.

ShadowXX
2009-11-21, 02:28:14
Darf ich mal ein wenig laienhaft herumdrucksen: Blurren kann man, indem man bspw. bei einem bereits gerasterten Bild Daten von umliegenden Pixeln mit dem mittleren Pixel vermischt. Antialiasing muss früher ansetzen, indem man mehrere Positionen statt nur der späteren Pixelmitte berücksichtigt, um daraus die resultierende Pixelfarbe zu berechnen.
Genau das ist es. Blur ist AA mittels extrapolation und MSSA bzw. SSAA ist AA mittels interpolation.

Wobei zumindest MSAA theoretisch über ein "unendliches" Raster läuft und deshalb im Prinzip der beste Ansatz ist, der leider nicht auf Texturen und Shader wirkt.
Shader AA müsste deshalb wie aths schon sagte direkt über die Shader selbst laufen.
Texturen bilden dann das letzte Problem......

Avalox
2009-11-21, 08:49:44
Darf ich mal ein wenig laienhaft herumdrucksen: Blurren kann man, indem man bspw. bei einem bereits gerasterten Bild Daten von umliegenden Pixeln mit dem mittleren Pixel vermischt. Antialiasing muss früher ansetzen, indem man mehrere Positionen statt nur der späteren Pixelmitte berücksichtigt, um daraus die resultierende Pixelfarbe zu berechnen.

Dass muss man etwas anders betrachten.


Antialiasing ist nichts anderes als ein dynamisches (re)Sampling.

Durch einen beliebigen erstmal völlig egalen Algorithmus werden Stellen im Bild definiert, in welchen die Samplingrate erhöht wird. Oder anders herum, es werden Stellen im Bild definiert, in welchen mit einer üblichen geringen Samplingrate gearbeitet werden kann, um Rechenleistung zu sparen.

Die einzelnen Samples des Anti-Aliasings, allesamt für sich in der Lage ein einzelnes Pixel mit einer eigenen Farbe zu definieren, werden dann weil die Auflösung der Wiedergabe geringer als die Samplingrate ist in einem Pixel gemittelt.

Das heutige Grafik Antialiasing ist nur ein Trick um letztendlich Rechenleistung zu sparen, bzw. die natürlich immer begrenzt vorhandene Rechenleistung so zu verteilen, dass diese nach den immer subjektiven Eindruck des Betrachters am sinnvollsten eingesetzt wird.

Dieses ist dann natürlich eben genau der Unterschied zwischen dem Anti-Aliasing Tiefpass und einen passiven Tiefpass. Der gebräuchliche Anti-Aliasing Filter wirkt natürlich nicht auf das ganze Bild.

Natürlich wäre es der ideale Fall, dass der Anti-Aliasing auf das ganze Bild wirken würde und dort hohe Frequenzanteile ggf. verringert. Aber eben dieses wird nicht gemacht um Rechenleistung zu sparen.


Es ist immer wieder doch der selbe Ansatz.

Wer sagt denn, dass nur ein Sample pro Pixel eine hinreichende Abtastrate ist? Es wird immer ein Punkt ohne Ausdehnung auf ein Bildschirm-Dot mit Ausdehnung vergrößert. Ein Sample pro Pixel ist hinreichend um jeden Pixel eine individuelle Farbe zu geben, mehr nicht. Ob der Bildeindruck damit hinreichend ist steht auf einen ganz anderen Blatt.

Es wird doch heute nur 1 Pixel verwendet, weil die Rechenleistung zu schwach und es damit ein gängiger Kompromiss ist.


Und natürlich ist 3D PC-Grafik auch nicht statisch, sie ist bewegt. Es gibt nicht nur zwei Dimensionen. Durch die Bewegung erhält das Anti-Aliasing eine zeitliche Komponente.

Man kann in einem einzigen Bild so lange Anti-Aliasing rechnen wie man möchte. Das zeitliche Aliasing wird man damit nie weg bekommen. Dort muss man weitere Bilder, oder Teilbilder, während der Anzeigedauer mit einbeziehen. Eben eine Erhöhung der zeitlichen Auflösung.

Exxtreme
2009-11-21, 10:48:45
Anti-Aliasing ist ein Tiefpassfilter. Wer es mir nicht glaubt, soll eine Vorlesung besuchen, die sich mit der Signaltheorie befasst.
/EDIT: Damit hier keine sprachlichen Missverständnisse entstehen: Multisampling-AA und Supersampling-AA sind Verfahren, die Antialiasing als einen Schritt enthalten (das Downsampling). Um die Bildschärfe zu erhalten, wird das Bild bei MSAA und SSAA in mit einer höheren Frequenz als der Zielfrequenz abgetastet. Deshalb Multisampling (Mehrfachabtastung) bzw. Supersampling (Superabtastung).
Daß Antialiasing ein Tiefpassfilter ist das bestreitet ja keiner. Trotzdem sind Antialiasing und Unschärfe zwei völlig verschiedene Dinge und absolut nicht vergleichbar auch wenn beide ein Tiefpassfilter sind.

Avalox
2009-11-21, 10:54:52
Daß Antialiasing ein Tiefpassfilter ist das bestreitet ja keiner. Trotzdem sind Antialiasing und Unschärfe zwei völlig verschiedene Dinge und absolut nicht vergleichbar auch wenn beide ein Tiefpassfilter sind.

Bilder mit Aliaselementen sind überscharf. Das trifft auf ein 2D Bild ebenso zu, wie auf das zeitliche Alias-Artefakt. Deshalb ist schon das Bild nach dem Antialiasing unschärfer, als das Bild ohne Aliaseffekt.

Heutige Bilder aus dem PC sind allesamt überschärft. Da ein perfektes Antialiasing nur mit unendlicher Rechenleistung erreicht werden kann, wird es zumindest nach den heutigen Prinzipien erzeugte Bilder auch immer so sein. Es fällt höchsten irgendwann nicht mehr auf.

Das Problem ist doch nur, dass man eine Wertung mit den Begriffen verbindet.

Scharf = gut, unscharf = schlecht. Aber dieses ist ja nicht der Fall.

Exxtreme
2009-11-21, 11:08:13
Bilder mit Aliaselementen sind überscharf. Das trifft auf ein 2D Bild ebenso zu, wie auf das zeitliche Alias-Artefakt. Deshalb ist schon das Bild nach dem Antialiasing unschärfer, als das Bild ohne Aliaseffekt.

Heutige Bilder aus dem PC sind allesamt überschärft. Da ein perfektes Antialiasing nur mit unendlicher Rechenleistung erreicht werden kann, wird es zumindest nach den heutigen Prinzipien erzeugte Bilder auch immer so sein. Es fällt höchsten irgendwann nicht mehr auf.

Das Problem ist doch nur, dass man eine Wertung mit den Begriffen verbindet.

Scharf = gut, unscharf = schlecht. Aber dieses ist ja nicht der Fall.
Die Bilder wären auch ohne Aliasing überscharf. ;) Dazu bräuchte man "nur" eine Auflösung, die höher ist als die Auflösung des Auges.

Antialiasing hat sicherlich je nach Anzahl der Abtastungen eine präzise ermittelte Unschärfe. Trotzdem ist das nicht mit einem Unschärfefilter vergleichbar.

Gast
2009-11-21, 11:20:07
ich glaube irgendwie reden viele leute hier aneinander vorbei, wobei sie aber eigentlich das selbe ausdrücken möchten.

um es mal möglichst allgemeinverständlich zu erklären:
4x SSAA heißt nicht umsonst "vierfaches Supersampling Antialiasing" statt nur "Antialiasing". Es setzt sich nämlich aus 2 Komponenten zusammen: 4-facher überabtastung (das ist der "4x SS"-Teil) und einem Tiefpass-, sprich Unschärfefilter (der "AA"-Teil).

Antialiasing ist das Unscharf-machen des um den Faktor 4 zu großen Bildes, sodass jeweils Cluster von 2x2 Pixeln auf den selben Farbwert gemittelt werden. Durch dieses Mitteln kann man anschließend einen beliebigen der 4 Pixel aus jedem Cluster entnehmen und auf den Bildschirm klatschen, auf dem das ursprüngliche überabgetastete Bild aus Mangel an vorhandenen Pixeln gar keinen Platz hätte. In HW sieht das ganze aus technischen gründen natürlich etwas anders aus (es hat keinen Sinn alle Pixel des gemittelten Bildes zu speichern, da ja 3/4 der Pixel redundant sind).

=> identisches Blur mit Blurfaktor 4 über das ganze Bild wäre ident zu 1/4 SSAA und damit eindeutig eine Antialiasingmethode -> Das Aliasing wird beseitigt. Durch die fehlende Überabtastung sieht das Ergebnis für uns aber mies aus.

mfg,
zgep

Gast
2009-11-21, 11:33:33
ich hätte mich doch einloggen sollen, dann könnte ich das jetzt zu meinem Beitrag von vorhin dazu-editen...

Als Beispiel:
Wenn ich ein 4096*4096px Bild durch einen Blur-Filter mit Faktor 4 jage, kriege ich ein 4096*4096px Bild mit 3/4 redundanter Information. Wenn ich die jetzt wegwerfe bleibt mir ein 1024*1024px Bild mit reduzierem Aliasing.

Wenn ich ein 1024*1024px Bild mit 4x SS rendere, kriege ich ein 4096*4096px Bild. Wenn ich dann Cluster von 2x2 Pixeln auf einen Farbwert mittle und die wiederum entstehende redundante Info wegwerfe bleibt mir das selbe 1024*1024px Bild mit reduziertem Aliasing wie beim Blur.

AA = Blur
SSAA = Blur auf ein überabgetastetes Bild

AA/Blur verringert IMMER die Bildinformation, der SS-Teil davor erhöht sie. Das Ergebnis ist ein ruhigeres Bild (= weniger Aliasing), da hohe Frequenzen durch den AA/Blur/Tiefpass-Filter herausgefiltert wurden.

mfg,
zgep

Gast
2009-11-21, 12:26:14
Trotzdem sind Antialiasing und Unschärfe zwei völlig verschiedene Dinge und absolut nicht vergleichbar auch wenn beide ein Tiefpassfilter sind.

Die beiden sind durchaus Vergleichbar, genau genommen ist es der Unschärfefilter der zum Antialiasing beiträgt, in beiden Fällen, bei "echtem" Antialiasing und bei einem reinen Unschärfefilter.

Mit "echtem" Antialiasing wird der Unschärfefilter lediglich auf das Bild mit der erhöhten Auflösung angewendet, welches durch die höhere Auflösung schon viel Schärfer ist und damit im Endeffekt eben kein Eindruck der Unschärfe entsteht.

Gast
2009-11-21, 12:27:49
Die Bilder wären auch ohne Aliasing überscharf. ;) Dazu bräuchte man "nur" eine Auflösung, die höher ist als die Auflösung des Auges.


Umgekehrt. So lange die Bildauflösung geringer ist als die Auflösung des Auges kann das Bild überscharf erscheinen.

Ist die Bildauflösung höher als die des Auges gibt es keine "Überschärfe" mehr.

Tesseract
2009-11-21, 13:16:06
Eine Textur ist bei linearer (bi- oder trilinearer) Filterung bereits eine nichtstetige Funktion.
das mit der stetigkeit war nicht auf die textur bezogen sondern auf verschiedene funktionen, die du auf die fragments anwendest.

Multisampling-AA und Supersampling-AA sind Verfahren, die Antialiasing als einen Schritt enthalten (das Downsampling). Um die Bildschärfe zu erhalten, wird das Bild bei MSAA und SSAA in mit einer höheren Frequenz als der Zielfrequenz abgetastet.

das stimmt nicht.
aliasing ist die folge des nichteinhaltens des shannon'schen abtast theorems. das anti-aliasing wirkt hier durch die höhere abtastung. das downsampling brauchst du nur um das höher abgetastete bild, das das kriterium hoffentlich erfüllt, auf dem beschränkten pixelraster darstellen zu können.

tiefpass löst das problem indirekt weil du die zu hohen frequenzen schon im vorfeld adaptiv vermeidest. das ist aber etwas vollkommen anderes als downsampling. zumindest so wie es hier verwendet wird.

anderer Gast
2009-11-21, 14:15:48
Die beiden sind durchaus Vergleichbar, genau genommen ist es der Unschärfefilter der zum Antialiasing beiträgt, in beiden Fällen, bei "echtem" Antialiasing und bei einem reinen Unschärfefilter.

Mit "echtem" Antialiasing wird der Unschärfefilter lediglich auf das Bild mit der erhöhten Auflösung angewendet, welches durch die höhere Auflösung schon viel Schärfer ist und damit im Endeffekt eben kein Eindruck der Unschärfe entsteht.
Also bräuchte man nur sowas wie Edge-Detection und könnte dann auch AA durch Unschärfe betreiben, ohne hoch zu samplen?

Tesseract
2009-11-21, 17:54:36
Also bräuchte man nur sowas wie Edge-Detection und könnte dann auch AA durch Unschärfe betreiben, ohne hoch zu samplen?
nein. wenn die frequenz des contents so hoch ist, dass aliasing entsteht, hilft nur höhere abtastung. (oder wie beim tiefpass den content zurechtzustauchen was in gewisser weise das pferd von hinten aufzäumt)

ein beispiel: wenn du ein extrem feines gitter hast (in etwa so klein wie der pixelraster) kann der fall auftreten, dass es in bewegung abwechselnd das ganze bild verdeckt oder vollkommen unsichtbar ist. das wäre wohl das extremste zu konstruierende aliasing. wenn du die einzelbilder verschmierst bleibt trotzdem z.B. jedes 2. frame komplett verdeckt, daran ändert die unschärfe nix. wenn du hingegen die auflösung erhöhst wird das gitter durchgehend halbdurchsichtig sein. das entspricht echtem antialiasing.

noch ein Gast
2009-11-21, 18:01:52
Also bräuchte man nur sowas wie Edge-Detection und könnte dann auch AA durch Unschärfe betreiben, ohne hoch zu samplen?

Richtig auch wenn es immer etwas schlechter aussehen wird als SSAA.
Diese Methode wird u.a. als "edge smoothing" bezeichnet.

Verwendet z.B. in:
Ghost Recon: Advanced Warfighter 2 ( http://www.tweakguides.com/GRAW2_6.html )
Crisys (neben HW AA)
Gothic 3

@Gast (zgep)
Danke für diese gute und zutreffende Erklärung!

Tesseract
2009-11-21, 18:10:19
Richtig auch wenn es immer etwas schlechter aussehen wird als SSAA.
es sieht nicht "etwas schlechter" aus, es ist schlicht und ergreifend kein anti aliasing. siehe mein beispiel im oberen post. selbst wenn du das komplette bild zu einem einzigen pixel zusammenmatscht verdeckt das gitter-aliasing immer noch das gesamte bild oder ist komplett unsichtbar.

oder um es auf ein etwas praxisnäheres beispiel umzumünzen: wenn z.B. ein freihängendes kabel von stomleitungen in der landschaft (wie in deinem link) aufgrund der zu geringen abtastung 3 meter lang komplett unsichtbar wäre (was vorkommen wird wenn es relativ dünn ist), bleibt es auch mit 100x-omfg-fullscreen-matsch-bur-schleiming unterbrochen.

Tesseract
2009-11-21, 18:38:02
hier ein beispiel:

http://img3.imageshack.us/img3/103/aabeispiel.png

kein AA / 4xAA / kein AA + blur

Gast
2009-11-21, 20:14:40
Also bräuchte man nur sowas wie Edge-Detection und könnte dann auch AA durch Unschärfe betreiben, ohne hoch zu samplen?


Man könnte es, aber qualitativ wird jegliche Blur-Methode immer unterlegen sein gegenüber mehr Samples.

Du kannst immer nur Dinge blurren die vom Abtastraster erfasst werden, damit werden immer mehr Objekte komplett durchfallen wenn du lediglich blurst ohne die Auflösung zu erhöhen.

aths
2009-11-21, 20:23:56
Dämpfen reicht hier nicht. Es muss ein scharfkantiger Tiefpass sein, und das ist nunmal ein Weichzeichner. Aufgrund der hohen Auflösung und des Herunterrechnens erscheint uns das Bild aber scharf.Es darf eben kein scharfkantiger (also flankensteiler) Tiefpass her. Sonst würde bei kontinuierlicher Verkleinerung eine Strutkur plötzlich weg sein.

So gesehen könnte ein Tiefpass auch zur Verringerung der zu hohen Frequenzanteile beitragen, zerstört aber wie oben bereits gesagt Information, und sorgt auch nicht für die gewünschten scharfen Kanten.

Ich bin aber der Meinung, das ein wenig Unschärfe nicht schaden kann. Beim Film wird auch leicht defokussiert, um einen natürlichen analogen AA Filter über das Bild zu legen. Aber da wären wir bei einem Thema, das hier schon vor 7 Jahren ausreichend heiß diskutiert wurde.Die Körnung des Filmes ist gut genug, man kann auch keinen AA-Filter "drüberlegen".

Die gewünschten scharfe Kanten im Bild haben das Problem, dass sie sich immer nur einen Pixel bewegen können. Im Standbild macht es nichts aus, wenn die Geometrie oder der Texturinhalt etwas versetzt wird, damit das Objekt genau an einer Pixelkante abschließt. In Bewegung hätte man Ruckeln.

aths
2009-11-21, 20:29:00
Du kannst immer nur Dinge blurren die vom Abtastraster erfasst werden, damit werden immer mehr Objekte komplett durchfallen wenn du lediglich blurst ohne die Auflösung zu erhöhen.Wobei auch hier die zeitliche Komponente berücksichtig werden sollte: Angenommen man würde statt einem Bild immer acht Bilder rendern, zeitlich im passenden Abstand, und am Ende zusammenmischen, ist ein dünnes Objekt was mal im Pixelraster sichtbar ist und mal nicht, wahrscheinlich bei einigen Zeitmarken sichtbar. Das Endergebnis zeigt dann wahrscheinlich eine durchgehende Linie.

Exxtreme
2009-11-21, 20:54:42
Mit "echtem" Antialiasing wird der Unschärfefilter lediglich auf das Bild mit der erhöhten Auflösung angewendet, welches durch die höhere Auflösung schon viel Schärfer ist und damit im Endeffekt eben kein Eindruck der Unschärfe entsteht.
Das ist nicht richtig. Beim Downsampling von einer höheren Auflösung auf eine niedrigere werden Informationen vernichtet. Antialiasing sorgt dafür, daß Teile dieser Informationen, die normalerweise vernichtet worden wären trotzdem noch ins Bild einfliessen. Ein Unschärfefilter hingegen macht das nicht. Er vernichtet pauschal Informationen und beim Downsamling (ohne AA) wären noch mehr Inforationen weg vom Fenster.

aths
2009-11-21, 21:09:37
Das ist nicht richtig. Beim Downsampling von einer höheren Auflösung auf eine niedrigere werden Informationen vernichtet. Antialiasing sorgt dafür, daß Teile dieser Informationen, die normalerweise vernichtet worden wären trotzdem noch ins Bild einfliessen. Ein Unschärfefilter hingegen macht das nicht. Er vernichtet pauschal Informationen und beim Downsamling (ohne AA) wären noch mehr Inforationen weg vom Fenster.Doch, das war so richtig. Unschärfe auf ein Bild mit höherer Auflösung als die Zielauflösung ist das, was wir bei 3D-Grafik Antialiasing nennen. Das heißt nicht, dass jedes Unschärfe-Verfahren auf das Bild mit der höheren Auflösung das gewünschte Ergebnis erzeugt

Gast
2009-11-22, 20:01:53
Das ist nicht richtig. Beim Downsampling von einer höheren Auflösung auf eine niedrigere werden Informationen vernichtet.

Bei einem Unschärfefilter werden die Inhalte mehrerer Pixel zusammengerechnet, nichts anders macht Downsampling. Downsampling ist im Grunde ein Unschärfefilter, da er Informationen vernichtet.

Durch die höhere Auflösung sind lediglich mehr Informationen im Bild, so dass man selbst nach dem Downsampling effektiv noch mehr Informationen im Bild hat, als wenn man nur mit der niedrigeren Auflösung ohne Antialiasing rechnen würde.