PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Splitt aus: Wie schnell schätzt ihr .../Anti-Aliasing und Co


Mr. Lolman
2006-12-16, 12:33:23
Tja die V5 6000 kam jedoch nie. Guess what: das hatte auch seine Gründe. Das Teil konnte kein GF2 Ultra Konkurrent sein, weil es einfach zu teuer und zu groß war. Das war einfach nicht marktgerecht. Zu ähnlichen Kosten hätte NV auch eine Dual NV15 bauen können (sie waren wie 3dfx clever genug zu wissen, dass das niemals von den Kosten klappen kann). Nur weil ein IHV so verrückt war und die Idee erwogen hatte, 4 Chips auf eine Karte zu bauen, ist das noch lange keine Meisterleistung.
Hui wenn ich heute 4x G80 auf eine Karte klebe...dann wird es vermutlich auch ein paar Jahre dauern, bis ein SingleChip die Leistung erreicht.

Ich weiß nicht, was daran so aufregend sein soll.

Dafür hatte das ein paar andere Nebeneffekte: Bis heute unerreichte AA Qualität (oder zeig mir mal einen Modus der aufs gesamte Bild min ein 8x8 EER) erreicht, T-Buffer Effekte, hohe Geschwindigkeit....

Klar damals warens verrückt - und heute baut NV eine 7900GX2 eine Dualchip Karte, die auf der gleichen Baulänge wie von der Voodoo5 nur eine GPU unterbringen konnte. Highendjunkies haben heutzutage auch Quadcores und QuadSLi. Was ist so verkehrt daran, dass 3dfx das vor 6 Jahren schon gepackt hat?

BTW: Ich glaub nicht, dass es so einfach ist 4 G80 auf ein Board zu kleben ;)
BTW2: Ich weiss, dass sich NV an der GF2 Ultra ne goldene Nase verdient hat, aber ursprünglich wär sichs ausgegangen, die Voodoo5 6000 gegen eine GF2 Ultra positionieren. Die Voodoo5 5500 konnte man ja auch günstiger als ne GF2 GTS verkaufen...

Gast
2006-12-16, 14:35:57
Dafür hatte das ein paar andere Nebeneffekte: Bis heute unerreichte AA Qualität (oder zeig mir mal einen Modus der aufs gesamte Bild min ein 8x8 EER) erreicht,

braucht auch kein mensch, der G80 bietet ein 16x16EER auf polygonkanten und 8x8EER auf alpha-tests und zieht damit in jeder beziehung mindestens gleich.

dazu gibt es sehr gutes 16xAF, was supersampling für texturen gänzlich unnotwendig macht.

Raff
2006-12-16, 14:39:04
Nicht gänzlich, aber ziemlich. Man denke an Flimmertexturen, Bump-Maps & Co. Aber nun rechne mal nach: Wie viele Jahre hat das doch gleich gedauert?

MfG,
Raff

Gast
2006-12-16, 14:59:22
Nicht gänzlich, aber ziemlich. Man denke an Flimmertexturen, Bump-Maps & Co. Aber nun rechne mal nach: Wie viele Jahre hat das doch gleich gedauert?



theoretisch wäre es auch schon früher möglich 8xSGSSAA zu bieten, nur nicht sinnvoll, und wie lange hat es gedauert bis die V6 6000 den markt erreicht hat? von daher hat NV dieses ziel schneller erreicht ;)

gegen "richtige" flimmertexturen ist auch SSAA machtlos, es verschiebt sich zwar weiter nach hinten aber wirklich klein bekommt man das ganze nicht. bump-maps verursachen normalerweise kein flimmern, es werden ja mipmaps verwendet. was flimmern verursacht sind höchstens specularmaps, und dafür gibt es shader-antialiasing, was sich zusammen mit SM3+ hoffentlich durchsetzen wird.

robbitop
2006-12-16, 16:38:17
Stimmt, daran dachte ich nicht. Auf jeden Fall sehr schade, dass dies nicht in reiner Form im Treiber angeboten wird.
Die möglichen Modi sind allerdings nicht so hoch wie es bei der Voodoo5 6000 der Fall ist.
G80 könnte 8xSGSSAA und R600 vermutlich 12xSGSSAA. Davon abgesehen würde mir 4x SGSSAA schon ausreichen.

