PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ist LOD wirklich nötig?


BloodHound
2007-07-10, 12:31:47
Vielleicht ist die Frage komisch formuliert, aber ich frage mich wirklich, ob man (die benötigte Rechenleistung mal außen vor gelassen) nicht auf geringere Detailstufen verzichten könnte. So würde die nach hinten auftretende Unschärfe deutlich verringert werden, oder sehe ich das falsch? Das gesamte Bild würde an Schärfe zulegen und das Mip-Banding würde auch entfallen, da es ja nur eine LOD-Stufe gäbe - oder vermische ich da gerade etwas?

Teilt mir mal eure Meinnung mit... :)

san.salvador
2007-07-10, 12:39:24
LOD ist gerade bei Polygonen sehr wichtig, um eine riesige Flimmerei zu verhindern.

Der_Korken
2007-07-10, 12:43:05
Die Rechenleistung dafür aufzubringen dürfte auch sehr schwierig werden. Ich hab mal ne Oblivion-Mod gesehen, die das System auch entfernte Sachen mit vollem detailgrad berechnen ließ. Sah zwar gut aus, verspeiste ein G80-SLI-System jedoch zum Frühstück.

StefanV
2007-07-10, 12:55:41
Ich empfehle in diesem Falle dir mal 'ne Playstation 2 zu besorgen und danach das Spiel 'Final Fantasy X' bzw 'X-2', empfehlen würd ich X-2, da du damit sofort die 'Stille Ebene' Betreten kannst.

Danach fragst du nie wieder danach!

Neosix
2007-07-10, 12:58:26
nur zur klarstellung, lod sorgt dafür das objekte ab einer gewissen entfernung mit detailärmeren modellen dargestellt werden. diese passen aber dann besser zu der entfernung?

hab mal n raytraicing video ohne lod gesehen wo ne kamera über eine baumlandschaft von mehreren dutzen kilometer geflogen ist. paar 100 meter konnte man alles klar erkennen. ab dann wars ne flimmerlandschaft. sah echt zum würgen aus.

Spasstiger
2007-07-10, 13:00:33
LOD beim Texturfilter ist wichtig, damit es nicht zu Unterabtastung kommt. Andernfalls flimmert es lustig. Bei Polygonen ist das ganz ähnlich.

robbitop
2007-07-10, 13:01:18
LOD ist generell (ob bei Texturen oder bei Geometrie) noetig. Ansonsten sind ab einer gewissen Entfernung auf der Z-Achse zuviele Details, die beim Rasterizen in einen Pixel fallen, dass es zwangsweise flimmert. Zu hohe Frequenz -> Unterfilterung (Nyquist/Shanon ahoi)

Bei Geometrie spart man ausserdem Rechenleistung. IMO sollte man daran arbeiten, die LOD Grenzen so gut wie moeglich zu verwischen. Dezente Unschaerfe, die nicht scharf verlaeuft (Gothic 3) waere eine denkbare Loesung.


Die PS2 kann aus verschiedenen Gruenden kein Textur LOD.

1. zuwenig Speicher, um auch noch die MIP Maps zu halten
2. die Tex Units koennen kein isotropes LOD berechnen

=Floi=
2007-07-10, 13:02:01
ein gegenbeispiel sind spiele wie far cry wo alles auffloppt...

Mr. Lolman
2007-07-10, 13:04:38
Vielleicht ist die Frage komisch formuliert, aber ich frage mich wirklich, ob man (die benötigte Rechenleistung mal außen vor gelassen) nicht auf geringere Detailstufen verzichten könnte. So würde die nach hinten auftretende Unschärfe deutlich verringert werden, oder sehe ich das falsch? Das gesamte Bild würde an Schärfe zulegen und das Mip-Banding würde auch entfallen, da es ja nur eine LOD-Stufe gäbe - oder vermische ich da gerade etwas?

Teilt mir mal eure Meinnung mit... :)

Du meinst Mipmaps. Und ja die sind wichtig, weils sonst hässlichst Flimmern würde und nebenbei die Performance aufgrund der Texellast sinken würde.

Hier hatte ich mal nen BQ-Vergleich in Q3a gemacht: http://www.forum-3dcenter.de/vbulletin/showpost.php?p=3660525&postcount=62


LOD ist generell (ob bei Texturen oder bei Geometrie) noetig. Ansonsten sind ab einer gewissen Entfernung auf der Z-Achse zuviele Details, die beim Rasterizen in einen Pixel fallen, dass es zwangsweise flimmert. Zu hohe Frequenz -> Unterfilterung (Nyquist/Shanon ahoi)

Der BQ-Aspekt ist bei der Geometrie eher nebensächlich. Wozu gibts denn AA?


Bei Geometrie spart man ausserdem Rechenleistung. IMO sollte man daran arbeiten, die LOD Grenzen so gut wie moeglich zu verwischen. Dezente Unschaerfe, die nicht scharf verlaeuft (Gothic 3) waere eine denkbare Loesung.

Das ist der Hauptpunkt. Man vergleiche einfach mal die Performance eines Armed Assault, was imo ein äußerst schwaches LOD System hat, mit einem Just Cause. Da liegen Welten dazwischen.

Spasstiger
2007-07-10, 13:07:00
IMO sollte man daran arbeiten, die LOD Grenzen so gut wie moeglich zu verwischen. Dezente Unschaerfe, die nicht scharf verlaeuft (Gothic 3) waere eine denkbare Loesung.
Das LOD, was du jetzt meinst, ist aber das vom Spiel, welches dazu dient, Rechenleistung zu sparen.
Das muss man ganz klar vom LOD des Texturfilters unterscheiden, welches dafür sorgt, dass Nyquist eingehalten wird.

robbitop
2007-07-10, 13:50:17
Der BQ-Aspekt ist bei der Geometrie eher nebensächlich. Wozu gibts denn AA?
Ab einem gewissen Z Wert ist die Geometrie so klein, dass AA nichts bringt, aufgrund zu wenig "Pixelplatz" fuer Kontraststufen.



