Archiv verlassen und diese Seite im Standarddesign anzeigen : AA nur auf gewisse Bildteile anwenden?
Man liest ja immer wieder das FSAA verwendet wird. Dabei wird ja durch das FS angedeutet das der ganze Bildschirminhalt geglättet wird. (bzw hald alle poligonkanten) ist es jetzt eigentlich möglich nur teilbereiche zu glätten?
Sagen wir unser Held läuft mit einer waffe herum. Ist es möglich nur diese Waffe zu glätten und alle anderen Bildteiel unbeachtet zu lassen. Diese frage ist rein theorethisch würde mich aber interessieren ob das von dx usw. aus gehen würde.
danke
Man könnte es spätestens mit D3D 10.1 hinbekommen, aber wozu?
Mr. Lolman
2007-01-08, 13:28:22
ATi kann das afaik seit dem R300. Da gabs mal nen Treiber der die AA Performance in UT2003/04 ordentlich erhöht hat - ohne optische Einbussen. Iirc war der der Trick, (gewisse?) alphageblendete Inhalte nicht mehr mehrfach zu sampeln.
Das Problem ist ja gerade, dass es bei der Bewegung zu einer Unterabtastung der Geometrie kommen kann, was dann zum Pixelflimmern führt. Es ist also Zweckfrei, einer der großen Vorteile für die Performance zu opfern.
Man liest ja immer wieder das FSAA verwendet wird. Dabei wird ja durch das FS angedeutet das der ganze Bildschirminhalt geglättet wird. (bzw hald alle poligonkanten) ist es jetzt eigentlich möglich nur teilbereiche zu glätten?
für was? mit der G80-serie gibt es schon 4xFSAA fast for free, bei der R600-serie wird es wohl ähnlich sein.
wieso sollte man da nur bildteile glätten wollen?
Speicherbandbreite schonen würde man dabei bei einer naiven Implementierung auf jeden Fall nicht, weil man für die Pixel die kein Multisampling abbekommen trotzdem alle Fragmente mit dem Farbwert füllen muss. Mit der heute üblichen Farb-Kompression ist es natürlich was anderes.
Ich denke jede aktuelle Hardware wäre dazu in der Lage, es gibt aber keine API die sowas anbietet.
Könnte man das ganze nicht schon länger machen, indem man dafür einfach eines der MRTs als zusätzlichen Buffer nutzt? So könnte man auf unterschiedliche Bildteile auch unterschiedliche AA-Level anwenden.
MRT-Rendering erlaubt keine Verwendung von Multisampling auf D3D9-Hardware.
könnte man so bewirken dass flächen mit gewissen pixelshader effekten gesupersamplet werden ?
Nein. Auch das stellt keine derzeitige API zur Verfügung. Mit "D3D10.1" sollte sowas möglich sein.
Die bessere Lösung wäre aber wenn die Entwickler einfach Nyquist einhalten würden mit ihren Shadern.
Wie macht man denn sowas?
robobimbo
2007-01-10, 10:57:24
Ist so ein teilweises Antialiasing nicht auch ein Feature der Parhelia von Matrox?
Ist so ein teilweises Antialiasing nicht auch ein Feature der Parhelia von Matrox?
so gesehen ist jedes multisampling auch teilweises antialiasing, schließlich werden nur kanten geglättet.
ScottManDeath
2007-01-10, 20:29:18
AFAIK kann man unter OpenGL MS aktivieren und deaktivieren, zwischen Draw Calls. Obs dafür Restriktionen gibt: *schulterzuck*
Fallacy
2007-01-10, 20:51:44
für was? mit der G80-serie gibt es schon 4xFSAA fast for free, bei der R600-serie wird es wohl ähnlich sein.
wieso sollte man da nur bildteile glätten wollen?
Das glaube ich nicht, Tim:
http://www.hardtecs4u.com/reviews/2007/nvidia_g80_roundup/index20.php
Grundsätzlich sind die Benches zwar mit TSAA, was eine höhere Belastung darstellt, aber das funktioniert bei Quake4 und Riddick (da OpenGl) nicht und trotzdem gibt es einen enormen Perfomanceeinbruch. Auch FEAR leidet kaum unter der Zuschaltung von TSAA und trotzdem ist auch hier deutlich ein Einbruch zu sehen. Von den Spielen bei denen sich TSAA wirklich übel auswirkt mal ganz abgesehen. Also ich nenn "for free" was anderes...
Grundsätzlich sind die Benches zwar mit TSAA, was eine höhere Belastung darstellt, aber das funktioniert bei Quake4 und Riddick (da OpenGl) nicht und trotzdem gibt es einen enormen Perfomanceeinbruch. Auch FEAR leidet kaum unter der Zuschaltung von TSAA und trotzdem ist auch hier deutlich ein Einbruch zu sehen. Von den Spielen bei denen sich TSAA wirklich übel auswirkt mal ganz abgesehen. Also ich nenn "for free" was anderes...
die rede ist von reinem MSAA, dass es mit TSAA anders aussieht ist klar.
Fallacy
2007-01-10, 22:06:37
die rede ist von reinem MSAA, dass es mit TSAA anders aussieht ist klar.
Hast du meinen Post eigentlich überhaupt gelesen? Die Ergebnisse in Riddick und Quake sind komplett ohne TSAA, weil es unter OpenGl schlichtweg nicht funktioniert. Und trotzdem liegt dort der Performance-Einbruch bei ungefähr 40%-50%. Und FEAR zeigt auch praktisch keinerlei Beeindruckung von TSAA (siehe hier (http://www.hardtecs4u.com/reviews/2006/x1900_7900/index14.php)) - und auch hier sinken die Frameraten mehr als deutlich.
Ist so ein teilweises Antialiasing nicht auch ein Feature der Parhelia von Matrox?Dort ist dies aber nicht Absicht, sondern eine technische Limitation. Statt alles in einem Rutsch mit FSAA zu rendern werden zuerst alle Pixel gerendert, die vollständig innerhalb eines einzelnen Poligons liegen. Pixel, in denen mehrere Poligone vorhanden sind, werden in einem begrenzten Speicher gesammelt. Ist dieser Speicher voll, werden weitere Pixel, die eigentlich FSAA bräuchten, ohne FSAA normal gerendert. Am Schluss wird der Speicher für Randpixel mit FSAA gerendert. Das größte Problem dieses Verfahrens ist jedoch nicht der begrenzte Speicher für Randpixel, sondern dass Überschneidungen mehrerer Poligone nicht erkannt werden, also selbst dann, wenn der Speicher noch ausreichen würde, an solchen Stellen das Aliasing nicht weggebügelt wird.
Kann allerdings auch sein, dass die Erklärung mit dem begrenzten Speicher die offizielle war, das Problem letztlich aber nur darin lag, dass Überschneidungen nicht erkannt werden. Oder der begrenzte Speicher war nur ein Problem der ersten Version der Parhelia.
Ailuros
2007-01-11, 06:38:05
Das glaube ich nicht, Tim:
http://www.hardtecs4u.com/reviews/2007/nvidia_g80_roundup/index20.php
Grundsätzlich sind die Benches zwar mit TSAA, was eine höhere Belastung darstellt, aber das funktioniert bei Quake4 und Riddick (da OpenGl) nicht und trotzdem gibt es einen enormen Perfomanceeinbruch. Auch FEAR leidet kaum unter der Zuschaltung von TSAA und trotzdem ist auch hier deutlich ein Einbruch zu sehen. Von den Spielen bei denen sich TSAA wirklich übel auswirkt mal ganz abgesehen. Also ich nenn "for free" was anderes...
"For free" ist es zwar nicht (in meinem Buch waere es eher unter 20% Einbruch), aber der Einbruch ist generell kleiner auf G80 als bei G7x, wobei die letzteren auch ziemlich ausgereifte Treiber haben im Gegensatz zu G8x. Es dauerte eine geraume Zeit bis der Einbruch fuer G7x in Spielen wie FEAR reduziert wurde:
http://users.otenet.gr/~ailuros/AAPerf.pdf
Natuerlich haette ich auch mit FRAPS messen koennen, aber ich haette dann auch keine Vergleiche zu vorigen Generationen und anderen Resultaten von anderen Quellen gehabt.
Fallacy
2007-01-11, 09:20:47
Es ist sicherlich richtig, das sich mit zukünftigen Treibern hier noch etwas ändern kann bzw. sich ändern wird - aber das ist eben Spekulation. Deine Aussage in dem PDF basiert letztendlich (soweit ich das sehe) auf lediglich einem Benchmark, für mich persönlich zu wenig um ein Fazit zu sehen. Aktuell (mit verfügbaren Treibern) scheint der Perfomance-Einbruch (prozentual) auf dem G7x in den gleichen Regionen zu liegen wie beim G80, mit tendenziell leichten Vorteil für den G80.
Edit: Aber auch bei dir schön zu sehen: 8xMSAA ist böse ;).
es war ca so gedacht...
dies ist mir vorallem bei farcry aufgefallen, dass vorallem bei der waffe des helden welche einem dauernd vor die nase gehalten wird das alialsing stark auffällt (mir zumindest) stärker als das in der umgebung. sollte jetzt dieleistung für echtes fsaa nicht gegeben sein (es haben nicht alle immer die neueste grakageneration) kann man auf diese weise das aussehen zumindest verbessern.
Dort ist dies aber nicht Absicht, sondern eine technische Limitation. Statt alles in einem Rutsch mit FSAA zu rendern werden zuerst alle Pixel gerendert, die vollständig innerhalb eines einzelnen Poligons liegen. Pixel, in denen mehrere Poligone vorhanden sind, werden in einem begrenzten Speicher gesammelt. Ist dieser Speicher voll, werden weitere Pixel, die eigentlich FSAA bräuchten, ohne FSAA normal gerendert. Am Schluss wird der Speicher für Randpixel mit FSAA gerendert. Das größte Problem dieses Verfahrens ist jedoch nicht der begrenzte Speicher für Randpixel, sondern dass Überschneidungen mehrerer Poligone nicht erkannt werden, also selbst dann, wenn der Speicher noch ausreichen würde, an solchen Stellen das Aliasing nicht weggebügelt wird.
Kann allerdings auch sein, dass die Erklärung mit dem begrenzten Speicher die offizielle war, das Problem letztlich aber nur darin lag, dass Überschneidungen nicht erkannt werden. Oder der begrenzte Speicher war nur ein Problem der ersten Version der Parhelia.Ich glaube nicht, dass FAA so funzt. Die Pixel werden schon alle sofort gerendert, aber der Platz für Kantenpixel ist begrenzt.
Ist halt aus der offiziellen Erklärung und diversen Forenbeiträgen zusammengewürfelt. Eine wirklich technisch präzise Erklärung gibt es anscheinend nirgends. Zumindest bin ich bisher noch nicht drüber gestolpert.
Jedes feinste Detail ist auch nicht interessant. Es gibt Speicher für bis zu einer bestimmten Anzahl an geglätteten Pixeln. Wie das adressiert wird, wäre mal nett, zu wissen, aber ist nur ein Detail.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.