Gast
2006-12-16, 16:40:08
G80 könnte 8xSGSSAA und R600 vermutlich 12xSGSSAA. Davon abgesehen würde mir 4x SGSSAA schon ausreichen.

der G80 könnte theoretisch auch 24xSGSSAA alá 3dFX, sinnvoll ist es trotzdem nicht.

robbitop
2006-12-16, 17:39:50
der G80 könnte theoretisch auch 24xSGSSAA alá 3dFX, sinnvoll ist es trotzdem nicht.
Nö, das Raster des Trisetup setzt ein Limit bei 16x SGSSAA.

Gast
2006-12-16, 18:09:54
Nö, das Raster des Trisetup setzt ein Limit bei 16x SGSSAA.

für SGSSAA alá 3dfx wird die ganze renderpipeline mehrfach durchlaufen, sprich es werden X komplette bilder gerendert (X= FSAA-grad), die dann miteinander verrechnet werden.

der grafiktreiber könnte gut und gerne der karte sagen jedes frame vor der ausgabe x-mal zu rendern, wobei jedes mal ein anderes geometry-offset verwendet wird und anschließend die bilder miteinander verrechnen. das ganze muss natürlich noch in den VRAM passen. (theoretisch wäre es evtl. sogar denkbar nachdem man 2 frames gerendert hat diese zu verrechnen und erst dann mit dem nächsten zu beginnen, wieder verrechnen, und weiter mit dem nächsten frame, so könnte man auch noch das VRAM-limit entschärfen)

das Tri-setup kann nicht limitieren, da bei jedem renderdurchgang nur 1 subpixel gerendert wird.

Mr. Lolman
2006-12-16, 18:33:23
braucht auch kein mensch, der G80 bietet ein 16x16EER auf polygonkanten und 8x8EER auf alpha-tests und zieht damit in jeder beziehung mindestens gleich.

dazu gibt es sehr gutes 16xAF, was supersampling für texturen gänzlich unnotwendig macht.

Auf Alphatests, ja. Allerdings gibts (neben Shaderflimmern, was aber eine Voodoo5 ja garnicht produzieren kann ;)) auch "pseudo"-Alphatests, die nicht mit TSSAA/AAA geglättet werden. Auf ATi Karten muss man dafür ASBT aktivieren, bei NV Karten ist mir keine Lösung bekannt.

Das Tor von der Hitman:Bloodmoney Demo ist zB so ein Fall. Oder jedes OpenGL-Spiel, wo TSSAA/AAA bekanntermassen ja nicht funktioniert.


Ok, das hängt natürlich von der Auflösung ab. Wenn man 1024x768 aber als Standardauflösung sehen würde, würde die Leistung imho längst nicht immer reichen.

Kommt auch wiederum drauf an. Man kann festhalten, dass auf der Voodoo5 5550 1024x768x22 mit 2xAA oft nur ein wenig langsamer war als 1024x768x32. D.h. da, wo man 1024x768x32 fahren konnte (und das war bei jedem Spiel der Fall) konnte man meist auch 1024x768x22 und 2xAA aktivieren...

robbitop
2006-12-16, 20:06:43
für SGSSAA alá 3dfx wird die ganze renderpipeline mehrfach durchlaufen, sprich es werden X komplette bilder gerendert (X= FSAA-grad), die dann miteinander verrechnet werden.

der grafiktreiber könnte gut und gerne der karte sagen jedes frame vor der ausgabe x-mal zu rendern, wobei jedes mal ein anderes geometry-offset verwendet wird und anschließend die bilder miteinander verrechnen. das ganze muss natürlich noch in den VRAM passen. (theoretisch wäre es evtl. sogar denkbar nachdem man 2 frames gerendert hat diese zu verrechnen und erst dann mit dem nächsten zu beginnen, wieder verrechnen, und weiter mit dem nächsten frame, so könnte man auch noch das VRAM-limit entschärfen)

das Tri-setup kann nicht limitieren, da bei jedem renderdurchgang nur 1 subpixel gerendert wird.