Das ist der Hauptpunkt. Man vergleiche einfach mal die Performance eines Armed Assault, was imo ein äußerst schwaches LOD System hat, mit einem Just Cause. Da liegen Welten dazwischen.
Ja Just Cause hat mich auch ueberrascht. (und sehr gut gefallen ^^)
Dort wird Unschaerfe genutzt, um das LOD zu kaschieren.
Und es gibt viiiiel Bewegungsunschaerfe und bunte Farben X-D (ich mags aber viele hassen es).

robbitop
2007-07-10, 13:52:39
Das LOD, was du jetzt meinst, ist aber das vom Spiel, welches dazu dient, Rechenleistung zu sparen.
Das muss man ganz klar vom LOD des Texturfilters unterscheiden, welches dafür sorgt, dass Nyquist eingehalten wird.
Nein ich meine hier schon Geometrie-LOD.
Auch da tastet man ein Signal ab. Ist die Frequenz des Signals zu hoch, kann man es pro Periode mit der Pixelmaske nicht mehr 2x abtasten. Und was bei der Unterschreitung des Shanon Theorems passiert, wissen wir ja.

Mr. Lolman
2007-07-10, 14:13:21
Ab einem gewissen Z Wert ist die Geometrie so klein, dass AA nichts bringt, aufgrund zu wenig "Pixelplatz" fuer Kontraststufen.

Dann sieht man das Polygon eh nicht mehr. Ohne AA hast du ein Sample/Pixel und, sobald ein Polygon kleiner als ein Pixel ist (und sich in Bewegung befindet), flimmmerts zw 0 (kein Pixel) und 100% (volles Pixel). Bei 4xAA wird jedes PIxel 4x so genau abgetastet, und pro Pixel hast du 5 mögliche Konstraststufen (0, 25 , 50, 75 und 100%). Das heisst nun einerseits, dass Polygonflimmern mit 4xAA erst entsteht, wenn das Polygon ggü. noAA 4x kleiner ist (es wird ja 4x so genau gesampelt) und andererseits, dass sich dann das Pixelflimmern nicht im Bereich zw. 0-100% abspielt, sondern im Bereich 0-25%. (bei 6xAA 0-16.6%, bei 6-fach kleineren Polygonen und bei 8xAA 0-12.5%, bei 8-fach kleineren Polygonen)

Bevor das wirklich störend wäre (mal abgesehen davon, dass sich die jew. Polygone selten mit 100% Kontrast vom Hintergrund abheben), limitiert dir wahrscheinlich schon längst die CPU.

Außerdem ist Shader/Texturflimmern und suboptimales Alphablending oft ein ohnehin weitaus größerer Irritationsfaktor ;)



Ja Just Cause hat mich auch ueberrascht. (und sehr gut gefallen ^^)
Dort wird Unschaerfe genutzt, um das LOD zu kaschieren.
Und es gibt viiiiel Bewegungsunschaerfe und bunte Farben X-D (ich mags aber viele hassen es).

Die haben auch ein gutes LOD System. Man merkt oft kaum, dass die schöne Vegetation ab einer gewissen Entfernung nur mehr aus Sprites besteht. Bloß wenn gepfuscht wurde und der Spritebaum nicht genau die Position des 3D-Baums hat, erkennt man eine Überblendung. Aber wie du gesagt hast, kaschiert das die Bewegungsunschärfe (und oft auch das Hitzeflimmern) sehr gut.

Schade dass die Missionen bei Just Cause eher lahm sind. Nämlich grafisch siehts in höchster Detailsstufe (mit EATM :naughty: ) absolut geil aus.


Nein ich meine hier schon Geometrie-LOD.
Auch da tastet man ein Signal ab. Ist die Frequenz des Signals zu hoch, kann man es pro Periode mit der Pixelmaske nicht mehr 2x abtasten. Und was bei der Unterschreitung des Shanon Theorems passiert, wissen wir ja.


Der TI meinte aber Textur-LOD, also eigentlich Mipmaps. Und ohne LOD (kein Level of Detail, also kein Detailgrad) sieht man eigentlich überhaupt nix. Ihr redet alle von LOD-Systemen...

robbitop
2007-07-10, 14:24:06
Dann sieht man das Polygon eh nicht mehr. Ohne AA hast du ein Sample/Pixel und, sobald ein Polygon kleiner als ein Pixel ist (und sich in Bewegung befindet), flimmmerts zw 0 (kein Pixel) und 100% (volles Pixel). Bei 4xAA wird jedes PIxel 4x so genau abgetastet, und pro Pixel hast du 5 mögliche Konstraststufen (0, 25 , 50, 75 und 100%). Das heisst nun einerseits, dass Polygonflimmern mit 4xAA erst entsteht, wenn das Polygon ggü. noAA 4x kleiner ist (es wird ja 4x so genau gesampelt) und andererseits, dass sich dann das Pixelflimmern nicht im Bereich zw. 0-100% abspielt, sondern im Bereich 0-25%. (bei 6xAA 0-16.6%, bei 6-fach kleineren Polygonen und bei 8xAA 0-12.5%, bei 8-fach kleineren Polygonen)

Ohne Pixelplatz fuer Zwischenstufen kannst du meinetwegen auch 64xRGSSAA haben. Es flimmert trotzdem. Auf der CeBIT gabs so eine Demo von einer Landschaft ohne LOD-System. Was meinst du wie das (trotz Mehrfachabtastung) geflimmert hat.








Der TI meinte aber Textur-LOD, also eigentlich Mipmaps. Und ohne LOD (kein Level of Detail, also kein Detailgrad) sieht man eigentlich überhaupt nix. Ihr redet alle von LOD-Systemen...

Ich wollte auf beide LODs eingehen. Shice Korinthen-(Rosinen) K4ck0r X-D

Mr. Lolman
2007-07-10, 14:27:17
Ohne Pixelplatz fuer Zwischenstufen kannst du meinetwegen auch 64xRGSSAA haben. Es flimmert trotzdem. Auf der CeBIT gabs so eine Demo von einer Landschaft ohne LOD-System. Was meinst du wie das (trotz Mehrfachabtastung) geflimmert hat.


Dann war die Engine extra darauf ausgelegt. Im Normalfall flimmert mit aktivem AA, trotz fehldendem LOD-System nix. Sieht man auch gut bei Farcry, wenn man die Sprite_distance_ratio brutal erhöht.

