PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Diskussion zum Artikel "Anti-Aliasing und anisotroper Filter der GeForceFX"


Leonidas
2002-11-20, 17:33:22
Klick mich. (http://www.3dcenter.org/artikel/2002/11-20_a.php)

Demirug
2002-11-20, 17:59:13
Die GeForceFX mit ihren 8 Pipelines kann wieder 8 (allerdings schon trilineare) Samples pro Taktzyklus erzeugen. Da pro GeForceFX-TMU aus nur einer Textur gesampelt werden kann, muss für "single clock trilinear filtering" eine spezielle "fast trilinear"-Methode verwendet werden, welche sozusagen "on the fly" aus der aktuellen MIP-Map die nächstkleinere Stufe generiert. Weil hierfür pro Pixel gleich 16 ungefilterte Texel aus der Textur gebraucht werden, ist der Einsatz von "fast trilinear" nicht immer möglich, sondern beispielsweise auf Texturkomprimierung angewiesen. Ansonsten wäre für eine trilineare Filterung jede GeForceFX-Pipeline gleich zwei Takte beschäftigt (Nochmals Danke an Xmas).

Woher stammt den die Information das die die GeforceFX TMU (über die ja niemand von NVIDIA richtig auskunft geben will) die 8 Werte nur aus einer Mip-Map Stufe filtern kann? Denn die folgende Aussage von Geoff Ballew deckt sich damit überhaupt nicht

No, you're limited to 8 textures applied per clock. However, we can do addressing for 16 textures at any one time. So even though you can only rigidly apply 8 per clock, you can line up the next 8 then apply them in the next clock. So that level of flexibility is very important as we move to procedural shading and sophisticated shader programs, so they key thing is how many textures can you queue up and address and how quickly can you apply them in a shader program.

i_Land
2002-11-20, 18:02:29
Schade schade.
Ob Nvidia nicht wieder ein bischen zu viel schummelt.

Der Artikel ist wieder ausführlich und gut gelungen.
Wie hoch stehen die Chancen das wir noch nicht alles von Nvidia wissen und sich die Dinge ändern ???

aths
2002-11-20, 18:02:50
Demi, du zitierst selbst:So even though you can only rigidly apply 8 per clock, you can line up the next 8 then apply them in the next clock. Habe ich das falsch interpretiert?

Demirug
2002-11-20, 18:48:06
Originally posted by aths
Demi, du zitierst selbst: Habe ich das falsch interpretiert?

Ich denke ja.

Geoff Ballew: "However, we can do addressing for 16 textures at any one time"

Es können also bei jedem Takt 16 Texturenzugriffe gestartet werden. Vermutlich 2 pro Pipe aber da bin ich nicht sicher.

Geoff Ballew: "No, you're limited to 8 textures applied per clock" und "So even though you can only rigidly apply 8 per clock"

pro Takt lassen sich aber nur 8 gesampelte Werte von den Pixelshader übernehmen. Also einer pro Pipeline.

Geoff Ballew: " you can line up the next 8 then apply them in the next clock"

Die TMUs (oder was auch immer) ist also in der Lage werte die nicht sofort vom Pixelshader übernommen werden könne zwischen zu speichern.

Die Frage ist jetzt natürlich was das soll. 16 Texturen addressieren aber nur 8 Werte davon im gleichen Takt zu nutzen macht auf den ersten blick nicht viel Sinn. Stellen wir uns jetzt aber mal einen proceduralen Shader vor der 2 bi samples S1,S2) und ein tri-af sample (S3) braucht. gehen wir mal von 2x af aus was 4 bi samples ergibt.


TMU1 TMU2 Output
S1 S2 S1
S3.1 S3.2 S2
S3.3 S3.4 S3


Spart einen Takt das ganze. Möglicherweise sind da noch optimierungsmöglichkeiten vorgesehen. Da die TMUs ja irgendwie von der Pipe entkoppelt sein sollen.

Xmas
2002-11-20, 18:51:27
Originally posted by Demirug
Woher stammt den die Information das die die GeforceFX TMU (über die ja niemand von NVIDIA richtig auskunft geben will) die 8 Werte nur aus einer Mip-Map Stufe filtern kann? Denn die folgende Aussage von Geoff Ballew deckt sich damit überhaupt nicht

Das war eigentlich nur eine Vermutung von mir und das mit der TC trifft für die Kyro-Chips zu. Ich nehme an dass ein solcher "Fast Trilinear" Modus existiert, aber nur mit der "agressive Filtering" Einstellung verfügbar ist.