Nur muss dieses Offset auf dem Raster des Trisetups liegen. Und dieses ist nunmal nur 16x16. Damit ist kein 24x SGSSAA möglich.
Was meinst du, warum wir beim NV4x (G7x) nur so ein hässliches SLI-AA hatten und bei CF nur ein 12xAA möglich war? Wegen des Rasters (NV4x: 8x8 R4xx/5xx: 12x12)
Das meine ich mit limitieren. ;)

Und nun log dich wieder ein ^^


auch "pseudo"-Alphatests, die nicht mit TSSAA/AAA geglättet werden. Auf ATi Karten muss man dafür ASBT aktivieren, bei NV Karten ist mir keine Lösung bekannt.
Jetzt wüßte ich gerne was Pseudo Alphatests sind.
Wie schon oft genug erwähnt ist ASBT nur eine Frickeloption von ATI, da AAA out-of-the-box noch nicht so kompatibel ist wie TSAA. Das selbe Spiel gilt auch für EATM. (ist ja auch kein Wunder, da AAA offenbar erst in Reaktion auf TAA programmiert wurde und man einen zeitliches Handicap aufzuholen hat)
Natürlich gibt's manchmal auch bei TSAA Inkompatibilitäten. Aber "pseudo-Alphatests"?

Gast
2006-12-16, 20:16:21
Nur muss dieses Offset auf dem Raster des Trisetups liegen. Und dieses ist nunmal nur 16x16. Damit ist kein 24x SGSSAA möglich.
Was meinst du, warum wir beim NV4x (G7x) nur so ein hässliches SLI-AA hatten und bei CF nur ein 12xAA möglich war? Wegen des Rasters (NV4x: 8x8 R4xx/5xx: 12x12)
Das meine ich mit limitieren. ;)


bei Super-AA von crossfire gibt es maximal 12x, weil ATI nicht mehr als 2xSS wollte damit die performance nicht einbricht.

beim SLI-AA liegen die supersamples eben gerade nicht auf den vorgegebenen samplepositionen des trisetups. die position der multisamples ist natürlich limitiert und vorgegeben, aber nicht die position der supersamples.

Mr. Lolman
2006-12-16, 20:23:59
(ist ja auch kein Wunder, da AAA offenbar erst in Reaktion auf TAA programmiert wurde und man einen zeitliches Handicap aufzuholen hat)
Natürlich gibt's manchmal auch bei TSAA Inkompatibilitäten. Aber "pseudo-Alphatests"?

Die hab ich so genannt, weil bei solchen Texturen sowohl ATi und NV Probleme mit dem TSAA/AAA haben und ich mir denke, dass der Fehler eher bei den ISVs anstatt bei den IHVs zu suchen ist. Ich kann mir vorstellen, dass bei solchen Texturen der Alphakanal zwar 1bit beträgt, aber von der Engine kein Alphatestbit gesetzt wurde.

/edit: Den Registrykey ASTT gabs schon lang bevor die Option im Treiber verfügbar gemacht wurde und anhand vom R300 sieht man ja, dass die Hardware schon länger dazu fähig war ;)

Coda
2006-12-16, 20:27:24
Wenn kein Alphatest eingeschaltet ist ist völlig egal was in den Texturen für ein Alphawert steht.

Und wenn der Alphatest eingeschaltet ist dann entscheidet darüber die Textur auch nur indirekt, da der Shader den Alphawert ausgibt und davor damit machen kann was er will.

Mr. Lolman
2006-12-16, 20:33:33
Wenn kein Alphatest eingeschaltet ist ist völlig egal was in den Texturen steht oder nicht.

Und wenn in den Texturen der Alphakanal auf AT ausgelegt ist, gibts doch trotzdem Aliasing...

Und wenn der Alphatest eingeschaltet ist dann entscheidet darüber die Textur auch nur indirekt, da der Shader den Alphawert ausgibt und davor damit machen kann was er will.

Ich dachte die Alphawerte werden primär im Alphakanal der Textur gespeichert.

robbitop
2006-12-16, 20:38:17
bei Super-AA von crossfire gibt es maximal 12x, weil ATI nicht mehr als 2xSS wollte damit die performance nicht einbricht.

beim SLI-AA liegen die supersamples eben gerade nicht auf den vorgegebenen samplepositionen des trisetups. die position der multisamples ist natürlich limitiert und vorgegeben, aber nicht die position der supersamples.
Natürlich muss das Sample auf dem Raster liegen.