Coda
2007-07-10, 14:32:40
Bei Geometrie spart man ausserdem Rechenleistung
Spart man auch bei Texturen ;)

@Lolman: Mit MSAA gleichst du genausoviel Geometrieflimmern aus wie Texturflimmern per SSAA. Man braucht also auch mit AA noch LOD, genauso wie wir trotzdem Mipmapping brauchen. Bei den meisten Spielen ist aber ohnehin die Sichtweite so beschränkt, dass das nicht ins Gewicht fällt.

san.salvador
2007-07-10, 14:33:33
Dann war die Engine extra darauf ausgelegt. Im Normalfall flimmert mit aktivem AA, trotz fehldendem LOD-System nix. Sieht man auch gut bei Farcry, wenn man die Sprite_distance_ratio brutal erhöht.
Selbst wenn, ein gutes LoD-System ist "etwas" performanter als zuviele Polygone + nötiges AA.

Mr. Lolman
2007-07-10, 14:55:11
Man braucht also auch mit AA noch LOD, genauso wie wir trotzdem Mipmapping brauchen.

Man brauchts aber eher wegen der Rechenleistung, und nicht wegen dem Flimmern, zumindest bei aktivem AA.

Selbst wenn, ein gutes LoD-System ist "etwas" performanter als zuviele Polygone + nötiges AA.

Hab nie was anderes behauptet.


EDIT:

Zur optischen Verdeutlichung:


http://666kb.com/i/apxv554aoeufcesxv.gif http://666kb.com/i/apxv65lowi5g7lx4z.gif

Coda
2007-07-10, 15:04:09
Dann hör auf mit der Haarspalterei. Man braucht Geo-LOD wenn die Sichtweite groß genug ist. Punkt.

Mr. Lolman
2007-07-10, 15:14:00
Dann hör auf mit der Haarspalterei. Man braucht Geo-LOD wenn die Sichtweite groß genug ist. Punkt.

Klar braucht mans. Aber nicht wegen dem Flimmern. Denn, bevors mit AA flimmert kackt der Prozzi ab.

Xmas
2007-07-10, 15:17:25
Doch, man braucht es auch wegen dem Flimmern. Selbst mit AA.

Mr. Lolman
2007-07-10, 15:21:31
Doch, man braucht es auch wegen dem Flimmern. Selbst mit AA.

Dafür hätt ich gern ein Bespiel. Denn gerade bei Farcry, welches ja ein Paradebeispiel für hohe Sichtweiten und ObjektLOD-Systemen ist, schraubt man für ne bessere optische Darstellung tw. die Polygondistanz brutal in die Höhe (und zwar soweit, dass das LOD System praktisch inaktiv ist). Einfach weil mittlerweile die Rechenleistung da ist, und das Bild mit AA ruhiger ist, als wenn zw den LOD Stufen herumgeschalten wird.

san.salvador
2007-07-10, 15:34:40
Das LoD von Far Cry ist auch ein recht schlechtes Beispiel. ;)

Mr. Lolman
2007-07-10, 15:43:07
Das LoD von Far Cry ist auch ein recht schlechtes Beispiel. ;)

Egal wie gut oder schlecht das LOD-System von Farcry ist, Farcry bleibt ein gutes Beispiel dafür, dass man Objekt-LOD-Systeme nicht braucht, wenn die Rechenleistung hoch genug ist.

Blaire
2007-07-10, 16:57:25
Die Rechenleistung dafür aufzubringen dürfte auch sehr schwierig werden. Ich hab mal ne Oblivion-Mod gesehen, die das System auch entfernte Sachen mit vollem detailgrad berechnen ließ. Sah zwar gut aus, verspeiste ein G80-SLI-System jedoch zum Frühstück.

Hast du noch die Url zu diesem Mod? Hät ich gern mal gesehn. ;)

Raff
2007-07-10, 17:51:52
Dafür hätt ich gern ein Bespiel. Denn gerade bei Farcry, welches ja ein Paradebeispiel für hohe Sichtweiten und ObjektLOD-Systemen ist, schraubt man für ne bessere optische Darstellung tw. die Polygondistanz brutal in die Höhe (und zwar soweit, dass das LOD System praktisch inaktiv ist). Einfach weil mittlerweile die Rechenleistung da ist, und das Bild mit AA ruhiger ist, als wenn zw den LOD Stufen herumgeschalten wird.

Man kann in FarCry das Polygon-LOD-System auch ganz killen. Siehe auch hier: http://www.forum-3dcenter.org/vbulletin/showthread.php?t=280964

MfG,
Raff

aths
2007-07-10, 19:41:53
Dafür hätt ich gern ein Bespiel.Geometrisches AA berechnet die Geometrie zunächst in höherer Auflösung. Was weiterhin von der (jetzt auf das Pixelraster bezogen übersampelten) Maske nicht erreicht wird, führt zum Flimmern.

Mr. Lolman
2007-07-10, 19:51:32
Geometrisches AA berechnet die Geometrie zunächst in höherer Auflösung. Was weiterhin von der (jetzt auf das Pixelraster bezogen übersampelten) Maske nicht erreicht wird, führt zum Flimmern.

Das ist jetzt sehr theoretisch. Mein praktisches Beispiel (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=5657874&postcount=18) zeigt eine Extremsituation die mit 6xAA und 25fps (ggf in nem anderen Browser betrachten, da Opera keine 25fps anzeigt) zwar durchaus nicht flimmerfrei ist, aber um Welten besser aussieht als ohne AA. Bedenkt man dass solche Extremsituationen in Spielen nie vorkommen, kommt man zu dem Schluss, das man ne Objekt-LOD Implementation heutzutage quasi ausschliesslich aus Performancegründen braucht.

aths
2007-07-10, 19:54:07
Das ist jetzt sehr theoretisch.Das ist genauso theoretisch wie die Nutzung von MIP-Maps. Deiner Theorie nach bräuchte man kein Textur-LOD, wenn man Supersampling-AA hat.

robbitop
2007-07-10, 19:55:32
Die Praxis beruht auf der Theorie. Also muss diese verstanden werden (anstatt auf Einzelfaelle zu verweisen), eh falsche Schluesse aus der Praxis abgeleitet werden koennen.