Endorphine
2002-11-20, 19:49:32
Sehr guter Artikel :)
Genau die zusammenfassende Aufklärung aller Informationen, die ich mir gewünscht habe.

aths
2002-11-20, 20:24:41
Was der Artikel übrigens nicht enthält, ist sind die Alternativen. Sowohl 6xS als auch 8x könnten auch simpler (schlechter) gelöst worden sein, und würden ebenfalls keine der offiziellen Aussagen widersprechen, sondern sie durchweg einhalten.

Allerdings hoffe ich doch sehr, dass nVidia bei einem Nex-Gen-Chip lieber zur Qualität greift. Es gibt auch Gründe, die dafür (für die Qualität) spechen: Selbst die "schlechte" 6xS-Variante wäre noch besser als die "schlechte" 8x-Variante! Es ist wohl kaum davon auszugehen, dass nVidia solche Faxen macht.

Demirug
2002-11-20, 20:49:32
mal eine Frage am Rande aths:

Glaubst du das die Ausrichtung und Abstände der AA-Samplepunkte zum dazugehörigen Textursample punkte zwangsläufig für alle Textur-Sampels die pro Pixel erzeugt werden immer gleich sein müssen, oder hälst du es für möglich das im Trisetup variationen möglich sind?

aths
2002-11-20, 21:15:09
Originally posted by Demirug
mal eine Frage am Rande aths:

Glaubst du das die Ausrichtung und Abstände der AA-Samplepunkte zum dazugehörigen Textursample punkte zwangsläufig für alle Textur-Sampels die pro Pixel erzeugt werden immer gleich sein müssen, oder hälst du es für möglich das im Trisetup variationen möglich sind? Darüber habe ich mir nie ernsthaft 'ne Birne gemacht. Ich denke mal, dass ein globaler Shift relativ einfach ist, siehe die Verschiebung von HRAA zu AccuView. ram äußerte sich im b3d-Forum recht zuversichtlich, dass man das, würde man es wollen, auch auf der GF3 hinkriegen könnte.

Demirug
2002-11-20, 21:35:27
Ein paar Vorschläge meinerseits zum 6xS AA.

Meinungen erwünscht.

aths
2002-11-20, 21:45:22
Originally posted by Demirug
Ein paar Vorschläge meinerseits zum 6xS AA.

Meinungen erwünscht. Ich sehe keine Möglichkeit, Bild 2 und 3 mit HRAA-Mitteln zu realisieren.

Bild 2 scheint ein Blur-Modus zu sein?

Demirug
2002-11-20, 21:52:51
Originally posted by aths
Ich sehe keine Möglichkeit, Bild 2 und 3 mit HRAA-Mitteln zu realisieren.

Bild 2 scheint ein Blur-Modus zu sein?

Alle Varianten würden wohl nur minimale Änderungen am Trisetup und den AA-Samplern des NV25 erfordern. Da wir in dieser Beziehung nichts von NV30 wissen gestehe ich NVIDIA jetzt mal zu das sie diese änderungen gemacht haben.

Wieso Blur?. Pro Pixel 6 AA-Samples aus 2 Texturesamples. Die AA-Samples werden immer nur für einen Pixel benutzt.