robbitop
2006-12-16, 20:40:57
/edit: Den Registrykey ASTT gabs schon lang bevor die Option im Treiber verfügbar gemacht wurde und anhand vom R300 sieht man ja, dass die Hardware schon länger dazu fähig war ;)
Wie lange schon? Die HW war dazu fähig nur die Umsetzung ist viel jünger. Rat mal warum. ;)
An sich ist sogar schon die NV20 HW bereit für TMAA dank A2C.

Coda
2006-12-16, 21:08:49
Und wenn in den Texturen der Alphakanal auf AT ausgelegt ist, gibts doch trotzdem Aliasing...

Von was redest du? TSSAA/AAA wird nicht anhand der gebundenen Texturen aktiviert oder deaktiviert sondern am Status des Alphatests oder evtl. an einer vorhandenenen texkill-Op im Shader - wobei ich das mit dem Texkill bisher nicht beobachtet habe (das der Treiber dadurch TSSAA aktiviert).

Ich dachte die Alphawerte werden primär im Alphakanal der Textur gespeichert.

Die können genauso wie R, G und B beliebig berechnet werden im Pixelshader. Ich kann dir nen Shader schreiben der Sinuskurven als Alpha ausgibt und nen Alphatest dahinter klatschen. Das gibt geiles AT-Aliasing und es wird dabei keinerlei Textur gesampled.

Mr. Lolman
2006-12-16, 21:46:05
Wie lange schon? Die HW war dazu fähig nur die Umsetzung ist viel jünger. Rat mal warum. ;)
An sich ist sogar schon die NV20 HW bereit für TMAA dank A2C.

Hm. Kann das jetzt nicht nachprüfen. Denn tatsächlich musste man den Registrykey erst anlegen. Mit dem 6.1 funktionierts. Ein älterer geht auf meiner X1900XTX leider nicht.

Von was redest du? TSSAA/AAA wird nicht anhand der gebundenen Texturen aktiviert oder deaktiviert sondern am Status des Alphatests oder evtl. an einer vorhandenenen texkill-Op im Shader - wobei ich das mit dem Texkill bisher nicht beobachtet habe (das der Treiber dadurch TSSAA aktiviert).

Ja eben. Und wenn die Textur nun keine Abstufungen zwischen schwarz und weiss im Alphakanal hat gibts eine harte Kante, auch bei Alphablending.


Die können genauso wie R, G und B beliebig berechnet werden im Pixelshader. Ich kann dir nen Shader schreiben der Sinuskurven als Alpha ausgibt und nen Alphatest dahinter klatschen. Das gibt geiles AT-Aliasing und es wird dabei keinerlei Textur gesampled.

Naja, das ist in Spielen imo eher unüblich.

Gast
2006-12-16, 21:58:16
Ja eben. Und wenn die Textur nun keine Abstufungen zwischen schwarz und weiss im Alphakanal hat gibts eine harte Kante, auch bei Alphablending.


die abstufungen müssen nicht in der textur sein, sondern werden in der regel vom texturfilter erzeugt, point-sampling wird doch recht selten eingesetzt.

Gast
2006-12-16, 22:00:31
Natürlich muss das Sample auf dem Raster liegen.

ist aber beim SLI-AA (für die textursamples) nicht so.

wenn die frames unabhängig voneinander berechnet werden kannst du die offsets beliebig wählen.

Mr. Lolman
2006-12-16, 22:14:42
die abstufungen müssen nicht in der textur sein, sondern werden in der regel vom texturfilter erzeugt, point-sampling wird doch recht selten eingesetzt.

Der Texturfilter erzeugt Texelantialiasing. Damit in Bewegung nix flimmert brauchts Pixelantialiasing.

Coda
2006-12-16, 22:21:07
Ja eben. Und wenn die Textur nun keine Abstufungen zwischen schwarz und weiss im Alphakanal hat gibts eine harte Kante, auch bei Alphablending.

Nö. Dafür gibts ja den Texturfilter.

Naja, das ist in Spielen imo eher unüblich.

Und was ist dein Punkt?

Der Texturfilter erzeugt Texelantialiasing. Damit in Bewegung nix flimmert brauchts Pixelantialiasing.