Trap
2007-07-10, 20:03:05
ausschliesslich aus Performancegründen braucht.
Klar, Echtzeitgrafik ist eine Sammlung von meist gut funktionierenden Hacks.

Richtig rendern wäre für jeden Pixel alle Informationen aller enthaltenen Objekte zu berücksichtigen.

Mr. Lolman
2007-07-10, 20:47:43
Das ist genauso theoretisch wie die Nutzung von MIP-Maps. Deiner Theorie nach bräuchte man kein Textur-LOD, wenn man Supersampling-AA hat.

Wenn der Grad an SSAA ausreichend ist, stimmt das auch. Kannst ja mal ein Q3a ohne Mipmaps aber dafür mit 4x4OGSSAA testen. Das kommt dem schon sehr nahe. Und eine Objekt-LOD-Engine und auch Texturmipmapping ist auch nur eine Annäherung. Überabtastung ist aber tw. die bessere Annäherung, denn wär Objekt-LOD/Mipmapping der BQ-Weisheit letzter Schluss, würde mans nicht ausschalten bzw. mit SSAA eine höheren Detailgrad erzwingen.

Und bevor man jetzt so daherlabert wie Hr. "Pixelplatz fuer Zwischenstufen" Schütt, soll man einfach mal ein bisschen in Q3a mit deaktivierten Mipmaps und 4x4OGSSAA spielen, sowie ein paar Vergleiche in Farcry mit default Settings; tweaked Settings + MSAA; und tweaked Settings + SSAA anstellen. Man merkt dann auch schnell warum ein Mipmap LOD-Bias von 0.0 gepaart mit jedem noch so Nyquistkonformen Texturfilter nie ein SSAA ersetzen können wird (und genauso verhält es sich mit Objektlodsystemen und MSAA ). Deswegen hat m.E. nach der ideale Texturfilter auch einen gewissen Hang zur Überfilterung gepaart mit nem standardmässig leicht negativen LOD-Bias.

Und bevor Hr. "Nyquist" Seifert nun die Wände hoch läuft, soll er doch bitte ein paar praktische Versuche durchführen (zB bei ein paar Spielszenen mit Alphatexturen TSSAA/HQAF mit SSAA vergleichen) Denn dadurch, dass beim SGTSSAA keine LOD-Anpassung durchgeführt wird, springt einem sofort die höhere Detailstufe des OGSSAA ins Auge.


Worauf ich hinaus will: Wenn man genügend Rechenleistung hat, braucht man weder Mipmaps noch ne Objektlodengine. Oversampling kann das alles richten. Ist zwar nicht besonders sinnvoll, aber MSAA macht auch schon manche Objektlodimplementation obsolet. (siehe Farcry. Da schiebt mans nicht nur nach hinten, sondern deaktivierts am Besten gleich komplett. Und selbst wenn manche Palmenstämme nur mehr ne Breite von <1 Pixel haben so sieht das mit MSAA immer weitaus besser aus, als jedes ObjektLOD das machen könnt)



Auf den Punkt gebracht heisst das:

ObjektLOD-Engine:
==============
x) für Optimierung der CPU-Performance
x) unnötig bei ausreichend CPU-Leistung und MSAA

Mipmaps:
=======
x) für Optimierung der GPU-Performance
x) unnötig bei ausreichend GPU-Leistung und SSAA


Klar, Echtzeitgrafik ist eine Sammlung von meist gut funktionierenden Hacks.

Richtig rendern wäre für jeden Pixel alle Informationen aller enthaltenen Objekte zu berücksichtigen.

Du sagst es. :up:

Die Praxis beruht auf der Theorie. Also muss diese verstanden werden (anstatt auf Einzelfaelle zu verweisen), eh falsche Schluesse aus der Praxis abgeleitet werden koennen.

Das find ich jetzt gar ein bisschen frech, wenn ich mir deine vergangen Ausführungen zu MSAA und Alphablending ansehe. Farcry ist kein Einzelfall, sondern ein Beispiel.


Und zu meinen gifs hat sich auch noch niemand was sagen getraut. ;)

Raff
2007-07-10, 20:51:55
Dezent OT, aber: Wie hast du es hingekriegt, dass 16x Supersampling unter OGL geht? Mit 16xS hat man zu wenige Textursamples, um mal eben das MIP-Mapping zu töten. Mit 8x SGSSAA auf der 6k sah das bisher am besten aus. =)

MfG,
Raff

Mr. Lolman
2007-07-10, 21:01:39
Dezent OT, aber: Wie hast du es hingekriegt, dass 16x Supersampling unter OGL geht? Mit 16xS hat man zu wenige Textursamples, um mal eben das MIP-Mapping zu töten,

MfG,
Raff

Ui. Erwischt. :eek: Das geht ja garnicht nicht. Dann probiers halt in D3D mit Serious Sam. Natürlich ists 4x4OGSSAA je nach Textur noch deutlich zu wenig, aber es zeigt schonmal die Richtung an (ähnlich wie 8xSGSSAA in FAKK2, aber halt mit doppelt sovielen Samples ;)).

Spasstiger
2007-07-10, 21:03:40
Wenn der Grad an SSAA ausreichend ist, stimmt das auch.
Du kannst das LOD etwas weiter nach hinten setzen, aber das ändert nichts an der Tatsache, dass bei deinem Vorschlag (kein LOD bei SSAA) ein fundementaler Satz aus der Signalverarbeitung/Nachrichtentechnik verletzt wird.

Mr. Lolman
2007-07-10, 21:27:13
Du kannst das LOD etwas weiter nach hinten setzen, aber das ändert nichts an der Tatsache, dass bei deinem Vorschlag (kein LOD bei SSAA) ein fundementaler Satz aus der Signalverarbeitung/Nachrichtentechnik verletzt wird.

So ein Stuss. Schob mit 256xAA wär garnix mehr verletzt, da man ohnehin auf 256 Helligkeitsstufen pro Farbe beschränkt ist.

Spasstiger
2007-07-10, 21:30:38
So ein Stuss.
Sag das mal einem Prof an der Uni. :biggrin:

DaEmpty
2007-07-10, 21:30:43
Auf den Punkt gebracht heisst das:

ObjektLOD-Engine:
==============
x) für Optimierung der CPU-Performance
x) unnötig bei ausreichend CPU-Leistung und MSAA