pump
2002-11-20, 22:52:41
3dcenter!
danke mal wieder für einen superausgefixten artikel. seit ich eure seite kenne, schau ich regelmässig rein. weil, ihr macht den blossen benchjunk nicht mit, sondern erklärt auch, woraufs (eigentlich) ankommt.
auch wenn die zeit in anbtracht der neuen spiele wohl vorbei ist, ist es doch verrückt, dass die voodoo5 (meines erachtens) im grunde der knüller war, weil, zu der zeit alles spielbar war - und das mit einer sichtbar besssern bildqualität (ich fand zumindest damals bei meiner v5 das 2xAA deutlich besser, als alles was ich auf gforce 2-3 - auch mit schnelleren cpu's gesehen habe). die v5 jetzt natürlich klar zu langsam und ich hab ich jetzt ne geforce4 - schöner ist es aber noch nicht, weil mehr als 2XQuinx auch keinen sinn machen, wenns wirklich hektisch wirkt (grosse unterschiede sieht man eh nicht)... und wenn ati jetzt den qualitätspart übernimmt. why not. dann das nächtse mal ati . . .
danke jedenfalls.
pump

aths
2002-11-21, 00:04:44
Originally posted by Demirug
Wieso Blur?. Pro Pixel 6 AA-Samples aus 2 Texturesamples. Die AA-Samples werden immer nur für einen Pixel benutzt. Ich zweifle, dass es einen 3x-Modus gibt.

Oder missverstehe ich dich die ganze Zeit?

Demirug
2002-11-21, 00:12:16
Originally posted by aths
Ich zweifle, dass es einen 3x-Modus gibt.

Oder missverstehe ich dich die ganze Zeit?

Ich glaube ja. Das sollen alles 6x Modie sein.

Quasar
2002-11-21, 00:27:31
Du erzeugst aber 3 Multisamples aus jedem Supersample (zumindest in den ersten beiden Bildern).

Demirug
2002-11-21, 07:39:36
Originally posted by Quasar
Du erzeugst aber 3 Multisamples aus jedem Supersample (zumindest in den ersten beiden Bildern).

Ja und? Ich habe nirgends gelesen das jemand von NVIDIA gesagt hat wie hoch der Supersample Anteil bei dem 6x Modus ist.

Quasar
2002-11-21, 13:28:08
Nein, aber aths scheint von einem 2:1 Verhältnis des MS ggü. dem SS auszugehen.

Demirug
2002-11-21, 13:38:20
Originally posted by Quasar
Nein, aber aths scheint von einem 2:1 Verhältnis des MS ggü. dem SS auszugehen.

Aber ich sehe das nicht als zwangsläufig. Wäre doch schade um die ungenutzten AA Einheiten, oder?. Und bitte jetzt keine Argumente im Sinne von: "Das war aber schon immer so".

3:1 gefällt mir aber besser weil es weniger einbruch verursachen wird. Möglicherweise geht NVIDIA ja sogar noch weiter und benutzt alle AA-Einheiten auch im 6x Modus. Also nicht 2 Supersample pro Pixel sondern nur 1,5.

aths
2002-11-21, 13:45:57
Originally posted by Demirug
3:1 gefällt mir aber besser weil es weniger einbruch verursachen wird. Möglicherweise geht NVIDIA ja sogar noch weiter und benutzt alle AA-Einheiten auch im 6x Modus. Also nicht 2 Supersample pro Pixel sondern nur 1,5. Möglich wäre das natürlich. Dann hätte man aber nur eine EER von 2x3.

Ich bin sehr sicher, dass der NV30 wieder entweder 2x RG oder 4x OG MS beherrscht, und in der Kombination mit (OG!) Supersamling lieber mit RG-MS arbeitet, weil OG + OG eben so ineffizient ist.

Mit flexiblerer AA-Engine wären ohnehin andere, "bessere" Modi denkbar.

Quasar
2002-11-21, 13:56:51
Originally posted by Demirug
Aber ich sehe das nicht als zwangsläufig. Wäre doch schade um die ungenutzten AA Einheiten, oder?. Und bitte jetzt keine Argumente im Sinne von: "Das war aber schon immer so".

Nein, seh' ich auch so. Warum nicht 2xSS (welches Füllratentechnisch absolut "drin" sein sollte) nicht mit 4xMS kombinieren (welches ja lt. nV 4free ist)?

Ginge sowas? wobei existierende Multisamples bandbreitensparend für's Supersampling recycled werden könnten, man würde "nur" die Füllrate halbieren:

Demirug
2002-11-21, 13:59:06
"Möglich wäre das natürlich. Dann hätte man aber nur eine EER von 2x3."

Wie kommst du auf 2x3?

Meine erste Variante hätte 3x4 und die beiden anderen 4x4.

aths
2002-11-21, 14:17:43
Originally posted by Quasar
Ginge sowas? wobei existierende Multisamples bandbreitensparend für's Supersampling recycled werden könnten, man würde "nur" die Füllrate halbieren: Das Bild, was du gemalt hast, wurde im Artikel auch erwähnt :)
Originally posted by 3dc-Artikel Seite 2
Der 8xS-Modus wäre auch über einen anderen Weg erreibar, nämlich über zwei ineinander versetzte herkömmliche 4x "ordered grid" Multisampling Muster. Jener wäre natürlich schöner als die 6xS-Variante, zusätzlich wegen des geringeren Supersampling-Anteils sehr wahrscheinlich auch schneller. Weil es den 6xS-Modus aber gibt, schlussfolgern wir, dass beim 8x-Anti-Aliasing der ineffektivere Weg des höhere Supersampling-Anteils gewählt wurde. Dieser ist treiberseitig auch sehr viel einfacher zu erreichen.

Dieser "effizientere" Modus kommt auf keinen Fall mehr mit 4 MS-Buffern aus. Stimmt meine Theorie, dann wurde das NV30-AA "zu früh" definiert, als man mit ATIs ausgefuchsten Methoden noch nicht gerechnet hat. Bei einem Neudesign des AA-Subsystems wäre u.a. sicherlich auch 4x RGMS möglich gewesen. (Beweisen kann ich das natürlich nicht, deshalb sind auch z.B. Demirugs ständige Einwände in jedem Fall berechtigt.)

aths
2002-11-21, 14:20:21
Originally posted by Demirug
"Möglich wäre das natürlich. Dann hätte man aber nur eine EER von 2x3."

Wie kommst du auf 2x3?

Meine erste Variante hätte 3x4 und die beiden anderen 4x4. Ja.

Aber 4x OG MS + 1x1.5 OGSS brächte nur 2x3. Wenn man den 4x-Modus nutzt, so gehe ich davon aus, dass 4x bei nV immer OG ist.

Gerade weil deine letzen 6x-Modi eine EER von 4x4 haben bezeifle ich, dass sie eingesetzt werden. 8x "an ordered grid" wird 4x4 wohl kaum übertreffen können. (OK, der schwache Punkt dieser Argumentation ist, dass nV auch 4x OG neben 2x RG bietet. Bei Spielen wie WC3 oder AoM profitiert man von 4x OG-Modus allerdings sichtlich, jedenfalls wenn man so treppen-empfindlich ist, wie ich.)

Quasar
2002-11-21, 14:27:37
Originally posted by aths
Das Bild, was du gemalt hast, wurde im Artikel auch erwähnt :)