Braucht man nicht (zumindest nicht der von R580 und G80 ohne Optimierungen). Und auch der böse böse von G7x erzeugt sicher keine harten Kanten aufm Bildschirm bei schwarz/weiß-Übergängen. Zumindest hab ich das noch nicht beobachtet ohne Point-Filter X-D

Es sei denn man stellt Mipmapping aus.

Mr. Lolman
2006-12-16, 22:34:01
Und was ist dein Punkt?


Mein Punkt ist immernoch der Selbe, der dir den Anlaß gab in den Thread zu posten.

Zur Illustration:

Coda
2006-12-16, 22:47:43
Das ist aber kein Pixel-Aliasing (wird es auch in der Minification nicht sein wenn Mipmapping an ist) und das bekommst du auch nicht durch AAA/TSSAA weg. Ist ja schon in der Textur selber vorhanden. Daran kann kein Filter der Welt noch was ändern.

Oder glaubst du du könntest Textur-Content durch Supersampling ändern? Bitte nicht.

Alphablending braucht kein Supersampling, es sei denn es wurde am LOD gespielt. Das gilt aber auch für alle Texturen.

Mr. Lolman
2006-12-16, 23:07:23
Das ist aber kein Pixel-Aliasing und das bekommst du auch nicht durch AAA/TSSAA weg. Ist ja schon in der Textur selber vorhanden. Daran kann kein Filter der Welt noch was ändern.

A2C iirc schon.


Oder glaubst du du könntest Textur-Content durch Supersampling ändern? Bitte nicht.

Hm, nö aber mit ner anderen Api ;): http://www.forum-3dcenter.de/vbulletin/showpost.php?p=4970143&postcount=742

Coda
2006-12-16, 23:11:20
A2C iirc schon.

Nein.

Hm, nö aber mit aber mit Api ;): http://www.forum-3dcenter.de/vbulletin/showpost.php?p=4970143&postcount=742

Andere Alphaschwelle eingestellt. Das ist API unabhängig. Die absolut furchtbare Direct3D-Implementierung von Ultima 9 als Vergleich für sowas zu benützen ist... naja ich sag nix.

robbitop
2006-12-17, 00:53:03
ist aber beim SLI-AA (für die textursamples) nicht so.

wenn die frames unabhängig voneinander berechnet werden kannst du die offsets beliebig wählen.
Textursamples? Ich sehe gerade du hast anscheinend die NVIDIA Presse Whitepaper als Quelle genutzt. Die sind mal wieder ein wenig missverständlich illustriert. Statt einem 8x8 Raster ist bsw ein 4x4 Raster eingezeichnet. Das ist ein wenig vereinfacht für das Pressevolk.
Natürlich liegen die "Textursamples" (unpassend dieser Term an der Stelle) auf dem Raster. Alle Pixel tun das. Wie sollten sie sonst gerastert werden?

Gast
2006-12-17, 13:43:15
Natürlich liegen die "Textursamples" (unpassend dieser Term an der Stelle) auf dem Raster.


würden sie das tun, wären der supersampling-effekt bei SLI-AA deutlich besser und nicht so verdammt ineffizient, beim 4x4-raster der G7x/NV4x-reihe wäre ein so geringer abstand garnicht möglich.


Alle Pixel tun das. Wie sollten sie sonst gerastert werden?

beim SLI-AA berechnet jede karte völlig unabhängig voneinander ein bild aus leicht unterschiedlichem blickwinkel. dieser unterschied im blickwinkel ist aber mehr oder weniger beliebig und nicht an irgendwelche limitierungen im Tri-setup gebunden, ganz einfach weil die bilder vor dem zusammenmischen nichts miteinander zu tun haben.

wenn der treiber es will wäre das auch mit einer einzelnen karte möglich mit praktisch beliebig vielen samples an beliebiger position (praktisch gibt es natürlich limits wie den verfügbaren VRAM)

Coda
2006-12-17, 14:05:21
Nicht leicht unterschiedliche Blickwinkel, sondern leicht verschobene Vertices im Screenspace.

Gast
2006-12-17, 14:44:07
Nicht leicht unterschiedliche Blickwinkel, sondern leicht verschobene Vertices im Screenspace.

ist das nicht das gleiche, bzw. das eine wird durch das andere erreicht?