Mipmaps:
=======
x) für Optimierung der GPU-Performance
x) unnötig bei ausreichend GPU-Leistung und SSAA


Neben der Rechenleistung hast du auch noch den Speicherverbrauch vergessen.
Bleibt bloß noch die ungebundene Variable "ausreichend". X-D
Die lässt sich für eine endlich große diskrete Domäne auch so definieren, dass immer das Nyquistkriterium erfüllt wird.
Wobei "ausreichend" in der Bildverarbeitung nicht zwangsläufig erfülltes Nyquist-Kriterium heisst, da hinterher ja noch fetter Tiefpass drübergehauen wird beim Downsampling, den man aber bei momentaner Pixelgröße und Samplezahl noch nicht als Begründung anführen darf.

Du kannst das LOD etwas weiter nach hinten setzen, aber das ändert nichts an der Tatsache, dass bei deinem Vorschlag (kein LOD bei SSAA) ein fundementaler Satz aus der Signalverarbeitung/Nachrichtentechnik verletzt wird.
Wollen wir wirklich ein Signal exakt rekonstruieren? Oder reicht nicht auch eine Senkung des Rauschens auf unterhalb der Wahrnehmungsschwelle aus?

Raff
2007-07-10, 21:32:32
AF tut sein Übrigens, dass ungeMIPte Texturen besser aussehen. Mit 16x G80-AF schauen die fiesen Texturen in Quake III schon um Welten besser aus. Kein Vergleich zum höchst karzinogenen Zustand mit reinem Linear-Filter.

MfG,
Raff

Mr. Lolman
2007-07-10, 21:45:26
Neben der Rechenleistung hast du auch noch den Speicherverbrauch vergessen.
Bleibt bloß noch die ungebundene Variable "ausreichend". X-D
Die lässt sich für eine endlich große diskrete Domäne auch so definieren, dass immer das Nyquistkriterium erfüllt wird.
Wobei "ausreichend" in der Bildverarbeitung nicht zwangsläufig erfülltes Nyquist-Kriterium heisst, da hinterher ja noch fetter Tiefpass drübergehauen wird beim Downsampling, den man aber bei momentaner Pixelgröße und Samplezahl noch nicht als Begründung anführen darf.

x) So Kleinigkeiten wie Speicherverbrauch ist im Überbegriff der Rechenleistung inkludiert ;)
x) Ausreichend ist zwar auch situationsabhängig aber 256xAA ist auf jedenfall genug, um Nyquist bei nem 32bit Rendertarget nicht zu verletzen.

Sag das mal einem Prof an der Uni. :biggrin:

Der würde mir wohl zustimmen. Denn 256xAA ist der höchstmögliche sinnvolle Grad an Antialiasing. Mehr kann man einfach mit 32(24)bit nicht darstellen. Entweder kapiert der Uniprof, dass selbst das beste Display nur ne endliche Annäherung an die unendlich notwendige Genauigkeit eines bewegten 3D-Raums ist, oder er ist nur ein Kurpfuscher der nicht verstanden hat, wovon er redet.

AF tut sein Übrigens, dass ungeMIPte Texturen besser aussehen. Mit 16x G80-AF schauen die fiesen Texturen in Quake III schon um Welten besser aus. Kein Vergleich zum höchst karzinogenen Zustand mit reinem Linear-Filter.

MfG,
Raff

Vergleich mal G80-AF mit R5x0-AF. Möcht wissen, ob das immernoch so ist, wie bei NV40 vs R300 (http://www.forum-3dcenter.de/vbulletin/showpost.php?p=3660525&postcount=62)

Raff
2007-07-10, 21:59:11
Vergleich mal G80-AF mit R5x0-AF. Möcht wissen, ob das immernoch so ist, wie bei NV40 vs R300 (http://www.forum-3dcenter.de/vbulletin/showpost.php?p=3660525&postcount=62)

Was ist denn da? ;) AF bügelt die Texturen, auch ohne MIPs. Bei beiden Karten, so auch beim G80.

Meinst du, dass der R300 deutlich weniger flimmert als der NV40?

MfG,
Raff

Spasstiger
2007-07-10, 22:06:59
x) Ausreichend ist zwar auch situationsabhängig aber 256xAA ist auf jedenfall genug, um Nyquist bei nem 32bit Rendertarget nicht zu verletzen.
Nehmen wir mal den Fall, dass eine weit entfernte Textur mit 512*512 Pixeln/Texeln auf einen einzigen Pixel abgebildet werden soll. Jedes Pixel wird mit 256 Samples abgetastet (256xSSAA). Shannon-Nyquist wird also deutlich verletzt (nach Shannon-Nyquist muss die Abtastfrequenz doppelt so hoch sein wie die höchste Signalfrequenz). Die Frage ist nun, ob diese Verletzung auch sichtbare Auswirkungen hat.

Angenommen, die Textur ist in jeder zweiten Texelreihe schwarz, sonst weiß (also ein Streifenmuster) und durch die Abtastung wird in einem Moment gerade nur die schwarze Farbe erfasst (und zwar von allen 256 Samples), dann erscheint das Gesamtpixel schwarz. Im nächsten Moment werden bei der Abtastung nur die weißen Streifen erfasst, das Pixel wird weiß. Eigentlich sollte es aber grau sein.

Das Problem würde mit LOD und Mipmapping nicht bestehen, da dann die entsprechende Texturstufe schon grau wäre.

DaEmpty
2007-07-10, 22:08:04
x) Ausreichend ist zwar auch situationsabhängig aber 256xAA ist auf jedenfall genug, um Nyquist bei nem 32bit Rendertarget nicht zu verletzen.
Falsch.
Es ist problemlos möglich ein Muster zu bauen, was sich selbst mit 256xAA zu Tode flimmert, aber schon mit eine Texturstufe mehr total beruhigt ist. (Schwarz-weißes Linienmuster auf entsprechender Entfernung, oder von mir aus braune Äste vor grünem Laub/Wiese).
Texturlod macht für Texturen genau betrachtet nichts anderes als die Bruteforce Keule SSAA auch. Man berechnet das Integral für größe Flächen der Textur vor und benutzt nur noch das Ergebnis in der endgültigen Berechnung. Das ist zwar nicht so exakt wie SSAA mit unendlich vielen Samples, aber praktisch besser anwendbar.