Stimmt. Dabei habe ich extra nochmal in den Artikel geschaut, ob das Muster schon drin ist....diesmal hab ich aber nur auf die Bilder geachtet. :)

Gast-der ***ste
2003-07-21, 15:17:12
Tag,

wie definiert man eigentlich AA?
kantenverschwommenheit durch halbe pixel oder kantenverwaschung durch halb-pixel oder wie? :-)

aths
2003-07-24, 02:10:58
Original geschrieben von Gast-der ***ste
Tag,

wie definiert man eigentlich AA?
kantenverschwommenheit durch halbe pixel oder kantenverwaschung durch halb-pixel oder wie? :-) "Halbe Pixel" gibt es nicht, das Pixel ist die kleinste darstellbare Einheit.

Die Kanten sollen durch AA nicht verschwommen sein, das wäre ja ein Unschärfe-Filter. Die Kanten sollen mit AA glatter sein, weniger treppig, und in Bewegung weniger flimmern, jedoch nicht unscharf.

betasilie
2003-07-24, 02:31:56
Original geschrieben von Gast-der ***ste
Tag,

wie definiert man eigentlich AA?
kantenverschwommenheit durch halbe pixel oder kantenverwaschung durch halb-pixel oder wie? :-)
Die Pixel an den Polygonrändern bekommen Mischfarben, die aus den Farben der Subpixel errechnet werden. Jedes Pixel hat eine bestimmte Anzahl und Position Subpixel, je nach Antialiasingmode. Dadurch ist die Kante nicht so "treppig" und der Übergang wirkt gerader, aber halt nicht unscharf, wie es Aths auch schon sagte.

Bei den Unschärfen Effekten gibt es Schärfentiefe-Effekte und Bewegungsunschärfe-Effekte. Das hat aber nicht mit den Polygonrändern zu tun und bezieht sich auf ganze Objekte oder auf bestimmte Tiefenbereiche (Z-Achse) des Raums.

Gast der ***ste
2003-07-25, 14:46:41
also könnte man das nicht allegemein als unscharf machen bezeichenen?
dank erstmal! :-D

aths
2003-07-25, 18:39:38
Original geschrieben von Gast der ***ste
also könnte man das nicht allegemein als unscharf machen bezeichenen?Nein.

betasilie
2003-07-26, 03:38:07
Original geschrieben von Gast der ***ste
also könnte man das nicht allegemein als unscharf machen bezeichenen?
dank erstmal! :-D
Vielleicht könnte man sagen, dass man die Treppchen unscharf mach? *duck und weg*