robbitop
2006-12-17, 15:18:46
Ich glaube wir lassen die Diskussion lieber. ;)

Coda
2006-12-17, 15:56:07
ist das nicht das gleiche

Nein, durch einen anderen Blickwinkel würde ja weiter entfernte Geometrie nicht so stark beeinflusst bei perspektivischer Projektion.

Es ist einfach eine ADD am Ende des Vertexshaders.

Ich glaube wir lassen die Diskussion lieber. ;)

Wieso? Ist doch ganz interessant.

Die ursprüngliche Debatte hier ist eh sinnlos :D

robbitop
2006-12-17, 16:23:50
Na dann bring' dich doch mal in die Raster-Sache ein ;)

Coda
2006-12-18, 01:39:11
Inwiefern? Die Samples von TSSAA müssen z.B. nicht auf dem Subpixel-Raster liegen und die zwei unterschiedlichen Pixelmittelpunkte von SLI-AA auch nicht. Ob sie es dennoch tun weiß ich nicht.

robbitop
2006-12-18, 10:09:48
Natürlich müssen sie auf dem Pixelraster liegen. Schließlich müssen bei beiden Bildern die Pixel noch übereinstimmen, sonst würde eher ein Motion-Blur Effekt auftreten.

aths
2006-12-18, 11:08:53
Und wenn in den Texturen der Alphakanal auf AT ausgelegt ist, gibts doch trotzdem Aliasing...Hrm? Selbst wenn der Alphakanal in der Textur nur zwei Werte annehmen kann (0 oder 1, zum Beispiel bei DXT1) ist Alphablending möglich.

Ja eben. Und wenn die Textur nun keine Abstufungen zwischen schwarz und weiss im Alphakanal hat gibts eine harte Kante, auch bei Alphablending.Der Alphakanal wird genau wie ein Farbkanal bilinear gefiltert. ("Weiß" bitte mit ß.)

Xmas
2006-12-18, 15:41:49
Dafür hatte das ein paar andere Nebeneffekte: Bis heute unerreichte AA Qualität (oder zeig mir mal einen Modus der aufs gesamte Bild min ein 8x8 EER) erreicht
Da die V5 6000 nie in den Handel kam, ist das kein so recht sinnvoller Vergleich. Im Profi-Markt gibt es heute bessere AA-Qualität.

Nur muss dieses Offset auf dem Raster des Trisetups liegen. Und dieses ist nunmal nur 16x16. Damit ist kein 24x SGSSAA möglich.
Nein. Das Raster für Multisampling bzw. CSAA ist 16x16, die Subpixelpräzision ist aber viel höher (12 Bit).

Gast
2006-12-18, 18:07:10
Nur muss dieses Offset auf dem Raster des Trisetups liegen. Und dieses ist nunmal nur 16x16.

Laut B3D sind die Sample-Positionen für verschiedene 16x-Modi unterschiedlich. Was bedeutet das?

Gast
2006-12-18, 18:30:37
Laut B3D sind die Sample-Positionen für verschiedene 16x-Modi unterschiedlich. Was bedeutet das?
Ich sehe grad: Sie sind sogar für den 8xQ-Modus nicht deckungsgleich mit den 16er-Modi. Ich habe die B3D-Bilder mal übereinandergelegt.

http://img321.imageshack.us/img321/3863/g80composedqc3.png (http://imageshack.us)

Gast
2006-12-18, 18:52:08
Natürlich müssen sie auf dem Pixelraster liegen. Schließlich müssen bei beiden Bildern die Pixel noch übereinstimmen, sonst würde eher ein Motion-Blur Effekt auftreten.

nö, motion-blur gibts nur wenn es zusätzlich zur räumlichen auch noch eine zeitliche differenz zwischen den subpixeln gibt.

Coda
2006-12-18, 19:01:24
Natürlich müssen sie auf dem Pixelraster liegen. Schließlich müssen bei beiden Bildern die Pixel noch übereinstimmen, sonst würde eher ein Motion-Blur Effekt auftreten.

Erm wat? Müssen sie nicht, dadurch ensteht ja überhaupt erst der Supersampling-Effekt. Wenn es die gleichen Positionen wären dann hat man ATIs 12x (ohne Supersampling-Anteil).