Mr. Lolman
2007-07-10, 22:10:05
Was ist denn da? ;) AF bügelt die Texturen, auch ohne MIPs. Bei beiden Karten, so auch beim G80.

Meinst du, dass der R300 deutlich weniger flimmert als der NV40?

MfG,
Raff

Nö, ich meine, dass ATi mit nem höheren Texel/Pixel-Verhältnis besser zurechtkommt, als NV. Dass beide IHV die Texturen bügeln sieht man ja. Das ATi deutlich besser bügelt auch. Und dass der G80 immernoch das GTL-Begrentungslinienproblem hat, ist auch bekannt.

Deswegen dachte ich, du könntest einmal schnell nen Test mit R5x0 und G80 von der Szene machen, um zu sehen, wie sich die Bügelfähigkeiten beider IHV entwickelt haben.

Raff
2007-07-10, 22:15:24
Ich mag jetzt nichts umbauen, ein G80-Shot ist aber drin. Welches FOV hast du eingestellt? 110?

MfG,
Raff

Xmas
2007-07-10, 22:18:29
Der würde mir wohl zustimmen. Denn 256xAA ist der höchstmögliche sinnvolle Grad an Antialiasing. Mehr kann man einfach mit 32(24)bit nicht darstellen. Entweder kapiert der Uniprof, dass selbst das beste Display nur ne endliche Annäherung an die unendlich notwendige Genauigkeit eines bewegten 3D-Raums ist, oder er ist nur ein Kurpfuscher der nicht verstanden hat, wovon er redet.
Du hast Aliasing nicht verstanden.

Raff
2007-07-10, 22:19:48
Du hast Aliasing nicht verstanden.

Das ist die Art Kommentar, die ich hasse. Statt klug zu scheißen solltet ihr Gurus den "Unwissenden" eure Weisheit klar verständlich vorkauen. :D

MfG,
Raff

Spasstiger
2007-07-10, 22:20:55
Du hast Aliasing nicht verstanden.
Lolman war schon immer der Praktiker und wenn er was mit eigenen Augen sieht, was gut ist, und er sich mit seinem Laienwissen eine Theorie zusammenbauen kann, die auf seine Beobachtung passt, dann lehnt er sich manchmal schon weit aus dem Fenster. ;)

Das ist die Art Kommentar, die ich hasse. Statt klug zu scheißen solltet ihr Gurus den "Unwissenden" eure Weisheit klar verständlich vorkauen. :D

MfG,
Raff
Siehe mein Posting, ich habe da einen Worst-Case-Fall beschrieben.

Raff
2007-07-10, 22:24:06
Du hast es ja auch richtig gemacht.

MfG,
Raff

Neomi
2007-07-10, 22:39:54
So ein Stuss. Schob mit 256xAA wär garnix mehr verletzt, da man ohnehin auf 256 Helligkeitsstufen pro Farbe beschränkt ist.

Auf 256 Helligkeitsstufen sind wir schon lange nicht mehr beschränkt -> FP-Rendertargets. Wenn eine sehr grelle Lichtquelle durch kleine Ritzen leuchtet, dann macht sich ein Subpixel mehr oder weniger selbst bei bei so hohen Samplezahlen noch gut bemerkbar.

Anderes Beispiel: ein feines Schachbrettmuster. Auch mit 256 Samples kann es passieren, daß z.B. nur schwarze Kacheln erwischet werden und bei leichter Verschiebung nur weiße. Ein realistischeres Beispiel sind Zäune und Gitter, also regelmäßige Muster, aus entsprechender Entfernung betrachtet. Ich habe mal gerade so ein Beispiel mit 4x4 SSAA gebastelt. 256x FSAA würde zwar bei diesem Gitter helfen, aber bei einem entsprechend feinen Gitter und ungünstigem Abstand ebenfalls höllisch flimmern. Da hilft nur ein LoD-System.

Edit: wurde wohl schon angesprochen, während ich das Bild gebastelt habe. Nunja, immerhin jetzt mit konkretem Beispiel.

Coda
2007-07-10, 23:07:00
So ein Stuss. Schob mit 256xAA wär garnix mehr verletzt, da man ohnehin auf 256 Helligkeitsstufen pro Farbe beschränkt ist.
Nein.

Raff
2007-07-10, 23:09:37
Nein.

OMFG.

Dank dafür an Neomi. Das Bild sagt einiges aus, wenn man die Theorie zumindest rudimentär drauf hat.

MfG,
Raff

Spasstiger
2007-07-10, 23:10:01
Nein.
Hast du nicht Raffs Reaktion auf das Posting von Xmas gesehen?
Besonders höflich ist so ein "Nein." jedenfalls nicht und der Informationsgehalt geht gegen null. Zumal ja schon Gegenargumente ausgeführt wurden.

Mr. Lolman
2007-07-10, 23:39:24
Ich mag jetzt nichts umbauen, ein G80-Shot ist aber drin. Welches FOV hast du eingestellt? 110?

MfG,
Raff


100 wars afaik

Lolman war schon immer der Praktiker und wenn er was mit eigenen Augen sieht, was gut ist, und er sich mit seinem Laienwissen eine Theorie zusammenbauen kann, die auf seine Beobachtung passt, dann lehnt er sich manchmal schon weit aus dem Fenster. ;)

Wer ohne Sünde ist, werfe den ersten Stein *hint* ;)

Nein.

Ja. Ich habs schon kapiert. Ich hab mich ehrlich gesagt, von nem gewissen 3D-Guru irre leiten lassen, der vor einiger Zeit mal den theoritschen Nutzen von Modi >256xAA negiert hat (wobei in so einem Fall SGSSA ohnhin besser wär *g*). Egal. Ihr werdet mir wohl zustimmen, dass mit AA gegen unendlich selbst in so absolut irrelevanten Worstcasesituationen nix mehr flimmern wird ;)

Ich streit auch nicht ab, dass Mipmaps aus Performancesicht eindeutig die bessere Lösung sind, wohl aber, dass aktuelle ObjektLOD-Engines nicht mit MSAA größtenteils hinfällig wären, und dass sie nicht primär aus Performancegesichtspunkten integriert werden.


