Archiv verlassen und diese Seite im Standarddesign anzeigen : Kostet höheres EER Geschwindigkeit?
Banshee18
2004-06-12, 01:36:36
Macht es leistungstechnisch einen Unterschied, ob man 4xRGMSAA oder 4xOGMSAA benutzt? Bei RGMSAA hat man ja ein EER von 4x4, bei OGMSAA ein EER von 2x2. Dass man das bei keiner Grafikkarte umstellen kann, ist mir klar, die Frage ist rein theoretisch.
mfg
Banshee
Corrail
2004-06-12, 11:38:23
[EDIT]
Sorry, hab mich da total geirrt...
RG (besser, sparsed grid) kostet ein wenig mehr Füllrate (was die Glättung verbessert) und sollte daher etwas langsamer sein.
Radeon ab R300 (im R200 ist's noch buggy) und GeForce-Karten ab NV40 könnten durchaus sowohl OG als auch SG anbieten. Wenn der Treiber nur wollte.
GloomY
2004-06-12, 13:37:06
Original geschrieben von aths
RG (besser, sparsed grid) kostet ein wenig mehr Füllrate (was die Glättung verbessert) und sollte daher etwas langsamer sein.Könntest du das mal bitte näher ausführen?
Im genannten Beispiel mit 4xOGMSAA vs. 4x sparsed grid MSAA hat doch jedes Pixel mit Poligonkanten genau vier Samples, die dann zur entgültigen Farbe zusammengemischt werden. In wie fern kann da ein Unterschied im Füllratenverbrauch entstehen, wenn beide jeweils 4 Samples benutzen? Die Anzahl der Pixel mit Poligonkanten ist ja für beide Modi konstant, ebenso wie die Sampleanzahl... :???:
Original geschrieben von GloomY
Könntest du das mal bitte näher ausführen?
Im genannten Beispiel mit 4xOGMSAA vs. 4x sparsed grid MSAA hat doch jedes Pixel mit Poligonkanten genau vier Samples, die dann zur entgültigen Farbe zusammengemischt werden. In wie fern kann da ein Unterschied im Füllratenverbrauch entstehen, wenn beide jeweils 4 Samples benutzen? Die Anzahl der Pixel mit Poligonkanten ist ja für beide Modi konstant, ebenso wie die Sampleanzahl... :???: Das ist ein üblicher Denkfehler: Ob GF FX oder Radeon 9700, bei 4x AA würde gleiche Arbeit verrichtet, da jeweils 4 Subpixel zum Einsatz kämen. Da fragt man sich doch, warum der eine Modus besser glättet als der andere.
Angenommen, alle 4 Subpixel hätten die gleiche Position. Dann gäbe es:
- Keine Glättung
- Keinen zusätzlichen Füllratenverbrauch.
Glättung kostet Füllrate, da zusätzliche Informationen einfließen. OG tastet ggü. RG ineffizient ab, es fließen weniger zusätzliche Informationen ein, weil weniger unterschiedliche zusätzliche Daten berücksichtigt werden.
GloomY
2004-06-12, 15:00:17
Original geschrieben von aths
Das ist ein üblicher Denkfehler: Ob GF FX oder Radeon 9700, bei 4x AA würde gleiche Arbeit verrichtet, da jeweils 4 Subpixel zum Einsatz kämen. Da fragt man sich doch, warum der eine Modus besser glättet als der andere.Weil der eine weniger Redundanz, sprich mehr mehr Information liefert!?
Original geschrieben von aths
Angenommen, alle 4 Subpixel hätten die gleiche Position. Dann gäbe es:
- Keine Glättung
- Keinen zusätzlichen Füllratenverbrauch.Die Berechnungen für die vier Samples müssen doch trotzdem gemacht werden, selbst wenn es vier mal die gleiche Stelle ist. Die Anzahl der Berechnungen ist doch wohl von der verwendeten Sample-Stelle unabhängig...
Original geschrieben von aths
Glättung kostet Füllrate, da zusätzliche Informationen einfließen. OG tastet ggü. RG ineffizient ab, es fließen weniger zusätzliche Informationen ein, weil weniger unterschiedliche zusätzliche Daten berücksichtigt werden. Trotzdem werden gleich viele Berechnungen durchgeführt. Wie viel Information einfließt, ist eine ganz andere Frage.
edit: oder nochmal anders ausgedrückt: Glättungsqualität ist eine Frage, wie viel Information einfließt. Das ist natürlich davon abhängig, von wie vielen Samples man Information bekommt. Liefern die Samples jeweils die gleiche Information (gleiche Position), so gewinnt man natürlich nichts. Die Berechnungen müssen selbstverständlich trotzdem für jedes Sample gemacht werden, es sei denn die Hardware hat einen Mechanismus, um identische Samplepositionen zu erkennen. Da aber niemand mit gesundem Menschenverstand zweimal an der exakt gleichen Stelle samplen würde, halte ich das für unwahrscheinlich.
Banshee18
2004-06-12, 15:18:15
Bei einem sparsed grid müssen pro Pixel jeweils 4 Zeilen abgetastet werden, bei einem OG nur 2.(Kann man das so sagen?)
Deshalb vielleicht der Leistungsunterschied.
Brillus
2004-06-12, 15:21:39
Ich glaube es geht darum das bei Multisampling nur neue Farbwerte berechnet werden wenn auch unterschiedliche polygone getrfoffen werden.
Bei SS würde diese annahme stimmen mit gleiche Arbeit egal welches Grid bei MS nicht da bei schlechterm Grid die Chance höher ist das alle Samples ich einem Polygon liegen anstatt wie bei einem besser schon Kanten entdeckt wurden -> weniger Arbeit, weniger Füllratenverlust.
Original geschrieben von GloomY
Weil der eine weniger Redundanz, sprich mehr mehr Information liefert!?
Die Berechnungen für die vier Samples müssen doch trotzdem gemacht werden, selbst wenn es vier mal die gleiche Stelle ist. Die Anzahl der Berechnungen ist doch wohl von der verwendeten Sample-Stelle unabhängig...
Trotzdem werden gleich viele Berechnungen durchgeführt. Wie viel Information einfließt, ist eine ganz andere Frage.Multisampling spart ggü. Supersampling Füllrate. Weil für jedes Pixel nur ein Wert berechnet wird, der für alle Subpixel gilt, die im Dreieck liegen. Der Extremfall, dass alle Subpixel auf der gleichen Stelle liefern, erzeugt ein Bild, dass ggü. 1x AA nicht besser aussieht, aber auch keine zusätzliche Füllrate kostet.
Glättung findet statt, in dem in ein Pixel (mindestens) Werte aus zwei Dreiecken einfließen. Dafür müssen im Pixel dann ja letztlich auch zwei Texel berechnet werden -> Füllratenverbrauch steigt.
Bei 4x RGAA hat man bei einer schwach geneigten Kante ca. 25% Länge einer Treppenstufe, die ohne Glättung ist. Bei 4x OGAA ist der Bereich ohne Glättung ca. 50% der Treppenstufe breit. Dementsprechend wird ggü. 4x RG Füllrate gespart, bzw. 4x RG verbraucht etwas mehr Füllrate als 4x OG.
GloomY
2004-06-12, 17:29:43
Original geschrieben von Brillus
Ich glaube es geht darum das bei Multisampling nur neue Farbwerte berechnet werden wenn auch unterschiedliche polygone getrfoffen werden.Imho ist das nicht der Fall.
Durch den bilinearen Filter (auch beim trilinearen Filter, denn dieser impliziert zwei Mal den bilinearen Filter von zwei unterschiedlichen Mip-Maps) bekommen zwei unterschiedliche Samplepositionen auch unterschiedliche Farbwerte. Bilinear heisst ja, dass abhängig von der Sampleposition die Texelwerte zweimal (in x- und Y-Richtung) linear interpoliert werden. Ändert sich die Sampleposition, so ändert sich auch die lineare Interpolation, denn die Gewichtungen verändern sich ja auf Grund der neuen Position.
Original geschrieben von aths
Multisampling spart ggü. Supersampling Füllrate. Weil für jedes Pixel nur ein Wert berechnet wird, der für alle Subpixel gilt, die im Dreieck liegen.SSAA steht doch überhaupt nicht zur Debatte. Es geht um 4x OG MSAA gegenüber 4x sparsed Grid MSAA.
Original geschrieben von aths
Der Extremfall, dass alle Subpixel auf der gleichen Stelle liefern, erzeugt ein Bild, dass ggü. 1x AA nicht besser aussiehtDas ist klar.
Original geschrieben von aths
aber auch keine zusätzliche Füllrate kostet.Wie kommst du da drauf?
Original geschrieben von aths
Glättung findet statt, in dem in ein Pixel (mindestens) Werte aus zwei Dreiecken einfließen. Dafür müssen im Pixel dann ja letztlich auch zwei Texel berechnet werden -> Füllratenverbrauch steigt.Glättung findet statt, indem man den Durchschnitt (arithmetisches Mittel) aus mehreren Samplen (Subpixeln) bildet.
D.h. bevor ich eine Glättung erhalten kann, muss ich erstmal eine bestimmte Anzahl an Samplen hernehmen, um dann daraus den Mittelwert bilden zu können. Ob die Samples nun letztendlich den gleichen Wert haben (weil sie z.B. die gleiche Position haben), ist für den Aufwandt vollkommen egal.
Original geschrieben von aths
Bei 4x RGAA hat man bei einer schwach geneigten Kante ca. 25% Länge einer Treppenstufe, die ohne Glättung ist. Bei 4x OGAA ist der Bereich ohne Glättung ca. 50% der Treppenstufe breit. Dementsprechend wird ggü. 4x RG Füllrate gespart, bzw. 4x RG verbraucht etwas mehr Füllrate als 4x OG. Gleiche Argumentation wie oben: Du brauchst alle vier Samples pro Pixel, um deine Zwischenstufen zu erzeugen (wie imme diese auch nun aussehen mögen). Wie diese nun konkret aussehen, spielt für den Aufwandt zum Erzeugen der Samples (und damit der Füllrate) keine Rolle.
Original geschrieben von GloomY
Durch den bilinearen Filter Texturfilterung hat mit dem Problem nichts zu tun.
MSAA nimmt pro Dreieck und Pixel ein Texel. Alle Subpixel im Pixel und Dreieck kriegen den gleichen gefilterten Textur- (bzw. Pixelshader-) Wert. Sonst würde man ja keine Füllrate sparen.
Original geschrieben von GloomY
SSAA steht doch überhaupt nicht zur Debatte.Um das Problem zu verstehen, schon. Die Glättung bei Multisampling findet quasi durch partielles Supersampling statt.
Original geschrieben von GloomY
D.h. bevor ich eine Glättung erhalten kann, muss ich erstmal eine bestimmte Anzahl an Samplen hernehmen, um dann daraus den Mittelwert bilden zu können. Ob die Samples nun letztendlich den gleichen Wert haben (weil sie z.B. die gleiche Position haben), ist für den Aufwandt vollkommen egal.Die Samples die den gleichen Wert haben, sind (vermutlich) so entstanden, dass ein Texel für alle Subpixel genommen wurde. Der Füllratenspareffekt verringert sich, wenn das nicht klappt, weil im Pixel mehrere Dreiecke liegen. Dort wird dafür geglättet. Da zwei (oder mehr) Dreiecke im Pixel liegen, müssen auch zwei (oder mehr) Farbwerte berechnet werden.
Original geschrieben von GloomY
Gleiche Argumentation wie oben: Du brauchst alle vier Samples pro Pixel, um deine Zwischenstufen zu erzeugen. Wie diese nun konkret aussehen, spielt für den Aufwandt zum Erzeugen der Samples (und damit der Füllrate) keine Rolle. Eben doch.
zeckensack
2004-06-12, 20:29:35
aths, ich glaube du schiesst etwas über das Ziel hinaus.
Wie implementiert man Multisampling denn?
Man braucht pro Sample einen Test, der "innen oder aussen" prüft, und benutzt das Ergebnis als "write mask".
Den Test muss man in jedem Fall für alle Samples machen, ganz egal wie sie angeordnet sind.
Und die Effizienz bei der Vorhaben "nur eins von vier Samples" schreiben wird IMO auch nicht so brülliant hoch sein.
Der Füllratenunterschied durch leicht unterschiedliche Kantendeckung, von dem du hier sprichst, ist IMO auch vorhanden, aber ich würde hier nicht von einem Vorteil sprechen. Das ist IMO mehr oder weniger chaotisch, und bewegt sich wahrscheinlich unterhalb der Messtoleranz der meisten Benchmarks (sprich: <1%).
Das ist so ähnlich als würdest du ein komplettes Frame um eine halbe Pixelposition nach rechts verschieben. Es kann gut sein dass du dann einen minimal anderen Füllratenverbrauch hast, aber ob mehr oder weniger, kannst du einfach nicht voraussagen.
Quasar
2004-06-12, 20:36:08
Original geschrieben von aths
Die Glättung bei Multisampling findet quasi durch partielles Supersampling statt.
Wird denn durch Errechnung mit Gewichtungsfaktoren der beteiligten Subpixel das finale Pixel gerendert oder werden die Subpixel erst komplett gerendert und dann verrechnet?
zeckensack
2004-06-12, 23:17:50
Original geschrieben von Quasar
Wird denn durch Errechnung mit Gewichtungsfaktoren der beteiligten Subpixel das finale Pixel gerendert oder werden die Subpixel erst komplett gerendert und dann verrechnet? Letzteres.
Die Gewichtungsfaktoren sind sowieso für alle Samples konstant, und prinzipiell fliesst in jeden finalen Pixel die gleiche Zahl an Samples ein (bei "4x" eben immer 4).
Das einzige was beim Multisampling pro Sample passieren muss ist der Test, ob die Sampleposition a)innerhald der gerade zu zeichnenden Fläche liegt, und b)ob Z-/Stencil-Test an dieser Stelle "gewonnen" wurden.
Dann schreibt man das Sample in die passende Position im Multisample-Buffer (und ersetzt dabei evtl ältere Samples), oder eben nicht.
Runterfiltern kann man das ganze entweder beim "buffer swap", oder "on scanout", das kommt auf's gleiche raus. Völlig unabhängig davon erhält man ein Pixel, indem man einen Mittelwert aus allen Samples für diese Position bildet (konstante Anzahl!).
Für 4xMS zB (völlig unabhängig vom Abtastraster) rechnet man
Pixel:=0,25*(Sample1+Sample2+Sample3+Sample4)
Natürlich ist das grob vereinfacht. In der Praxis drängt sich eine Pseudo-"Kompression" zur Optimierung des Bandbreitenbedarfs geradezu auf. Das ganze Verfahren funktioniert aber dadurch nicht anders, das (visuelle) Ergebnis ist in jedem Fall das gleiche.
Und Gammakompensation kann man natürlich auch noch machen. Das betrifft einzig und allein den Downfilter (wann auch immer man ihn ausführt).
Zeckensack,
mein Gedankengang geht vom Extrembeispiel aus, wo alle Subpixel pro Pixel auf der gleichen Position sind, so dass es gar kein AA gibt, obwohl 4 Subpixel berechnet werden. Hier wird Bandbreite vergeudet, keine Füllrate. Jedes geglättete Pixel verbraucht Füllrate. 4x RG glättet nicht nur besser, es glättet auch zusätzliche Pixel gegenüber 4x OG. Also verbraucht RG etwas mehr Füllrate. Wie viel mehr, ist eine andere Frage.
Original geschrieben von Quasar
Wird denn durch Errechnung mit Gewichtungsfaktoren der beteiligten Subpixel das finale Pixel gerendert oder werden die Subpixel erst komplett gerendert und dann verrechnet? Der MSAA-Artikel (http://www.3dcenter.org/artikel/multisampling_anti-aliasing/) lässt diesbezüglich noch Fragen offen?
Banshee18
2004-06-13, 02:12:44
Kann jemand vielleicht mal für mich den Begriff "linear interpolieren" kurz erläutern? Sorry, nach dieser Informationsflut steh ich ein bisschen auf dem Schlauch, bin noch nicht so ganz der 3D-Guru.:(
mfg
Banshee
zeckensack
2004-06-13, 03:11:25
Original geschrieben von Banshee18
Kann jemand vielleicht mal für mich den Begriff "linear interpolieren" kurz erläutern? Sorry, nach dieser Informationsflut steh ich ein bisschen auf dem Schlauch, bin noch nicht so ganz der 3D-Guru.:(
mfg
Banshee Nimm zwei Punkte auf einem Blatt Papier, und verbinde sie mit einem geraden Strich. Dann hast du linear interpoliert.
Das bedeutet, dass man zwischen zwei bekannten "Dingen" Zwischenschritte bildet. Das können Positionen sein (siehe die Punkte), aber auch Farben.
Wenn ich zB violett und orange (jeweils in Form von handelsüblichen RGB-Tripeln) als Endpunkte der Interpolation vorgebe, dann kriege ich sowas:
"Gewicht" 0 0,25 0,5 0,75 1,0
R 1,0 1,0 1,0 1,0 1,0 <-ändert sich nicht ;(
G 0,0 0,125 0,25 0,375 0,5
B 1,0 0,75 0,5 0,25 0,0
Endpunkt Endpunkt
Formell interpoliert man zwischen zwei Vektoren (beliebiger, aber gleicher Dimension) A und B linear, indem man t*A+(1-t)*A ausrechnet. "t" ist hier wieder das Interpolationsgewicht, das angibt, "wo" auf der Strecke zwischen A und B man sich befindet. Ohne dieses t kann man auch nicht interpolieren.
Original geschrieben von aths
4x RG glättet nicht nur besser, es glättet auch zusätzliche Pixel gegenüber 4x OG. Also verbraucht RG etwas mehr Füllrate. Wie viel mehr, ist eine andere Frage.
Ich würde eher sagen, es kommt darauf an, wie die Kanten liegen, ob 2xRG oder 2xOG mehr Füllrate benötigt. Die Füllraten-Arbeit verschiebt sich bei RG ja nur an sinnvollere Stellen.
Original geschrieben von ram
Ich würde eher sagen, es kommt darauf an, wie die Kanten liegen, ob 2xRG oder 2xOG mehr Füllrate benötigt. Die Füllraten-Arbeit verschiebt sich bei RG ja nur an sinnvollere Stellen. Das ist ein gutes Argument. Darüber muss ich noch mal genau nachdenken.
MadManniMan
2004-06-14, 03:40:28
ram sprach es an, ich denke ähnlich.
IMHO hast du einen Denkfayl0r, aths. 4*RG glättet subjektiv besser, die "diagonale EER" ist nicht von einer solchen Relevanz, wie die EER. Tatsächlich aber hat 4*RG im Vergleich zu 4*OG einfach nur andere Schwächen und Stärken, annährend diagonale Kanten werden vom letzteren besser geglättet.
Praktisch müßten sich die Performaceunterschiede durch anders ausgerichtete Kanten ausgleichen.
Original geschrieben von MadManniMan
ram sprach es an, ich denke ähnlich.
IMHO hast du einen Denkfayl0r, aths. 4*RG glättet subjektiv besser, die "diagonale EER" ist nicht von einer solchen Relevanz, wie die EER. Tatsächlich aber hat 4*RG im Vergleich zu 4*OG einfach nur andere Schwächen und Stärken, annährend diagonale Kanten werden vom letzteren besser geglättet.Habe gestern noch mal gaaanz genauuu drüber nachgedacht. Imo verbraucht 4x RG vs. 4x OG insgesamt etwas mehr Füllrate (Ausnahmen sind konstruierte Spezialfälle) wobei der Zusatzverbrauch sehr gering, der Qualitätsgewinn sehr hoch ist. Eine Sache muss ich dazu noch austesten.
GloomY
2004-06-14, 14:09:55
Original geschrieben von aths
MSAA nimmt pro Dreieck und Pixel ein Texel. Alle Subpixel im Pixel und Dreieck kriegen den gleichen gefilterten Textur- (bzw. Pixelshader-) Wert. Sonst würde man ja keine Füllrate sparen.Klar. Innerhalb des Dreiecks ändert sich nichts.
Original geschrieben von aths
Um das Problem zu verstehen, schon. Die Glättung bei Multisampling findet quasi durch partielles Supersampling statt.:???: Partiell in wie fern? Dass nur die Pixel, die am Anfang und Ende jeder Linie des gereasterten Dreiecks liegen, höher abgetastet werden?
aths,
Ich finde das ganze bis jetzt sehr verwirrend. Kannst du noch mal bitte (in verständlichen Worten) erklären, warum deiner Meinung nach die Füllrate bei sparsed größer sein soll als bei OG, wenn
a) das grundsätzliche Verfahren (MSAA) gleich ist
b) die Samplezahl gleich ist (4)
c) sich aussschließlich das Abtastmuster unterscheided?
:???:
Original geschrieben von GloomY
:???: Partiell in wie fern? Dass nur die Pixel, die am Anfang und Ende jeder Linie des gereasterten Dreiecks liegen, höher abgetastet werden?Man kann sich MSAA erklärungstechnisch von zwei Seiten nähern. Eine Möglichkeit es zu beschreiben ist, zu sagen, dass Kantenpixel höher aufgelöst werden, im Gegensatz zu Innenpixeln. Dabei wird in den Kantenpixeln nicht unbedingt "volles" Supersampling gemacht: Liegen zwei Dreiecke in einem Pixel, werden bei 4x MSAA auch nur 2 Texel berechnet.
Original geschrieben von GloomY
Ich finde das ganze bis jetzt sehr verwirrend. Kannst du noch mal bitte (in verständlichen Worten) erklären, warum deiner Meinung nach die Füllrate bei sparsed größer sein soll als bei OG, wenn
a) das grundsätzliche Verfahren (MSAA) gleich ist
b) die Samplezahl gleich ist (4)
c) sich aussschließlich das Abtastmuster unterscheided?
:???: b) ist kein Argument. Wie gesagt sind Muster denkbar, wo es weder Glättung noch Füllraten-Zusatzkosten gibt. Gleiches gilt für a) Letztlich auch für c. Das Abtastmuster hat einen entscheidenden Einfluss auf die Glättungsqualität. Warum sollte der zusätzliche Füllratenverbrauch völlig unabhängig vom Abtastmuster sein?
Ich meine, dass 4x RG nicht nur besser, sondern auch mehr Pixel glättet als 4x OG.
Füllrate wird verbraucht, wenn pro Pixel mindestens ein Sample bedeckt ist. Gehen wir mal davon aus, dass durch einen Pixel maximal eine Kante eines gegebenen Dreiecks läuft, sprich, dünne Polygone und Polygonecken lassen wir mal außen vor. Dann kommt es auf die Größe des durch die Samplepunkte innerhalb eines Pixels aufgespannten Quadrats an, wie viele Kantenpixel gefüllt werden müssen. Wären alle Samples in einem Punkt, müssen Kantenpixel (jeder Pixel durch den - unendlich genau betrachtet - eine Kante verläuft) in genau der Hälfte der Fälle gerendert werden. Lägen die Samples in den Ecken des Pixels, wäre das in 100% der Fälle notwendig. Da das aufgespannte Quadrat bei "Rotated Grid" tatsächlich größer ist (sein sollte) als bei "Ordered Grid", benötigt RG auch minimal mehr Füllrate. Das spielt aber praktisch keine Rolle.
MadManniMan
2004-06-14, 19:08:02
Ich denke, in deiner Überlegung vergißt du Eines: die Szene besteht aus vielen Hunderttausend Pixeln, nicht aus einem.
Original geschrieben von MadManniMan
Ich denke, in deiner Überlegung vergißt du Eines: die Szene besteht aus vielen Hunderttausend Pixeln, nicht aus einem. Ich denke, Xmas hat ausformuliert was ich nur in Gedanken hatte aber nicht zu Papier ... äh, zu Bytes bringen konnte :naughty:
Xmas hat es für ein Pixel bewiesen, bei 100000 Pixeln würde der Effekt dann 100000x stärker :devil:
MadManniMan
2004-06-15, 00:19:10
Original geschrieben von aths
Ich denke, Xmas hat ausformuliert was ich nur in Gedanken hatte aber nicht zu Papier ... äh, zu Bytes bringen konnte :naughty:
Xmas hat es für ein Pixel bewiesen, bei 100000 Pixeln würde der Effekt dann 100000x stärker :devil:
Errm aths, Xmas bezieht sich auf den Raum innert eines Pixels. Breite 1 Pixel, Höhe 1 Pixel. Dort redet er von abgeschlossenen, geometrischen Bezügen - IMHO kurzsichtig.
Original geschrieben von MadManniMan
Errm aths, Xmas bezieht sich auf den Raum innert eines Pixels. Breite 1 Pixel, Höhe 1 Pixel. Dort redet er von abgeschlossenen, geometrischen Bezügen - IMHO kurzsichtig. Imo nicht. Xmas' Überlegung ist sehr richtig: Angenommen bei 4x AA lägen die Subpixel jeweils in den äußeren Ecken. Dann würde Überfilterung stattfinden, vor allem würden noch mehr Pixel (dann aber überflüssige) Glättung erfahren -> Füllratenverbrauch steigt. Warum hat man, sofern alle 4 Subpixel auf gleicher Position liegen, weder zusätzliche Glättung noch zusätzlichen Füllratenverbrauch? Xmas' Posting gibt die Antwort.
MadManniMan
2004-06-15, 15:59:34
Original geschrieben von aths
Imo nicht. Xmas' Überlegung ist sehr richtig: Angenommen bei 4x AA lägen die Subpixel jeweils in den äußeren Ecken. Dann würde Überfilterung stattfinden, vor allem würden noch mehr Pixel (dann aber überflüssige) Glättung erfahren -> Füllratenverbrauch steigt. Warum hat man, sofern alle 4 Subpixel auf gleicher Position liegen, weder zusätzliche Glättung noch zusätzlichen Füllratenverbrauch? Xmas' Posting gibt die Antwort.
Wir reden leider etwas aneinander vorbei :(
Ich will dir ganz und gar nicht widersprechen, aber das Eine hat mit dem Anderen weniger zu tun, als du denkst ;)
Bedenke die "durchschnittliche, ordinäre" Szene, die dargestellt wird. OK, bis auf den doch recht oft etwas polygonarmen Himmel, den man überdurchschnittlich oft in vielen Apps bewundern kann, verteilen sich die Polygone im Mittel gleichmäßig über das Pixel-, und damit auch Subpixelraster.
Sicherlich gibt es Subpixelmuster, die über eine seltsame Verteilung durchschnittlich weniger Kanten erfassen, aber reden wir über solche? :|
Ich persönlich rede ATM von 2* oder 4* RG/OG aus - und dort sind die Abstände IIRC gleichmäßig. Und selbst, wenn sie es nicht durchgängig wären: wenn hier der Abstand (auch über mehrere Pixel hinweg) mal kleiner ist, ist er da wieder größer -> im Mittel bleibt der Anspruch gleich.
Original geschrieben von MadManniMan
Sicherlich gibt es Subpixelmuster, die über eine seltsame Verteilung durchschnittlich weniger Kanten erfassen, aber reden wir über solche? :|Ja.
Original geschrieben von MadManniMan
Ich persönlich rede ATM von 2* oder 4* RG/OG aus - und dort sind die Abstände IIRC gleichmäßig.Nein.
Original geschrieben von MadManniMan
Und selbst, wenn sie es nicht durchgängig wären: wenn hier der Abstand (auch über mehrere Pixel hinweg) mal kleiner ist, ist er da wieder größer -> im Mittel bleibt der Anspruch gleich. Mit 4x OGSSAA hat man ja einen 2x AF-Effekt (wobei 4x OGSSAA leicht besser als 2x AF ist.) Mit 4x RGSSAA hat man nicht ganz 2x AF. Weil entscheidend ist, wie weit die größten Abstände zwischen benachbarten Subpixel sind*. Der ist bei 4x RG etwas größer.
Gehen wir praxisnah von Dreiecken aus, die garantiert größer als 1 Pixel sind. Mit 1x AA kennt das Pixel nur seine Mitte. Mit 4x OG immerhin ein Quadrat im inneren. Mit 4x RG ein etwas größeres Quadrat. Deshalb schlägt der Glättungseffekt häufiger zu. Dass die Glättung gleichzeitig besser ist, ist keine direkte Folge vom häufiger Zuschlagen, sondern von resultierenden EER der Subpixelmaske.
* Die schärferen Texturen bei isotroper Filterung bei 45° resultieren allerdings daher, dass im Mittel die Samplingabstände enger sind als bei 90°. Das führt nicht zu Aliasing. Insofern sehe ich durchaus noch einen Widerspruch. Doch das AF-Thema gehört ja nicht zum eigentlichen Thema, was da den Füllratenverbrauch von 4x MSAA angeht.
MadManniMan
2004-06-15, 18:27:45
Stimmt, die Abstände sind nicht gleichmäßig, ich hatte einen Denkfehler, sry ;(
Warum redest du jetzt von AF? Es geht um die Kantenauflösung vom Multisampling, laß SS außen vor.
Wie im Anhang (4* laut ATi mit dem 12*12 Raster) gut zu sehen, sind die Abstände beim RG freilich teils größer, aber logischerweise auch ebenso kleiner. Man hat auf gleicher Fläche gleich viele Punkte, so daß im Mittel die Abstände eine halbe Pixelbreite betragen - wie auch beim OG.
Somit erfaßt RG nur andere Sachen... "bessere", nicht aber mehr. ;)
Banshee18
2004-06-15, 19:00:13
Zeckensack,
thx für die Erklärung.
Also braucht RGMSAA mehr Füllrate, da die Winkel, die eine Glättung besonders nötig haben, besser geglättet werden durch mehr farbliche Zwischenstufen. Die 45°-Winkel sind seltener und es können sowieso nur weniger Zwischenstufen berechnet werden. Richtig????????????????
mfg
Banshee
MMM, dein Bild ist für RGAA leider falsch.
Und, RG erfasst nicht nur andere Sachen, sondern insgesamt auch mehr.
Original geschrieben von Banshee18
Zeckensack,
thx für die Erklärung.
Also braucht RGMSAA mehr Füllrate, da die Winkel, die eine Glättung besonders nötig haben, besser geglättet werden durch mehr farbliche Zwischenstufen. Die 45°-Winkel sind seltener und es können sowieso nur weniger Zwischenstufen berechnet werden. Richtig????????????????~45°-Winkel werden mit 4x RG genau so oft, aber schlechter geglättet als mit 4x OG. Bei Kanten mit ~90°-Ausrichtung werden bei 4x RG mehr Pixel geglättet, als bei 4x OG.
GloomY
2004-06-15, 22:56:58
Nach allen Erklärungen von Xmas und aths muss ich gestehen, dass ihr Recht habt :D Bei mir war der Denkfehler derer, dass ich annahm, dass pro Pixel immer auch vier Samples im Dreiecks liegen. Dass solche, die nicht im Dreieck liegen, natürlich einfach aus dem Framebuffer ausgelesen werden und dementsprechend natürlich keine Füllrate benötigen, habe ich dabei glatt übersehen. :|
Und ja, ich bin ja schon ruhig ;)
Mr. Lolman
2004-06-15, 23:15:40
4xRG:
MadManniMan
2004-06-16, 00:26:02
Korrekt, aths ... und danke Lolman! Hier nun das richtige Raster, ich war fälschlicherweise dafür ausgegangen, daß das Muster einfach nur um die Mitte rotiert ist.
(ich hatte euch zu sehr geglaubt, hrrrr :D )
http://www.3dcenter.org/images/r420_benchmarks/aa-test_mode_xt_aa04.png
Aber dennoch will und kann ich nicht verstehen, warum mehr erfaßt wird ...wie denn?
Original geschrieben von MadManniMan
Aber dennoch will und kann ich nicht verstehen, warum mehr erfaßt wird ...wie denn? Weil die "abgedeckte Fläche" größer ist.
MadManniMan
2004-06-16, 13:17:49
Original geschrieben von aths
Weil die "abgedeckte Fläche" größer ist.
Mir will irgendwie nicht in den Kopf, daß die unbestrittenen Vorteile des rotierten Grids nicht auch dahingehend "Nachteil" mit sich bringen, daß an anderer Stelle an Füllrate gespart wird.
Thema tatsächliche Qualität: 4*RG ist natürlich vorzuziehen, jedoch gibt es genügend Standbildvergleiche, auf denen ich wirklich gut sehe, daß 4*OG eben auch Winkel hat, bei denen 4*RG abstinkt.
Original geschrieben von MadManniMan
Thema tatsächliche Qualität: 4*RG ist natürlich vorzuziehen, jedoch gibt es genügend Standbildvergleiche, auf denen ich wirklich gut sehe, daß 4*OG eben auch Winkel hat, bei denen 4*RG abstinkt. Es gibt letztlich mehr Winkel, wo RG besser als OG. "Zufällig" sind es dann noch vor allem die wichtigen Winkel.
MadManniMan
2004-06-16, 15:58:44
Original geschrieben von aths
Es gibt letztlich mehr Winkel, wo RG besser als OG. "Zufällig" sind es dann noch vor allem die wichtigen Winkel.
Tatsächlich bringen uns diese ganzen Überlegungen nur grob Richtung Glaubensfrage - ohne irgendwelche praktischen Erhebungen bleibt das Alles Theorie.
zeckensack
2004-06-16, 18:06:40
ahts,
wenn du so freundlich wärst, und mir anhand dieses simplistischen Beispiels zweier 4-Sample-Grids zeigen könntest, wo bessere Glättung mehr Füllrate kostet ... :|
Zähl nach, zecki.
OG: 11~12 Pixel haben mindestens ein Sample im Dreieck.
RG: 13~14 Pixel haben mindestens ein Sample im Dreieck.
Selbst wenn man Quads betrachtet, ist immer noch ein Vorteil da. Er ist aber, wie ich schon vorher schrieb, praktisch kaum vorhanden.
OG:
0000001223
0022222222
RG:
0000011123
0223333333
Demirug
2004-06-16, 18:23:47
Original geschrieben von Xmas
Zähl nach, zecki.
OG: 11~12 Pixel haben mindestens ein Sample im Dreieck.
RG: 13~14 Pixel haben mindestens ein Sample im Dreieck.
Du bist mal wieder zu schnell für mich: :D
Da ich mir die Mühe aber schon gemacht habe
Als Pixel:
0 0 0 0 0 0 X X X X = 4
0 0 X X X X X X X X = 8
----
12
0 0 0 0 0 X X X X X = 5
0 X X X X X X X X X = 9
----
14
Als Quads:
0 X X X X = 4
X X X X X = 5
zeckensack
2004-06-16, 18:33:05
Ja wenn ihr das so seht ... :kratz2:
Hätte ich vielleicht ein anderes Beispiel bauen sollen, um zu "gewinnen"? :bäh:
MadManniMan
2004-06-16, 18:59:49
Original geschrieben von zeckensack
Ja wenn ihr das so seht ... :kratz2:
Hätte ich vielleicht ein anderes Beispiel bauen sollen, um zu "gewinnen"? :bäh:
:abgel: Sofort ein neues Bildchen machen, Abmarsch! :freak: :bad3:
Original geschrieben von zeckensack
Ja wenn ihr das so seht ... :kratz2:
Hätte ich vielleicht ein anderes Beispiel bauen sollen, um zu "gewinnen"? :bäh: Es gibt mehr Fälle, wo RG mehr überdeckt, als Fälle wo OG mehr überdeckt.
MadManniMan
2004-06-16, 21:33:35
Original geschrieben von aths
Es gibt mehr Fälle, wo RG mehr überdeckt, als Fälle wo OG mehr überdeckt.
Tja, jetzt bitte den Beweis :)
Mr. Lolman
2004-06-17, 10:36:46
Original geschrieben von MadManniMan
Tja, jetzt bitte den Beweis :)
Das wäre genau der gleiche Beweis, warum winkelabhängiges AF trotz der viel schlechteren AF Blume, ein fast so tolles Bild wie FX-AF erzeugen kann.
Spielegeometrie ist halt eher horizontal/vertikal ausgerichtet, als 45°/diagonal. X-D
Und grad eben wegen der individuell Unterschiedlichen Geometrie kann man den Beweis nicht einfach in eine Formel pressen. Ma muss es halt glauben. Es hat auch lang genug gedauert, bis die 3DC Elite die Mär des guten b(r)i-AF bei schwachkontrastigen Texturen aufegriffen hat.
Winkelabhängigem AF wird immernoch nachgesagt dass es genausoviel Qualität vernichtet, wie es Speed bringt.
Nur vom subjektiven Standpunkt aus, ist das eigentlich auch falsch :grübel:
Original geschrieben von Mr. Lolman
Winkelabhängigem AF wird immernoch nachgesagt dass es genausoviel Qualität vernichtet, wie es Speed bringt.
[/i]
Das ist auch definitv so.
Original geschrieben von Mr. Lolman
Ma muss es halt glauben.
Sorry dass ich das jetzt so ausdrücken muss.
ABER WIR SIND HIER NICHT IN DER KIRCHE!
Auch wenn das manchmal hier so gehandhabt wird.
Ohne Begründung ist eine Behauptung einfach wertlos.Punkt.
Klar gibt es Spielen mehr horizontale und vertikale Linien. Aber der Anteil verringert sich immer mehr. Vorallem bei Spielen mit Landschaften und organischen Objekten bin ich mir da jetzt schon nicht mehr sicher welche Winkel überwiegen.
Original geschrieben von RLZ
Klar gibt es Spielen mehr horizontale und vertikale Linien. Aber der Anteil verringert sich immer mehr. Vorallem bei Spielen mit Landschaften und organischen Objekten bin ich mir da jetzt schon nicht mehr sicher welche Winkel überwiegen. 4x sparsed RG ist in jedem Fall besser als 4x OG.
Original geschrieben von MadManniMan
Tja, jetzt bitte den Beweis :) Hat Xmas schon gebracht.
Original geschrieben von aths
4x sparsed RG ist in jedem Fall besser als 4x OG.
Das hat Xmas ebenfalls schon widerlegt.
Betrachtest du obige Bildchen mal abschnittsweise.
Auszug daraus (fett markiert)
OG:
0000001223
0022222222
RG:
0000011123
0223333333
Quasar
2004-06-17, 13:31:40
Original geschrieben von aths
4x sparsed RG ist in jedem Fall besser als 4x OG.
Nicht in jedem. "sparsed" heißt AFAIK lediglich, daß sich weder horizontal noch vertikal zwei Pixel in ihrer vollen EER-Wirkung behindern.
edit:
Sorry, du hast ja "sparsed RG" geschrieben...
zeckensack
2004-06-17, 13:35:05
Original geschrieben von Gast
Das hat Xmas ebenfalls schon widerlegt.
Betrachtest du obige Bildchen mal abschnittsweise.
Auszug daraus (fett markiert)
OG:
0000001223
0022222222
RG:
0000011123
0223333333 "Mehr" ist hier nicht automatisch "besser". Sollte der fragliche Pixel deiner Meinung nach eher 1/4 Intensität haben, oder 1/2? Und warum?
Original geschrieben von zeckensack
"Mehr" ist hier nicht automatisch "besser". Sollte der fragliche Pixel deiner Meinung nach eher 1/4 Intensität haben, oder 1/2? Und warum?
Wenn "mehr" nicht automatisch besser ist, dann gilt doch auch nicht, das RG immer besser als OG ist??
MadManniMan
2004-06-17, 14:19:04
Original geschrieben von aths
Hat Xmas schon gebracht.
Tut mir leid aths, aber wo ich ihm einzig zustimmen kann, ist daß der Effekt - wenn überhaupt - akademischer Natur ist. Darum geht es hier jedoch!
Xmas schreibt, daß das aufgespannte Quadrat größer ist -> richtig, doch im Gegenzug sind die Gebilde zwischen den einzelnen Pixeln gestauchter, eben doch noch kleinerer Fläche, als die Quadrate beim OG. Richtig? :???:
...ich befürchte, wir kommen hier ohne Chip, der mal eben das Grid zwischen RG und OG wechseln kann nicht wirklich weiterkommen.
zeckensack
2004-06-17, 14:31:16
Original geschrieben von Gast
Wenn "mehr" nicht automatisch besser ist, dann gilt doch auch nicht, das RG immer besser als OG ist?? Es geht beim AA darum, ein möglichst präzises Abbild der theoretisch unendlich aufgelösten Geometrie zu erhalten.
"Exaktes Multisampling" wäre, wenn man sich ausrechnet, wieviel der Fläche, die man um ein Pixel-Quadrat aufspannt, vom aktuell gerenderten Dreieck belegt wird. Wenn das Dreieck zB 27,8% dieses Quadrats bedeckt, dann muss seine Farbe auch zu 27,8% in die finale Pixelfarbe einfliessen.
In der Praxis begnügt man sich eben mit Annäherungen, weil man einige Probleme der "exakten" Technik nicht mit vertretbarem Aufwand umgehen kann. Als aller erstes müsste es möglich sein, den Speicherplatz, den ein Pixel auf der Karte belegt, während des Renderingvorgangs frei und unbegrenzt zu verändern.
Wenn in einem Pixelquadrat zehn verschiedende Dreiecke sind, müsste man das auch speichern können. Wenn ein neues Dreieck innerhalb des Pixels nur einen Teil eines älteren Dreiecks überdeckt, braucht man, um das "exakt" zu handhaben, nicht nur die Flächeninhalte, sondern auch die genaue Lage aller Dreieckskanten, die durch die Pixel hindurchlaufen.
RGMS ist nicht perfekt. Es ist bei gleichem Aufwand präziser als OGMS, weil es den Flächeninhalt besser "einfängt", und diese Einfangfähigkeit pragmatisch verteilt (tendenziell stärkere Wirkung bei flachen Winkeln). Der Grund ist nicht der, dass es mehr Samples als "besetzt" markiert.
Ganz plumper Gegenbeweis:
Beachte nicht die grüne Fläche, sondern die schwarze Fläche. Dort erkennt das RGMS an der von dir benstandeten Stelle weniger Samples als belegt als das OGMS. Dh wenn ich mein Beispiel "andersrum" gezeichnet hätte, hättest du den gegenteiligen Schluss ziehen müssen.
Die Reihenfolge ist eben unwichtig. Die Kante gehört schliesslich zu beiden Flächen. Sie wird immer gleich gut geglättet, egal was "zuerst" da war.
Brillus
2004-06-17, 14:37:35
Bisschen weiter Theorie zum Theme wenn man die Subpixel als Eckpunkte eines Rechtecks auffasst bekommt man herraus das dies Rechteck bei OG 4/16 des Pixels belegt und bei RG(Sparsed) 5/16.
Daher kann man davon ausgehen das bei RG mehr kanten erwischt werden und das daher der Füllratenvebrauch höher ist.
MadManniMan
2004-06-17, 14:39:26
Original geschrieben von zeckensack
Ganz plumper Gegenbeweis:
Beachte nicht die grüne Fläche, sondern die schwarze Fläche. Dort erkennt das RGMS an der von dir benstandeten Stelle weniger Samples als belegt als das OGMS. Dh wenn ich mein Beispiel "andersrum" gezeichnet hätte, hättest du den gegenteiligen Schluss ziehen müssen.
:schlag: ROFL ;D
:bonk: Oh wie blöd! :freak2:
*hrrrrr* Nun athselchen, sach nomma wat :up:
/sry ;(
Es geht ja auch nicht um die Anzahl der Samples, sondern um die Anzahl der Pixel mit mindestens einem bedeckten Sample.
Bei OG kommt es einfach öfter vor, dass kein Sample bedeckt ist, obwohl eine Kante durch den Pixel verläuft. Gleichzeitig kommt es öfter vor, dass mehrere Samples bedeckt sind. Was daran liegt, dass die Samplepunkte bei RG weiter außen und bei OG näher zusammen liegen.
MadManniMan
2004-06-17, 20:53:55
Original geschrieben von Xmas
(...) Was daran liegt, dass die Samplepunkte bei RG weiter außen und bei OG näher zusammen liegen.
Das könnte es ja fast mal schaffen, mich zu überzeugen :grübel:
Original geschrieben von MadManniMan
*hrrrrr* Nun athselchen, sach nomma wat :up:
/sry ;( Nö. Mir ist es klar. Angesichts meiner aktuellen Arbeitsbelastung muss das vorerst reichen (für mich :)). Als Tipp empfehle ich http://www.3dcenter.org/artikel/anti-aliasing/index03.php ganz unten die Abbildung. Dann darüber nachdenken, wie sich die Wahrscheinlichkeit, die Kante überhaupt zu erwischen erhöht, wenn man mit 4x OG abtastet. Das Gedankenspiel dann mit 4x RG wiederholen.
Original geschrieben von MadManniMan
Tut mir leid aths, aber wo ich ihm einzig zustimmen kann, ist daß der Effekt - wenn überhaupt - akademischer Natur ist. Darum geht es hier jedoch!
Xmas schreibt, daß das aufgespannte Quadrat größer ist -> richtig, doch im Gegenzug sind die Gebilde zwischen den einzelnen Pixeln gestauchter, eben doch noch kleinerer Fläche, als die Quadrate beim OG. Richtig? :???:
...ich befürchte, wir kommen hier ohne Chip, der mal eben das Grid zwischen RG und OG wechseln kann nicht wirklich weiterkommen. NV40 :freak: kann 4x RGMS und 4x OGSS. Wäre rein für sowas ein Anfang. (D. h., sowohl NV40 als auch R300 könnten ebenfalls 4x OG. Wird nur sinnigerweise nicht angeboten.)
Kannst ja mal ein Programm schreiben welches die geglätteten Pixel zählt und dann eine Kante langsam um 45° rotieren lassen :)
MadManniMan
2004-06-24, 11:48:19
Nun, so langsam teile ich die Meinung, daß RG minimal mehr Füllrate kostet :kicher:
Nun, das mit deiner GT wäre eine Idee - nur bin ich des Proggens ... errm ... nicht wirklich mächtig :freak:
ZECKIIIIII, DEMIIIIIII, XMAAAAAAS ... proggen! :freak2:
Die ATi Linuxtreiber erlauben das einstellen der Samplepositionen.
MadManniMan
2004-06-27, 14:57:50
Original geschrieben von Coda
Die ATi Linuxtreiber erlauben das einstellen der Samplepositionen.
Tatsächlich? IIRC war das dann aber über Supersampling gelöst - oder irre ich mich da?
Aber selbst wenn - wenn sich jemand erbarmte, ein derartiges Analyseprogramm zu schreiben, wäre der Diskussion ein Ende gesetzt :eyes:
Nein, das ist Multisampling.
Was willst du denn analysiert haben? Ob rotated Grid Performance kostet?
Das wär ja relativ einfach zu lösen.
glxgears einmal mit rotated grid und einmal mit ordered grid laufen lassen.
Leider habe ich grad nur nen 64 bit Linux drauf und da gibt's keine ATi Treiber.
Aber meine Vermuting ist auch das es keinerlei Unterschied macht.
MadManniMan
2004-06-27, 15:49:03
Original geschrieben von Coda
Nein, das ist Multisampling.
Was willst du denn analysiert haben? Ob rotated Grid Performance kostet?
Das wär ja relativ einfach zu lösen.
glxgears einmal mit rotated grid und einmal mit ordered grid laufen lassen.
Leider habe ich grad nur nen 64 bit Linux drauf und da gibt's keine ATi Treiber.
Aber meine Vermuting ist auch das es keinerlei Unterschied macht.
glxgears wäre vielleicht wirklich eine Möglichkeit, aber tatsächlich wollten wir eine statistische Erhebung sehen, wieviel Pixel/Subpixel 4*OG und 4*RG im Schnitt bearbeit0rn.
Original geschrieben von Xmas
Füllrate wird verbraucht, wenn pro Pixel mindestens ein Sample bedeckt ist. Gehen wir mal davon aus, dass durch einen Pixel maximal eine Kante eines gegebenen Dreiecks läuft, sprich, dünne Polygone und Polygonecken lassen wir mal außen vor. Dann kommt es auf die Größe des durch die Samplepunkte innerhalb eines Pixels aufgespannten Quadrats an, wie viele Kantenpixel gefüllt werden müssen. Wären alle Samples in einem Punkt, müssen Kantenpixel (jeder Pixel durch den - unendlich genau betrachtet - eine Kante verläuft) in genau der Hälfte der Fälle gerendert werden. Lägen die Samples in den Ecken des Pixels, wäre das in 100% der Fälle notwendig. Da das aufgespannte Quadrat bei "Rotated Grid" tatsächlich größer ist (sein sollte) als bei "Ordered Grid", benötigt RG auch minimal mehr Füllrate. Das spielt aber praktisch keine Rolle.
Und wie würde diese Begründung für 2X aussehen? Da wird ja gar keine Fläche aufgespannt ...
Ist die aufgespannte Fläche von SG generell (also >4x) geringer als OG?
Original geschrieben von ram
Und wie würde diese Begründung für 2X aussehen? Da wird ja gar keine Fläche aufgespannt ...... aber eine Strecke, die man nur zu treffen braucht :)
Original geschrieben von ram
Und wie würde diese Begründung für 2X aussehen? Da wird ja gar keine Fläche aufgespannt ...
Ist die aufgespannte Fläche von SG generell (also >4x) geringer als OG?
Die Fläche habe ich eigentlich nur zur Verdeutlichung genannt, warum das so ist. Letztlich kommt es auf die Wahrscheinlichkeit an, dass eine Polygonkante durch ein Pixel verläuft und dabei mindestens ein Sample bedeckt wird.
Wenn man nur einen Samplepunkt hat, dann ist die Wahrscheinlichkeit dass dieser bedeckt ist in Fällen in denen genau eine Kante an beliebiger Stelle durch den Pixel verläuft, genau 0,5.
Gedankenexperiment dazu: man stelle sich ein Quadrat vor, mit einem Punkt an irgendeiner Stelle. Dann zieht man zufällig eine Linie durch das Quadrat, und färbt die Fläche auf einer Seite der Linie(zufällig gewählt) ein. Die Gesamtwahrscheinlichkeit, dass der Punkt in der eingefärbten Fläche landet, ist genauso groß wie die dass er in der nicht eingefärbten Fläche landet.
Ist der Punkt dazu noch exakt in der Mitte des Quadrats, so ist dadurch zusätzlich noch gegeben, dass die Fläche, in der der Punkt liegt, die größere ist.
Führt man nun dieses Gedankenexperiment mit mehreren Punkten weiter, so kann man verschiedene Fälle ausprobieren:
Liegen alle Punkte sehr dicht beieinander, so steigt die Wahrscheinlichkeit, dass mindestens einer in der gefärbten Fläche liegt, nur minimal.
Liegt dagegen jeweils ein Punkt in jeder Ecke des Quadrats, wird immer mindestens einer davon in der gefärbten Fläche. Denn man kann keine gerade Linie durch ein Quadrat ziehen, ohne dass man auf beiden Seiten der Linie Ecken des Quadrats findet.
Geht man das Gedankenexperiment weiter, so kann man sich vorstellen dass die Punkte ein konvexes Polygon aufspannen, und es zwei Arten von Linien gibt: jene die dieses Polygon schneiden und jene die es nicht tun.
Bei der ersten Art ist die Wahrscheinlichkeit dass mindestens ein Samplepunkt bedeckt ist gleich 100%, denn es gibt auf beiden Seiten der Linie Samplepunkte. Bei der zweiten Art ist sie 50%, denn Samplepunkte liegen nur auf einer Seite der Linie.
Die Wahrscheinlichkeit dass mindestens ein Samplepunkt in einem Kantenpixel bedeckt wird, ist also, bildlich gesprochen, eine Funktion davon, wie vielen Linien aus allen Richtungen das konvexe Polygon der Samplepunkte "den Weg versperrt".
Dann hätte also das hypothetische Muster rechts den geringeren Füllratenbedarf als das OG-Muster links?
Original geschrieben von ram
Dann hätte also das hypothetische Muster rechts den geringeren Füllratenbedarf als das OG-Muster links? Wenn alle Winkel gleichmäßig oft vorkämen, imo ja.
Womit die Frage im Thread-Titel prinzipiell beantwortet wär. Höhere "EER" kostet nicht zwingend Geschwindigkeit.
Demirug
2004-07-07, 10:40:19
Original geschrieben von ram
Womit die Frage im Thread-Titel prinzipiell beantwortet wär. Höhere "EER" kostet nicht zwingend Geschwindigkeit.
Ja, weil ein höheres "EER" ja auch nicht zwingend eine bessere Kantenglätung bringt.
Obiges rechtes Muster bringt IMO eine "bessere" Kantenglättung als links, kostet aber trotzdem nicht mehr Leistung.
Demirug
2004-07-07, 11:28:19
Original geschrieben von ram
Obiges rechtes Muster bringt IMO eine "bessere" Kantenglättung als links, kostet aber trotzdem nicht mehr Leistung.
Dieser Aussage kann ich mich aber nicht anschliessen. Das linke Muster erkennt ja keine horizontalen Kanten das rechte dagegen schon. Dort wo es aber eine horizontale Kante glättet müssen für den Pixel auch zwei Samples errechnet werden.
Bei einem 2xAA wird ein besseres ERR immer zu einem Leistungsverlust führen wenn dadurch die Qualität besser wird. Sobald wir aber mehr als 2xAA haben kann ein besseres EER auch dazu führen das nur die Gewichtung der Kante sich verändert. Dann kostet es keine zusätzliche Leistung. Sobald das bessere EER aber dazu führt das auch mehr Kanten geglättet werden müssen auch mehr Samples berechnet werden.
Original geschrieben von ram
Womit die Frage im Thread-Titel prinzipiell beantwortet wär. Höhere "EER" kostet nicht zwingend Geschwindigkeit. Ich präzisiere: Ein "full sparsed"-Muster mit höherer EER (für die gegebene Subpixelzahl eine optimale EER-Ausnutzung) kostet immer mehr Leistung, als eine "sinnvolle" (möglichst gleichmäßig wirkende) OG-Variante.
Original geschrieben von Demirug
Dieser Aussage kann ich mich aber nicht anschliessen. Das linke Muster erkennt ja keine horizontalen Kanten das rechte dagegen schon. Dort wo es aber eine horizontale Kante glättet müssen für den Pixel auch zwei Samples errechnet werden.
Wir haben drei Aussagen:
1) Muster Rechts kostet bei gleich verteilten Kanten weniger oder gleich viel Leistung als Muster Links
2) Muster Rechts bietet höhere EER als Muster Links
3) Muster Rechts bietet "bessere" Kantenglättung als Muster Links
Xmas Erklärung - die bisher einzige wirkliche Erklärung in diesem Thread - stützt 1). Und über 2) sind wird uns ja einig, oder?
Bliebe Punkt 3? Ich denke, da kommst du speziell mit Aths in Konflikt, wenn du diesen bestreitest ... ;-)
Demirug
2004-07-07, 20:18:47
Bei 2 und 3 sind wir uns einig. Bei 1 bin ich aber anderer Meinung.
Zuerst sollten wir aber die Frage einmal umformulieren:
Führt ein höheres EER dazu das Dreiecke eine grössere Pixelfläche bedecken?
Mehr Pixel pro Dreieck würde ja einen grösseren Fillrateverbrauch für ein Dreieck bedeuten.
Nehmen wir uns nun die DX Rasterregeln so gilt das der Mittelpunkt bedeckt sein muss.
Wenn wir jetzt die horizontale Achse betrachten dann muss ein Dreieck beim linken Muster mindestens 50% der Pixelfläche bedecken damit der Pixel relevant wird. Beim rechten Muster sind es nur 25%. Die wahrscheinlichkeit das ein Dreieck um 25% in den Pixel reicht ist höher als die das 50% erreicht werden. Bei der vertikalen macht es keinen unterschied dort sind es in beiden fällen 25%.
Original geschrieben von Demirug
Wenn wir jetzt die horizontale Achse betrachten dann muss ein Dreieck beim linken Muster mindestens 50% der Pixelfläche bedecken damit der Pixel relevant wird. Beim rechten Muster sind es nur 25%. Die wahrscheinlichkeit das ein Dreieck um 25% in den Pixel reicht ist höher als die das 50% erreicht werden. Bei der vertikalen macht es keinen unterschied dort sind es in beiden fällen 25%.
Dabei machst du den Fehler, eben jenen besonders "guten" Fall für das Muster rechts gar nicht zu betrachten, also den 45°-Winkel.
Wenn p(w) die Wahrscheinlichkeit sei, dass eine Linie mit Winkel w das konvexe Polygon der Samplepunkte schneidet, dann ist die Gesamtwahrscheinlichkeit gleich
Integral(0° bis 180°) [ p(w) * dw ] / 180
Banshee18
2004-07-07, 22:13:47
Ich präzisiere: Ein "full sparsed"-Muster mit höherer EER (für die gegebene Subpixelzahl eine optimale EER-Ausnutzung) kostet immer mehr Leistung, als eine "sinnvolle" (möglichst gleichmäßig wirkende) OG-Variante.
Womit die Frage im Thread-Titel prinzipiell beantwortet wär. Höhere "EER" kostet nicht zwingend Geschwindigkeit.
Also da ihr euch anscheinend nicht einig werdet, kann man nicht wirklich ein Progrämmchen machen, das uns die Lösung zeigt?
Ja, weil ein höheres "EER" ja auch nicht zwingend eine bessere Kantenglätung bringt.
Aber doch in den meisten Fällen, oder?
Ailuros
2004-07-17, 05:19:15
Frage: wuerde man die Logik fuer die jeweils 2x sample loops beim AA so modifizieren dass es keinen Leistungsverlust bringt (zumindest mit 4x AA), wuerde das nicht eher helfen die Frage hier zu beantworten?
Momentan sieht es so aus als ob (zumindest bei NV4x) man pro loop etwa 15% an Leistung im schlimmsten Fall einbussen muss. Auf NV3x waren aber diese Relationen ganz anders....
Original geschrieben von Banshee18
Aber doch in den meisten Fällen, oder? Sofern die EER sparsed nach meiner Definition (bestmögliche EER-Verteilung im Pixel) realisiert wird, und zusätzlich eine "sinnvolle" Maske gewählt (möglichst gleichmäßiger Abstand zum jeweilig nächsten Subpixel, möglichst gute Gesamtabdeckung des Pixels) ist die höhere EER grundsätzlich vorzuziehen.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.