Archiv verlassen und diese Seite im Standarddesign anzeigen : M-Buffer, SSAA und einige andere Fragen
turboschlumpf
2005-07-12, 03:42:07
hi.
da ich mich wieder mehr für grafikkarten interessiere hätte ich da mal ein paar fragen (der übersichtlichkeit halber durchnummeriert). ich hoffe der thread ist hier richtig aufgehoben und die punkte wurden noch nicht allzu oft besprochen. bei der fülle an postings die es hier inzwischen du den ganzen themen gibt ist es sehr mühsam, die entsprechenden infos herauszufiltern.
1. warum verbaut nvidia für das antialiasing eigentlich keinen m-buffer, das entsprechende know-how besitzen sie durch die übernahme von 3dfx ja. handelt es sich beim m-buffer nicht um eine der besten möglichkeiten, aa zu realisieren? gibt es bestimmte vor- und nachteile eines m-buffers? das 8x ssaa der voodoo 5 6000 ist - auch wenn ich es leider nie live sehen konnte - in meinen augen auch nach 5 jahren immer noch unerreicht.
2. was ist eigentlich genau unter dem spatialen jittering zu verstehen, das damals von 3Dfx in verbindung mit ihrem t-buffer eingesetzt wurde?
3. wäre es mit einem solchen m-buffer eigentlich ohne probleme möglich, alle aa-modi sowohl als ms als auch ss oder gar ms/ss mischmodi anzubieten?
4. hätte das so erzeugte aa eigentlich ebenfalls probleme mit den sogenannten fullscreen-effekten? hängt das eventuell von der implementierung des m-buffers ab?
5. 8x8 (also 64x) ss hat ja - eine entsprechende lod-anspassung vorausgesetzt - den effekt von 8x af. gilt dies auch, wenn ein handoptimiertes samplemuster mit einem eer von 8x8, aber nur 8 subpixeln zum einsatz kommt?
6. msaa + tssaa und dann werden womöglich noch immer nicht alle kanten geglättet, das kann ich nicht brauchen. macht es wirklich so viel unterschied, ob man 8x msaa + 8x tssaa + 8x af einsetzt? könnte man da theoretisch nicht gleich einfach 8x ssaa auswählen? pixelfüllrate haben die grafikchips inzwischen ja mehr als genug. und richtiges af (das winkelabhängige af kann man ja in die tonne kloppen) kostet ja auch richtig performace.
7. warum verbaut nvidia inzwischen eigentlich nur noch bi-tmus? bei ganzen 302 millionen transistoren des g70 hätte das doch sicher nicht mehr so viel ausgemacht tri-tmus zu verbauen. und dann könten sie sich auch diese ganzen tricksereien beim filtern sparen.
so, das wars erst mal von meiner seite. vielen dank schon mal im voraus für eure antworten.
gruß turbo
1. warum verbaut nvidia für das antialiasing eigentlich keinen m-buffer, das entsprechende know-how besitzen sie durch die übernahme von 3dfx ja. handelt es sich beim m-buffer nicht um eine der besten möglichkeiten, aa zu realisieren? gibt es bestimmte vor- und nachteile eines m-buffers? das 8x ssaa der voodoo 5 6000 ist - auch wenn ich es leider nie live sehen konnte - in meinen augen auch nach 5 jahren immer noch unerreicht.Multisampling-Buffer werden genutzt. G70 kann 4x RGSSAA, und damit die AA-Qualität der Voodoo5 5500 erzeugen. Das ist allerdings im Treiber (noch?) nicht freigeschaltet.
2. was ist eigentlich genau unter dem spatialen jittering zu verstehen, das damals von 3Dfx in verbindung mit ihrem t-buffer eingesetzt wurde?Darunter ist das sparse grid zu verstehen, bei 4x und 2x manchmal auch rotated grid genannt.
3. wäre es mit einem solchen m-buffer eigentlich ohne probleme möglich, alle aa-modi sowohl als ms als auch ss oder gar ms/ss mischmodi anzubieten?Die Mischmodi werden anders erzeugt, mit "nachträglichem" Oversampling. Multisampling nutzt Multisample-Buffer, aber wie man das genau nennt, ist nicht entscheidend. Mit Multisample-Buffern kann man allerdings auch andere Effekte erzeugen, z. B. diejenigen die 3dfx als T-Buffer-Effekte vermarktet hat.
4. hätte das so erzeugte aa eigentlich ebenfalls probleme mit den sogenannten fullscreen-effekten? hängt das eventuell von der implementierung des m-buffers ab?Das hängt immer davon ab. Vernünftig implementiertes AA schließt Fullscreen-Effekte nicht aus.
5. 8x8 (also 64x) ss hat ja - eine entsprechende lod-anspassung vorausgesetzt - den effekt von 8x af. gilt dies auch, wenn ein handoptimiertes samplemuster mit einem eer von 8x8, aber nur 8 subpixeln zum einsatz kommt?Die LOD-Anpassung geschieht beim Oversampling automatisch. Bei der Voodoo4/5-Technik wäre es günstiger, wenn der Treiber automatisch dafür gesorgt hätte. Ein 8x sparse grid AA kann nicht 8x AF ersetzen.
6. msaa + tssaa und dann werden womöglich noch immer nicht alle kanten geglättet, das kann ich nicht brauchen. macht es wirklich so viel unterschied, ob man 8x msaa + 8x tssaa + 8x af einsetzt? könnte man da theoretisch nicht gleich einfach 8x ssaa auswählen? pixelfüllrate haben die grafikchips inzwischen ja mehr als genug. und richtiges af (das winkelabhängige af kann man ja in die tonne kloppen) kostet ja auch richtig performace.MSAA und T-AA Supersampling glättet doch alles. (Alles, worauf es ankommt.)
7. warum verbaut nvidia inzwischen eigentlich nur noch bi-tmus? bei ganzen 302 millionen transistoren des g70 hätte das doch sicher nicht mehr so viel ausgemacht tri-tmus zu verbauen. und dann könten sie sich auch diese ganzen tricksereien beim filtern sparen.Bilineare Samples zu erzeugen kostet weniger Bandbreite. Bestimmte Textursamplings im Pixelshader benötigen nur Bi-Samples. Im Prinzip ist es immer besser, z. B. 16 bi-samples pro Takt statt 8 tri-Samples pro Takt zu erzeugen. Noch besser wären natürlich 16 tri-Samples, oder im Falle G70 gar 24 tri-Samples. Allerdings müsste man hier am besten mit einer 4x4-Filtermatrix arbeiten, das kostet deutlich mehr Transistoren als ein Bi-Sample (mit einem 2x2-Kernel) zu berechnen.
1. Tun sie (ATI auch).
2. Dass für jedes Sample das Dreieck etwas verschoben betrachtet wird, so dass sich ein sparse Grid ergibt.
3. Ja.
4. Nein, das kommt davon dass Fullscreen-Effekte das Bild als Textur benötigen. In etwas älteren DirectX-Versionen war es noch nicht möglich, Rendertarget-Texturen mit AA zu erzeugen. Das geht nun (und einige Spiele wurden gepatcht).
5. Nein. Dafür ist nämlich der Sampleabstand maßgebend.
6. Supersampling ist generell die (von der Performance her) teuerste Methode für "richtiges" Antialiasing. Allerdings auch die simpelste.
7. NVidia hatte nur beim NV10 Tri-TMUs. Der bilineare Filter ist ein Bestandteil des trilinearen Filters, und manchmal braucht man auch Bilinear, da kommen Bilineare TMUs vom Kosten/Nutzen-Verhältnis wohl besser weg. Trilineare TMUs bräuchten nochmal mehr Bandbreite, eine breitere Cache-Anbindung, mehr Cache, mehr Filterlogik.
turboschlumpf
2005-07-12, 05:21:34
zu 1.:
echt, es kommen m-buffer zum einsatz? oder ist das sowieso die einzige möglichkeit, das heute von ati und nvidia verwendete antialiasing zu implementieren?
G70 kann 4x RGSSAA, und damit die AA-Qualität der Voodoo5 5500 erzeugen. Das ist allerdings im Treiber (noch?) nicht freigeschaltet.
ist das das verfahren, welches beim zuschalten von tssaa zum einsatz kommt?
apropos tssaa, benutzt das immer genau so viele samples wie der normale aa-modus der gerade eingestellt ist? wie ist das dann bei 8x aa?
hmpf, warum bringt nvidia eigentlich keine klare linie in ihre aa-modi? 2x, 4x und 8x sparsed grid aa wäre doch optimal. am besten sowohl als ss als auch als ms. bei diesen ganzen halbgaren mischmodi die dauernd geändert werden und wo immer wieder welche dazukommen und wegfallen blickt doch keiner mehr durch!
zu 2.:
spatiales jittering heißt also, dass für jedes aa-sample das entsprechende dreieck etwas verschoben wird. handelt es sich dann eigentlich nicht bei allen aktuellen verfahren (stures oversampling mal ausgeschlossen) um spatiales jittering?
zu 3.:
@ xmas mittels eines solchen m-buffers kann man die aa-modi also ohne probleme sowohl als ss als auch als ms anbieten. könnte man dann theoretisch bei 8x aa auch einfach 4 ms-samples und 4 ss-samples verwenden?
Die Mischmodi werden anders erzeugt, mit "nachträglichem" Oversampling.weil es gar nicht anders (s.o.) geht, weil es aktuell bei nvidia nicht anders geht oder weil es bis jetzt nicht anders ging? kann der g70 weiterhin nur 4 msaa-samples erzeugen? liegt es daran? wie muss man sic dieses "nachträgliche oversampling" genau vorstellen?
Multisampling nutzt Multisample-Buffer, aber wie man das genau nennt, ist nicht entscheidend. Mit Multisample-Buffern kann man allerdings auch andere Effekte erzeugen, z. B. diejenigen die 3dfx als T-Buffer-Effekte vermarktet hat.
dass man per m-buffer beispielsweise auch motion blur erzeugen kann weiß ich. den ersten satz verstehe ich aber nicht. wie man was genau nennt? könnte man supersampling über multisample-buffer nicht auch multisampling nennen, da ja mehrfach gesampelt wird?
zu 4.:
@ xmas könnte man das aa über m-buffer also so hinbiegen, dass es auf keinen fall probleme mit fullscreen-effekten hat? egal, wie diese bei dem jeweiligen spiel implementiert wurden?
zu 5.:
kann sparsed grid ssaa überhaupt af ersetzen? welcher af-faktor wäre äquivalent zu 8x sgssaa?
btw: hat ein 8x sparsed grid auch zwingend ein eer von 8x8?
zu 6.:
MSAA und T-AA Supersampling glättet doch alles. (Alles, worauf es ankommt.)
erzeugt 4x msaa + 4x tssaa + 4x af wirklich die gleiche bildqualität wie 16x ss?
Supersampling ist generell die (von der Performance her) teuerste Methode für "richtiges" Antialiasing. Allerdings auch die simpelste.
naja, und auch die problemloseste wenn ich mir die probleme von msaa bei alphatest-kanten, das winkelabhängige und tot"optimierte" af oder auch die immer mehr flimmernden texturen ansehe.
man könnte in zukunft übrigens anstatt 4x msaa + 4x af aufgrund des winkelabhängigen af einfach 16x ss benchen um nvidia eins auszuwischen, hrhr. wobei, 4x4 ssaa können die karten gar nicht, oder?
zu 7.:
Bilineare Samples zu erzeugen kostet weniger Bandbreite. Bestimmte Textursamplings im Pixelshader benötigen nur Bi-Samples.
tri-tmus wären u.U. also langsamer als bi-tmus? aber ich meine bilineare filterung ist doch überholt, und wenn größtenteils nur noch trilineare filterung zum einsatz kommt wäre es doch auch besser, tri-tmus zu verbauen.
Im Prinzip ist es immer besser, z. B. 16 bi-samples pro Takt statt 8 tri-Samples pro Takt zu erzeugen.
klar. aber viel mehr transistoren benötigt eine tri-tmu denn gegenüber einer bi-tmu prozentual gesehen? und wie viele transistoren wären das dann?
zu 1.:
echt, es kommen m-buffer zum einsatz? oder ist das sowieso die einzige möglichkeit, das heute von ati und nvidia verwendete antialiasing zu implementieren?
M-Buffer (oder T-Buffer) ist nichts irgendwie großartig besonderes. Halt ein Buffer der Daten pro Sample speichert, und Maskierung beim Schreiben zulässt. Natürlich kommt heute noch Kompression dazu.
ist das das verfahren, welches beim zuschalten von tssaa zum einsatz kommt?
apropos tssaa, benutzt das immer genau so viele samples wie der normale aa-modus der gerade eingestellt ist? wie ist das dann bei 8x aa?
Ja.
Ja.
8xAA ist 4xMS mit 2xSS. TSAA "ersetzt" das Multisampling durch Supersampling. Also bekommst du 8xSSAA für die vom TSAA erfassten Flächen.
hmpf, warum bringt nvidia eigentlich keine klare linie in ihre aa-modi? 2x, 4x und 8x sparsed grid aa wäre doch optimal. am besten sowohl als ss als auch als ms. bei diesen ganzen halbgaren mischmodi die dauernd geändert werden und wo immer wieder welche dazukommen und wegfallen blickt doch keiner mehr durch!
Weil die Chips nicht mehr als 4xMSAA können. Alles darüber muss in Verbindung mit OGSS erreicht werden.
zu 2.:
spatiales jittering heißt also, dass für jedes aa-sample das entsprechende dreieck etwas verschoben wird. handelt es sich dann eigentlich nicht bei allen aktuellen verfahren (stures oversampling mal ausgeschlossen) um spatiales jittering?
Nein. Als spatial jittering bezeichnet man es eigentlich nur wenn das Dreieck deswegen auch mehrfach durchs Triangle Setup muss. Was übrigens bei TSAA der Fall ist.
zu 3.:
@ xmas mittels eines solchen m-buffers kann man die aa-modi also ohne probleme sowohl als ss als auch als ms anbieten. könnte man dann theoretisch bei 8x aa auch einfach 4 ms-samples und 4 ss-samples verwenden?
Ganz ohne Probleme haut das nicht hin, zumindest bei NVidia-Chips vor G70. Die Samplezahl rein mit M-Buffer ohne zusätzliches OGSS ist bei heutigen Chips auf 4 oder 6 begrenzt. Innerhalb dessen kann man verschiedene Kombinationen realisieren, auch unsinnige. So kann man für 4xAA 2xMS mit 2xSS kombinieren, oder für 6xAA 3xSS mit 2xMS oder andersrum. Oder auch 4xSS mit "1,5xMS", also zwei Farbwerte werden zwei Samples zugeordnet, und zwei andere nur einem Sample.
weil es gar nicht anders (s.o.) geht, weil es aktuell bei nvidia nicht anders geht oder weil es bis jetzt nicht anders ging? kann der g70 weiterhin nur 4 msaa-samples erzeugen? liegt es daran? wie muss man sic dieses "nachträgliche oversampling" genau vorstellen?
Weil es bis jetzt nicht anders ging, und G70 könnte als Mischmodus auch nur "4xS" groß verbessern.
Die Mischmodi entstehen, indem man z.B. für 8xS bei einer eingestellten Auflösung von 1024x768 stattdessen 1024x1536 mit 4xMSAA rendert. Das Downsamplen aller 8 Samples pro Pixel kann man dann in einem Aufwasch erledigen.
dass man per m-buffer beispielsweise auch motion blur erzeugen kann weiß ich. den ersten satz verstehe ich aber nicht. wie man was genau nennt? könnte man supersampling über multisample-buffer nicht auch multisampling nennen, da ja mehrfach gesampelt wird?
Ich denke aths wollte damit sagen dass der Multisample-Buffer nicht auf Multisampling beschränkt ist.
zu 4.:
@ xmas könnte man das aa über m-buffer also so hinbiegen, dass es auf keinen fall probleme mit fullscreen-effekten hat? egal, wie diese bei dem jeweiligen spiel implementiert wurden?
Nein, denn das hat überhaupt nichts mit dem Wie des AA zu tun. Sondern dass Anwendungen nicht angeben (konnten) dass sie für Textur-Rendertargets überhaupt AA wollen.
zu 5.:
kann sparsed grid ssaa überhaupt af ersetzen? welcher af-faktor wäre äquivalent zu 8x sgssaa?
<3x
btw: hat ein 8x sparsed grid auch zwingend ein eer von 8x8?
Ja, das ist die Definition eines Sparse (ohne d) Grids in diesem Zusammenhang.
zu 6.:
erzeugt 4x msaa + 4x tssaa + 4x af wirklich die gleiche bildqualität wie 16x ss?
Nein (welches Samplepattern?), aber es ist wesentlich schneller.
naja, und auch die problemloseste wenn ich mir die probleme von msaa bei alphatest-kanten, das winkelabhängige und tot"optimierte" af oder auch die immer mehr flimmernden texturen ansehe.
man könnte in zukunft übrigens anstatt 4x msaa + 4x af aufgrund des winkelabhängigen af einfach 16x ss benchen um nvidia eins auszuwischen, hrhr. wobei, 4x4 ssaa können die karten gar nicht, oder?
Doch, können sie.
Das Kostenargument macht Supersampling unattraktiv, da kann es bei hoher Samplezahl noch so gut aussehen.
zu 7.:
tri-tmus wären u.U. also langsamer als bi-tmus? aber ich meine bilineare filterung ist doch überholt, und wenn größtenteils nur noch trilineare filterung zum einsatz kommt wäre es doch auch besser, tri-tmus zu verbauen.
Tri-TMUs wären natürlich immer mindestens genauso Schnell, nur könnte man dann vielleicht nicht so viele implementieren.
Bilineare Filterung ist immer noch der Grundstein der Texturfilterung. Und bei AF macht man mit Tri-TMUs unter Umständen mehr Arbeit als nötig.
klar. aber viel mehr transistoren benötigt eine tri-tmu denn gegenüber einer bi-tmu prozentual gesehen? und wie viele transistoren wären das dann?
Das kann dir nur jemand sagen, der sowas schon mal Entwickelt hat.
Das hängt immer davon ab. Vernünftig implementiertes AA schließt Fullscreen-Effekte nicht aus.
sollte es nicht eher heißen: vernünftig implementierte fullscreen-effekte schließen FSAA nicht aus?
turboschlumpf
2005-07-14, 04:25:32
M-Buffer (oder T-Buffer) ist nichts irgendwie großartig besonderes. Halt ein Buffer der Daten pro Sample speichert, und Maskierung beim Schreiben zulässt. Natürlich kommt heute noch Kompression dazu.
hm, k. da ich in verbindung mit nvidia nie von einem m-buffer gelesen habe bin ich davon ausgegangen, dass dieses verfahren nicht zum einsatz kommt.
Ja.
Ja.
8xAA ist 4xMS mit 2xSS. TSAA "ersetzt" das Multisampling durch Supersampling. Also bekommst du 8xSSAA für die vom TSAA erfassten Flächen.
hm, aber auch g70 kann doch maximal 4x rgss in "hardware".
hier muss man zwischen den in hardware unterstützen aa-modi und dem oversampling unterscheiden, das zusätzlich zu diesen modi beliebig zum einsatz kommen kann, oder? 8x tssaa kombiniert also das in hardware unterstütze 4x rgss mit einem zusätzlichen 2x oversampling einer achse?
Weil die Chips nicht mehr als 4xMSAA können.
klar, aber warum wird es nicht implementiert? ati bietet doch auch schon seit ner ewigkeit bis zu 6x sparsed an. bis auf kleine details kann der g70 im bezug auf aa nicht mehr als meine gf4 ti 4600.
Alles darüber muss in Verbindung mit OGSS erreicht werden.
ogss ist zwar schon richtig, wäre oversampling aber nicht die missverständlichere bezeichnung?
Ganz ohne Probleme haut das nicht hin, zumindest bei NVidia-Chips vor G70. Die Samplezahl rein mit M-Buffer ohne zusätzliches OGSS ist bei heutigen Chips auf 4 oder 6 begrenzt. Innerhalb dessen kann man verschiedene Kombinationen realisieren, auch unsinnige. So kann man für 4xAA 2xMS mit 2xSS kombinieren, oder für 6xAA 3xSS mit 2xMS oder andersrum. Oder auch 4xSS mit "1,5xMS", also zwei Farbwerte werden zwei Samples zugeordnet, und zwei andere nur einem Sample.
das mit den mehr oder weniger sinnvollen kombinationen ist mir klar. der g70 scheint aber 2x aa und 4x aa sowohl als rgms als auch als rgss zu unterstützen (letzteres zumindest für das tssaa, auch wenn die modi für das normale aa noch nicht freigeschaltet sind). mit oversampling lassen sich dann ja wiederum alle aa-modi kombinieren.
und G70 könnte als Mischmodus auch nur "4xS" groß verbessern.
wie meinst du das?
Nein (welches Samplepattern?), aber es ist wesentlich schneller.
wenn man den vorteil von 16x aa gegenüber 4x rgaa vernachlässigt, in welchen punkten hat dann 16x ss noch vorteile in der bildqualität?
Doch, können sie.
wirklich? ok, bei g70 könnte man das (im treiber noch nicht freigeschaltete) 4x rgss mit 2x2 oversampling kombinieren. aber wie wäre es bei der gf6-reihe?
Das Kostenargument macht Supersampling unattraktiv, da kann es bei hoher Samplezahl noch so gut aussehen.
gibt es irgendwo einen vergleich zwischen 4x rgms + 4x rgtss + 4x af und 16x ss oder 4x rgss + 2x af? supersampling sieht einfach toll aus, und ich meine wenn selbst die voodoo 5 rgss in akzeptabler geschwindigkeit darstellen konnte dann wird das der g70 mit seiner 10x so hohen füllrate doch wohl auch schaffen.
edit:
nur um diesbezüglich klarheit zu haben, der g70 schafft weiterhin nur 4 aa-samples in hardware, richtig?
wie bestimmt man eigentlich den af-äquivalenzgrad von rgss?
und dann noch mal die frage von oben, handelt es sich bei supersampling über m-buffer nicht eigentlich auch um multisampling, da ja mehrfach gesampelt wird? oder ist supersampling nur eine besondere art des multisampling?
hier muss man zwischen den in hardware unterstützen aa-modi und dem oversampling unterscheiden, das zusätzlich zu diesen modi beliebig zum einsatz kommen kann, oder? 8x tssaa kombiniert also das in hardware unterstütze 4x rgss mit einem zusätzlichen 2x oversampling einer achse?
Ja.
klar, aber warum wird es nicht implementiert? ati bietet doch auch schon seit ner ewigkeit bis zu 6x sparsed an. bis auf kleine details kann der g70 im bezug auf aa nicht mehr als meine gf4 ti 4600.
Die kleinen Details sind eigenlich schon recht groß: Rotated Grid, Gamma-Anpassung, Centroid Sampling.
Mehr kostet halt Transistoren und Designaufwand, und scheinbar lag es bisher auf der Prioritätenliste nicht hoch genug.
ogss ist zwar schon richtig, wäre oversampling aber nicht die missverständlichere bezeichnung?
Missverständlicher?
OGSS ist die genauere Bezeichnung, finde ich.
wie meinst du das?
Weil G70 auf 4xRG(SS/MS) beschränkt ist, kann man von den Mischmodi eigentlich nur 4xS entscheidend verbessern, von EER 4x2 auf EER 4x4 eben. Einen 8x-Modus müsste man mit insgesamt 4x Supersampling realisieren, um eine Verbesserung zu erreichen.
wenn man den vorteil von 16x aa gegenüber 4x rgaa vernachlässigt, in welchen punkten hat dann 16x ss noch vorteile in der bildqualität?
Wenn ich den Vorteil weglasse, welchen Vorteil hat es dann? :confused:
wirklich? ok, bei g70 könnte man das (im treiber noch nicht freigeschaltete) 4x rgss mit 2x2 oversampling kombinieren. aber wie wäre es bei der gf6-reihe?
4x4 OGSS. Geht aber nur bis 1024er-Auflösungen.
gibt es irgendwo einen vergleich zwischen 4x rgms + 4x rgtss + 4x af und 16x ss oder 4x rgss + 2x af? supersampling sieht einfach toll aus, und ich meine wenn selbst die voodoo 5 rgss in akzeptabler geschwindigkeit darstellen konnte dann wird das der g70 mit seiner 10x so hohen füllrate doch wohl auch schaffen.
Aber kaum über 4xSS hinaus. Für den Vergleich müsstest du einen G70-Besitzer fragen.
edit:
nur um diesbezüglich klarheit zu haben, der g70 schafft weiterhin nur 4 aa-samples in hardware, richtig?
Ja.
wie bestimmt man eigentlich den af-äquivalenzgrad von rgss?
Das ist gar nicht so einfach. AFAIK geht folgendes: male ein Voronoi-Diagramm für das Samplepattern, dann bestimme den längsten Abstand, den es zwischen zwei Samplepunkten in benachbarten Zellen gibt. Dann teilt man die Länge einer Pixeldiagonale durch den gefundenen Abstand.
und dann noch mal die frage von oben, handelt es sich bei supersampling über m-buffer nicht eigentlich auch um multisampling, da ja mehrfach gesampelt wird? oder ist supersampling nur eine besondere art des multisampling?
Bei Multisampling berechnet man einen Farbwert für mehrere Geometriesamples pro Pixel. Bei Supersampling berechnet man einen Farbwert für jedes Geometriesample. Ob mit M-Buffer oder ohne spielt nach dieser Definition gar keine Rolle.
turboschlumpf
2005-07-19, 04:29:06
etwas verspätet, aber hier meine antwort:
hier muss man zwischen den in hardware unterstützen aa-modi und dem oversampling unterscheiden, das zusätzlich zu diesen modi beliebig zum einsatz kommen kann, oder? 8x tssaa kombiniert also das in hardware unterstütze 4x rgss mit einem zusätzlichen 2x oversampling einer achse?Ja.bzw. genauer: bei 8x tssaa wird das 4x rgss für die entsprechenden bildteile mit dem aufgrund des beim "normalen" 8x aa sowieso vorhandenen 2x oversampling kombiniert. das wäre insofern ein unterschied, weil das oversampling das beim normalen aa zum einsatz kommt dann auch zwangsweise beim taa zum einsatz kommen muss.
Missverständlicher?
OGSS ist die genauere Bezeichnung, finde ich.ich finde die bezeichnung oversampling besser, denn mehr ist es ja nicht. wenn hier klarer/unmissverständlicher unterschieden würde, würden user vielleicht nicht nachfragen, ob man auch einen 4x rgss + 4x rgms mischmodus anbieten könnte.für mich suggeriert die bezeichnung og*saa einfach, dass das eine hardwaregeschichte ist. denn 4x ogss könnte auch in hardware realisiert sein(wie das 4x ogms der gf4). 2x2 oversampling wäre hingegen unmissverständlich.
Weil G70 auf 4xRG(SS/MS) beschränkt ist, kann man von den Mischmodi eigentlich nur 4xS entscheidend verbessern, von EER 4x2 auf EER 4x4 eben.[uote]das verwirrt mich jetzt etwas. man könnte den mischmodus 4xS nicht verbessern sondern ersetzen durch den nicht-mischmodus 4x rgms. ich denke das hast du gemeint.
[quote=xmas]Einen 8x-Modus müsste man mit insgesamt 4x Supersampling realisieren, um eine Verbesserung zu erreichen.eine verbesserung gegenüber welchem modus mit welchem samplemuster in welcher ss/ms-kombination? welche kombination wurde denn bis jetzt verwendet? beim g70 ist es 4x rgms + 1x2 oversampling (in der y-achse), ergibt ein eer von 4x4.
Wenn ich den Vorteil weglasse, welchen Vorteil hat es dann? :confused:da ich mich nicht so auskenne hätte es aus meiner sicht ja sein können, das 4x4 oversampling noch weitere vorteile in der bildqualität hat gegenüber der kombination von ms, tss und af. denn aths schrieb "MSAA und T-AA Supersampling glättet doch alles. >>(Alles, worauf es ankommt.)<<". eigentlich meinte ich: würde 16x ogms + 16x ogtss + 4x af exakt die gleiche bildqualität erzeugen wie 16x ogss?
Aber kaum über 4xSS hinaus. Für den Vergleich müsstest du einen G70-Besitzer fragen.aber 4x rgss + 2x af dürfte nicht viel langsamer sein als 4x rgms + 4x rgtss + 4x af (nicht-winkelabhängiges af vorausgesetzt), oder? wobei: was wäre der af-äquivalenzgrad für 4x rgss (bei dem verfahren das du genannte hast verstehe ich leider nur bahnhof). oder bleibt der aufgrund der weiterhin 4 vorhandenen samplepunkten im vergleich zu 2x2 oversampling identisch, entspricht also 2x af?
Bei Multisampling berechnet man einen Farbwert für mehrere Geometriesamples pro Pixel. Bei Supersampling berechnet man einen Farbwert für jedes Geometriesample. Ob mit M-Buffer oder ohne spielt nach dieser Definition gar keine Rolle.ok. wenn man diese definitionen nicht kennt könnte man auch auf die idee kommen alles was über multisample-buffer realisiert wird heißt multisampling (mehrere bilder -> multi) und alles was mittels oversampling realisiert wird heißt supersampling (größeres bild -> super).
und noch ne frage: sind die optimalen samlemuster für 8x sgaa (da gibt es ja ganz sicher mehrere mehr oder weniger gleichwertige) zwangsweise lösungen des n-damen-problems oder gibt es vielleicht andere, bessere samplemuster? beim 6x sgmsaa von ati ist dies ja nicht der fall.
ich finde die bezeichnung oversampling besser, denn mehr ist es ja nicht. wenn hier klarer/unmissverständlicher unterschieden würde, würden user vielleicht nicht nachfragen, ob man auch einen 4x rgss + 4x rgms mischmodus anbieten könnte.für mich suggeriert die bezeichnung og*saa einfach, dass das eine hardwaregeschichte ist. denn 4x ogss könnte auch in hardware realisiert sein(wie das 4x ogms der gf4). 2x2 oversampling wäre hingegen unmissverständlich.
Ob es eine "Hardwaregeschichte" ist oder nicht, spielt eigentlich kaum eine Rolle. OGSS sagt alles wichtige aus, Oversampling ist eigentlich falsch da es hier keine Überabtastung geben kann.
das verwirrt mich jetzt etwas. man könnte den mischmodus 4xS nicht verbessern sondern ersetzen durch den nicht-mischmodus 4x rgms. ich denke das hast du gemeint.
Nein, man könnte den Mischmodus 4xS (2xRGMS mit 2xOGSS) durch einen anderen Mischmodus (2xMS mit 2xSS, Pattern insgesamt wie 4xSG) ersetzen.
eine verbesserung gegenüber welchem modus mit welchem samplemuster in welcher ss/ms-kombination? welche kombination wurde denn bis jetzt verwendet? beim g70 ist es 4x rgms + 1x2 oversampling (in der y-achse), ergibt ein eer von 4x4.
Eine Verbesserung gegenüber den bisherigen 8x-Modi. Will man einen besseren Modus als die bisherigen, müsste man insgesamt 4xSS in Kauf nehmen.
da ich mich nicht so auskenne hätte es aus meiner sicht ja sein können, das 4x4 oversampling noch weitere vorteile in der bildqualität hat gegenüber der kombination von ms, tss und af. denn aths schrieb "MSAA und T-AA Supersampling glättet doch alles. >>(Alles, worauf es ankommt.)<<". eigentlich meinte ich: würde 16x ogms + 16x ogtss + 4x af exakt die gleiche bildqualität erzeugen wie 16x ogss?
Nein, das 16xOGSS würde in der Regel besser aussehen. Nur dort wo das TSS anspringt, ist natürlich die Kombination 16xTSS+4xAF besser als nur 16xSS.
aber 4x rgss + 2x af dürfte nicht viel langsamer sein als 4x rgms + 4x rgtss + 4x af (nicht-winkelabhängiges af vorausgesetzt), oder? wobei: was wäre der af-äquivalenzgrad für 4x rgss (bei dem verfahren das du genannte hast verstehe ich leider nur bahnhof). oder bleibt der aufgrund der weiterhin 4 vorhandenen samplepunkten im vergleich zu 2x2 oversampling identisch, entspricht also 2x af?
Für ein 4x SG wäre das etwa 1,8.
4xRGSS + 2xAF wird in der Regel sogar deutlich langsamer sein,außer es gibt massenhaft Vegetation oder ähnliches mit Alpha-Test.
ok. wenn man diese definitionen nicht kennt könnte man auch auf die idee kommen alles was über multisample-buffer realisiert wird heißt multisampling (mehrere bilder -> multi) und alles was mittels oversampling realisiert wird heißt supersampling (größeres bild -> super).
Das wäre allerdings eine ziemlich unbrauchbare Definition, da man je nach Speicherlayout auch sagen kann, dass Supersampling mehrere Bilder erzeugt. Außerdem äußert sich dies nicht im Resultat.
und noch ne frage: sind die optimalen samlemuster für 8x sgaa (da gibt es ja ganz sicher mehrere mehr oder weniger gleichwertige) zwangsweise lösungen des n-damen-problems oder gibt es vielleicht andere, bessere samplemuster? beim 6x sgmsaa von ati ist dies ja nicht der fall.
Lösungen des N-Damen-Problems sind hier nicht zwangsweise optimal, weil diese auch diagonal keine zwei Samplepunkte in einer Reihe erlauben. 45°-Kanten sind aber eher unkritisch beim AA.
ok. wenn man diese definitionen nicht kennt könnte man auch auf die idee kommen alles was über multisample-buffer realisiert wird heißt multisampling (mehrere bilder -> multi) und alles was mittels oversampling realisiert wird heißt supersampling (größeres bild -> super).
prinzipiell wird beim supersampling für jedes sample einen gefilterten pixel verwendet (bzw. pixelshader etc. durchlaufen)
beim multisampling braucht man dagegen nur für jedes pixel einen gefilterten pixel (bzw. shaderdurchläufe)
DanMan
2005-07-20, 20:04:58
Wenn ich den Thread mal für eine blöde Frage meinerseits gebrauchen darf:
Was würde eigentlich für ein Bild herauskommen wenn man Pointsampling mit Supersampling kombinieren würde? Immernoch Pixelbrei?
Was würde eigentlich für ein Bild herauskommen wenn man Pointsampling mit Supersampling kombinieren würde? Immernoch Pixelbrei?
das kommt auf die texturauflösung an. ist diese hoch genug so dass die texel praktisch nicht vergrößert werden müssen (auf subpixelbasis bezogen) würde das ganze garnicht mal so schlimm aussehen. das leichte flimmern dass durch point-sampling entsteht würde wohl großteils unterdrückt werden.
wenn du ein aktuelles spiel mit hochauflösenden texturen ansiehst sieht es nichtmal ohne FSAA allzu schlimm aus (so lange du nicht nahe an eine wand oä. gehst.
prinzipiell kann FSAA aber nicht die unzulänglichkeiten von point-sampling reparieren (zumal bilinear sowieso for free ist)
Mit oder ohne Mipmaps? Mit genügend Samples würde es schon einigermaßen ordentlich aussehen (ohne Mipmaps nur bis zu einer gewissen Entfernung), jedoch bei Nahansicht oder bei niedrig aufgelösten Lightmaps würde man Pixelblöcke sehen.
DanMan
2005-07-20, 21:11:42
Mit oder ohne Mipmaps? Mit genügend Samples würde es schon einigermaßen ordentlich aussehen (ohne Mipmaps nur bis zu einer gewissen Entfernung), jedoch bei Nahansicht oder bei niedrig aufgelösten Lightmaps würde man Pixelblöcke sehen.
Mit Mipmaps denk ich. Andererseits könnte das Downsampling doch auch das Supersampling übernehmen, oder?
Ich frag mich das halt, weil man bei Pixelshadern ja auch per-pixel arbeitet, und die Leistung von Grafikkarten heute ja hoch genug für Supersampling ist.
Darum wär meine 2. Frage (in Anlehnung an den Beitrag vom Gast), ob es Geschwindigkeit bringen würde, die GPUs nicht mehr auf Quads zu basieren (also nicht auf bilineare Pipelines wenn ich das so richtig verstanden hab), sondern auch "nur" auf Pointsampling und damit quasi per-pixel Funktionsweise? Quasi die Leistung, die fürs bilineare Filtern gebraucht wird gleich von vornherein ohne Umweg ins FSAA stecken.
Oder würde es mehr bringen die Pipelines gleich wieder trilinear zu bauen?
Ich hoffe ich rede hier nicht zuviel Blödsinn. :redface:
Mit Mipmaps.
Ich frag mich das halt, weil man bei Pixelshadern ja auch per-pixel arbeitet, und die Leistung von Grafikkarten heute ja hoch genug für Supersampling ist.
Darum wär meine 2. Frage (in Anlehnung an den Beitrag vom Gast), ob es Geschwindigkeit bringen würde, die GPUs nicht mehr auf Quads zu basieren (also nicht auf bilineare Pipelines wenn ich das so richtig verstanden hab), sondern auch "nur" auf Pointsampling und damit quasi per-pixel Funktionsweise? Quasi die Leistung, die fürs bilineare Filtern gebraucht wird gleich von vornherein ohne Umweg ins FSAA stecken.
Oder würde es mehr bringen die Pipelines gleich wieder trilinear zu bauen?
(ordentliche) texturfilterung ist immer effizienter wenn es darum geht eine gewisse grundleistung in qualität umzusetzen.
schon 2x2SSAA braucht die 4-fache füllrate (und würde für ein derartiges vorhaben wohl nicht ausreichen)
ich schätze dass du schon mindestens 4x4FSAA brauchst um wirkliche eine vernünftige qualität zu erhalten. da müsstest du schon 16x so viele pipelines einbauen müssen um auf den gleichen speed wie bei bilinearer filterung ohne SSAA zu kommen, das wird sich niemals ausgehen (selbst die 4-fache pipe-anzahl wäre irreal)
zudem rechnet der bilineare filter zusätzlich noch genauer (texel werden gewichtet und nicht wie beim FSAA mit gleichem gewicht verrechnet)
gegen mip-banding hilft dir SSAA auch nicht viel
tri-TMUs wird es wohl auch kaum in näherer zukunft geben. wenn du die pipestruktur von X*1-trilinear hast ist der aufwand zu X*2-bilinear nur mehr sehr gering, und im zweifelsfall ist zweiteres schneller, in den meisten fällen gleich schnell aber niemals schlechter, und der mehraufwand ist sehr gering.
da in zukunft aber die füllrate immer unwichtiger im verhältnis zur shaderpower wird, kann ich mir nicht vorstellen dass wir nochmal X*2 TMUs sehen werden, eher im gegenteil. es wäre denkbar die TMUs aus den "pipelines" (das wort kann man eigentlich nicht mehr benutzen) zu entkoppeln und mehr "shader-pipelines" als TMUs zu verbauen (ähnlich wie momentan mit den ROPs beim G70)
Mit Mipmaps denk ich. Andererseits könnte das Downsampling doch auch das Supersampling übernehmen, oder?
Nur zu einem geringen Grad. Man bräuchte viel zu viele Samples für ein richtig brauchbares Bild.
Darum wär meine 2. Frage (in Anlehnung an den Beitrag vom Gast), ob es Geschwindigkeit bringen würde, die GPUs nicht mehr auf Quads zu basieren (also nicht auf bilineare Pipelines wenn ich das so richtig verstanden hab), sondern auch "nur" auf Pointsampling und damit quasi per-pixel Funktionsweise? Quasi die Leistung, die fürs bilineare Filtern gebraucht wird gleich von vornherein ohne Umweg ins FSAA stecken.
Quad-Pipelines haben direkt nichts mit dem bilinearen Filter zu tun. Schließlich gab es diesen schon bei den ersten 3D-Chips mit einer einzigen Pixel-Pipeline.
Zur Pixelpipeline gehört ja weit mehr als nur die Textursampler. Und bilineares Filtern ist, was die Bandbreite angeht, praktisch umsonst.
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.