Edit: wurde wohl schon angesprochen, während ich das Bild gebastelt habe. Nunja, immerhin jetzt mit konkretem Beispiel.

Danke für das eindrucksvolle Bild. :up:

Coda
2007-07-11, 10:52:41
OMFG.
Die Diskussion hatten wir schon mal und da hab ich's zur Genüge ausgeführt. Irgendwann nervt's.

Mr. Lolman
2007-07-11, 10:56:54
Die Diskussion hatten wir schon mal und da hab ich's zur Genüge ausgeführt. Irgendwann nervt's.

Muss ich wohl übersehen haben...

aths
2007-07-11, 13:05:26
Wenn der Grad an SSAA ausreichend ist, stimmt das auch.Genau. Allerdings nutzt man Texturen, um viel feinere Details zu speichern als die Geometrie enthält. (Auf etliche texturierte Pixel kommen nur wenige Dreiecke.) Entsprechend ist bei Texturen erst mal eine höhere Sampling-Rate erforderlich. Tatsächlich nutzt man aber vorgefilterte Verkleinerungsstufen, weil man sonst beim Rendern nicht zu Potte kommen würde. Bei Geometrie hat man das gleiche Problem auch. Aktuell verhindern die noch unrealistisch geringen Sichtweiten, dass man öfter mal mehrere Dreiecke pro Pixel hat. Trotzdem benötigt man prinzipiell auch geometrisches LOD, um Aliasing zu bekämpfen. Dass man es heute (in den meisten Spielen) noch nicht nutzt und es sich trotzdem nicht zu Tode flimmert liegt an der niedrigen Geometrie-Auflösung und/oder der geringen Sichtweite.

Deswegen hat m.E. nach der ideale Texturfilter auch einen gewissen Hang zur Überfilterung gepaart mit nem standardmässig leicht negativen LOD-Bias.Der ideale Texturfilter berechnet ein Sample welches mit Supersamling nicht besser werden kann. Heutige AF-Verfahren sind schon recht gut. Supersampling erhöht lediglich die räumliche Auflösung des Filterkernels, was aber nicht viel bringt. Wird "negatives" LOD-Bias mit Überfilterung korrekt ausgeglichen, hat man ja letztlich kein negatives Bias mehr – aber unnötig viel gerechnet. Außerdem sind maximal scharfe Texturen oder allzu scharfe Kontrastübergänge in einer Textur für bewegte Inhalte gar nicht wünschenswert.

Und bevor Hr. "Nyquist" Seifert nun die Wände hoch läuft, soll er doch bitte ein paar praktische Versuche durchführen (zB bei ein paar Spielszenen mit Alphatexturen TSSAA/HQAF mit SSAA vergleichen) Denn dadurch, dass beim SGTSSAA keine LOD-Anpassung durchgeführt wird, springt einem sofort die höhere Detailstufe des OGSSAA ins Auge.SSAA nutze ich gelegentlich zur Beruhigung von Shader-Flimmerein.

Worauf ich hinaus will: Wenn man genügend Rechenleistung hat, braucht man weder Mipmaps noch ne Objektlodengine. Oversampling kann das alles richten. Ist zwar nicht besonders sinnvoll, aber MSAA macht auch schon manche Objektlodimplementation obsolet. Das ist in der Tat nicht sinnvoll. Vorgefilterte MIP-Maps bringen zwar einige Probleme, aber garantieren isotrope Filterung für einen festen Preis. Mit der gewonnenen Rechenzeit kann man viel mehr Qualität erzeugen als würde man jede Textur pro Pixel ausgehend von der Basemap neu filtern. Das gleiche Prinzip gilt bei der Geometrie. Geometrie-LOD macht Multisampling nicht überflüssig, aber Multisampling macht auch Geometrie-LOD nicht überflüssig.


ObjektLOD-Engine:
==============
x) für Optimierung der CPU-Performance
x) unnötig bei ausreichend CPU-Leistung und MSAA

Mipmaps:
=======
x) für Optimierung der GPU-Performance
x) unnötig bei ausreichend GPU-Leistung und SSAAWas du "ausreichende" Leistung nennst wäre totale Leistungsverschwendung. Es ergibt keinen Sinn die Qualität rein durch Überabtastung holen zu wollen anstatt auch vorgefilterte Daten zu nutzen. Was du bei deinem Ansatz an Rechenzeit reinsteckst musst du bei anderen Effekten sparen. Letztlich sieht die Grafik dann viel schlechter aus.

Das find ich jetzt gar ein bisschen frech, wenn ich mir deine vergangen Ausführungen zu MSAA und Alphablending ansehe. Farcry ist kein Einzelfall, sondern ein Beispiel. Jedes Beispiel ist zunächst ein Einzelfall.

Und zu meinen gifs hat sich auch noch niemand was sagen getraut. ;)Simulier doch mal einen Wald, wo ein Baum nur noch zwischen 0,1 und 0,5 Pixeln breit ist.

aths
2007-07-11, 13:14:31
So ein Stuss. Schob mit 256xAA wär garnix mehr verletzt, da man ohnehin auf 256 Helligkeitsstufen pro Farbe beschränkt ist.256x AA bringt dort, wo es was bringt, quasi-perfekte Ergebnisse (allerdings auch wieder nicht, solange der Boxfilter zum Einsatz kommt). Dort, wo trotz 256x AA das Abtasttheorem verletzt wird, hat man nach wie vor Aliasing. Nur solange man Nyquist einhält, ist 256x AA aus Farbauflösungssicht das sinnvolle Maximum. Das Problem ist dass man selbst bei einem 256x-sparse-grid nicht sicher sein kann, immer Nyquist zu erfüllen. Würde man bei 256x-AA beim Schachbrettmuster nur weiße Texel (oder Dreiecke) treffen, während man mit 512x-AA auch die schwarzen treffen würde, braucht man mehr als 256x AA. Oder eben (vernünftigerweise) ein LOD-System.

Genau davon geht das mit dem 256x-AA nämlich aus: Hat man eine einzelne Kante, lohnt es nicht, sie (im sinnvollen Raster) mehr als 256x abzutasten, weil zusätzliche Samples die resultierende Mischfarbe nicht mehr beeinflussen.


Der würde mir wohl zustimmen. Denn 256xAA ist der höchstmögliche sinnvolle Grad an Antialiasing. Mehr kann man einfach mit 32(24)bit nicht darstellen. Entweder kapiert der Uniprof, dass selbst das beste Display nur ne endliche Annäherung an die unendlich notwendige Genauigkeit eines bewegten 3D-Raums ist, oder er ist nur ein Kurpfuscher der nicht verstanden hat, wovon er redet.Bitte immer auch an das Frequenspektrum denken.

aths
2007-07-11, 13:18:56
Das ist die Art Kommentar, die ich hasse. Statt klug zu scheißen solltet ihr Gurus den "Unwissenden" eure Weisheit klar verständlich vorkauen. :DDa gibts auf 3dc einen Artikel, der zwar reichlich angestaubt ist und einige Aussagen trifft die ich heute so nicht mehr formulieren würde, aber auch eine Aliasing-Definition enthält. Die ist nicht gerade wissenschaftlich formuliert, aber sollte im Kontext verständlich genug sein.

http://www.3dcenter.org/artikel/anti-aliasing/index02.php

Bilder gibts auch noch.



Wollen wir wirklich ein Signal exakt rekonstruieren? Oder reicht nicht auch eine Senkung des Rauschens auf unterhalb der Wahrnehmungsschwelle aus?Auf dem Monitor können wir das Signal gar nicht korrekt rekonstruieren.

Mr. Lolman
2007-07-11, 13:49:28
Auf dem Monitor können wir das Signal gar nicht korrekt rekonstruieren.

Guter Punkt.


Simulier doch mal einen Wald, wo ein Baum nur noch zwischen 0,1 und 0,5 Pixeln breit ist.

Hab ich doch quasi gemacht.

aths
2007-07-11, 14:15:23
Hab ich doch quasi gemacht.Bäume bestehen nicht nur aus Stämmen. Bäume wachsen nicht kerzengerade in die Höhe.

Mastermind@Glückskind
2007-07-11, 17:38:16
Auch hier möchte ich meinen geliebten Satz unterbringen :D
Für Auflösung gegen Unendlich braucht man in der Tat kein LOD. :smile:

Coda
2007-07-11, 17:43:01
Schenkst du mir so nen Monitor?

aths
2007-07-11, 18:33:30
Der Monitor wäre noch das kleinere Problem.

Mr. Lolman
2007-07-11, 19:48:28
Bäume bestehen nicht nur aus Stämmen. Bäume wachsen nicht kerzengerade in die Höhe.

Bitteschön:

http://www.abload.de/thumb/combined5bj.gif (http://www.abload.de/image.php?img=combined5bj.gif)


Man merkt, dass 6xAA zwar nicht ausreicht, aber gleichzeitig auch ne deutliche Verbesserung zur Animation ohne AA darstellt. Und es sind auch nicht die einzelne kleine Polygone das Problem, sondern eher die Überlagerung von vielen. Bedenkt man noch, dass die Bäume alle eher dank der wenigen Blätter ziemlich durchscheinend sind, und der Kontrast zw. Bäume und Hintergrund den Wort-Case darstellt, kommt man zu dem Schluss, dass es in einer relevanten Spielszene nur besser aussehen kann. Außerdem - mit 1280x1024/6xAA/50fps flimmerts weniger ;)

Raff
2007-07-11, 20:48:54
Da gibts auf 3dc einen Artikel, der zwar reichlich angestaubt ist und einige Aussagen trifft die ich heute so nicht mehr formulieren würde, aber auch eine Aliasing-Definition enthält. Die ist nicht gerade wissenschaftlich formuliert, aber sollte im Kontext verständlich genug sein.

http://www.3dcenter.org/artikel/anti-aliasing/index02.php

Bilder gibts auch noch.

Jau, kenne und verstehe ich (IMO ;)). Mich kackt es aber trotzdem an, wenn derart inhaltsleere Antworten kommen (von dir ja nicht).

MfG,
Raff

DaEmpty
2007-07-11, 20:50:24
Auf dem Monitor können wir das Signal gar nicht korrekt rekonstruieren.
Sag nur. :eek:
Aber genau darum geht es beim Nyquist-Shannon-Abtasttheorem.
(Das eigentliche Nyquist-Kriterium beschäftigt afaik sich mit Rückkopplungssystemen... :rolleyes:)
Könnte ein kleiner Hinweis darauf sein, dass es nicht das exakt passende Kriterium für den Anwendungsfall ist, auch wenn starke Zusammenhänge bestehen.
Nur solange man Nyquist einhält, ist 256x AA aus Farbauflösungssicht das sinnvolle Maximum. Das Problem ist dass man selbst bei einem 256x-sparse-grid nicht sicher sein kann, immer Nyquist zu erfüllen.
Ein sparsed Grid in seiner eigentlichen Definition sorgt einfach dafür, dass man mit einer endlichen Anzahl an Zufallswerten eine möglichst gleichmäßige Verteilung erhält. Da kann man auch so manches von Mersenne heranziehen oder einen Voronoi Relaxation Prozess mit beliebigen Zufallswerten durchführen, die nur dafür sorgen dass man statistisch gesehen eine bessere Nährung eines Integrals zu bestimmen. Aber ob sparsed oder sonstwas bessere geeignet ist um das Nyquistkriterium einzuhälten ist eine domänenspezifische Sache.
Wegen der spezifischen Anwendungsdomäne macht auch das übliche 4x sparsed Grid für AA überhaupt erst Sinn. Weil rein von der mathematischen Integralnährung her gesehen, ist es nicht besser als viele andere auch.

Gast
2007-07-12, 02:57:37
Ich denke mal, man könnte schon ein Maximum an nutzbarer Auflösung bzw. AA-Level berechnen, auch anhand der Präzision. Aber nicht anhand der Präzision des Rendertarget, sondern anhand der Präzision, in der die Geometrie vorliegt und der Menge an Rechenschritten in VS/GS, welche die effektive Präzision weiter senken. Je komplexer VS/GS werden, desto mehr schaukeln sich die Fehler auf. Tastet man dann noch genauer ab, werden nur die Fehler "genauer" abgetastet. Auch daher brauchts LOD.