Archiv verlassen und diese Seite im Standarddesign anzeigen : Aths's neuer Artikel
MadManniMan
2001-12-10, 18:01:30
Schweinegeile sache, dies. Und diesmal kann sich nun wirklich niemand über unsachlickkeiten beschweren, nicht?
Labberlippe
2001-12-11, 01:33:17
Hoffentlich wird diskutiert darüber.
Somit bestätigt sich auch meine Meinung das T&L zwar eine nette Funktion ist, aber optisch mit Filtern die Grafik mächtig aufgepeppt werden kann.
Nur die Polygonzahlen hochdrehen bringt auch nichts auser es wird mit Hirn verwendet. Beispiel Truform.
Gruss Labberlippe
Leonidas
2001-12-11, 05:34:42
Ich glaub, hier gibt es kaum was zu diskutieren. Ist einfach in sich perfekt, der Artikel.
GAMaus
2001-12-11, 06:38:08
Echt geil!
Super verstaendlich und vor allem sehr sachlich!
Gute Arbeit!!
Anárion
2001-12-11, 08:16:00
um welchen geht's? ??? War ne Zeit lang nicht da! :(
Thowe
2001-12-11, 11:22:42
http://www.3dcenter.de/artikel/grafikfilter/
Voodoo3Killer
2001-12-11, 14:12:31
...habs mal durchgelesen...
...versteh allerdings nicht alles :D
Voodoo3-Killer,
was hast du denn nicht verstanden?
Legolas
2001-12-11, 15:00:18
Originally posted by aths
Voodoo3-Killer,
was hast du denn nicht verstanden?
Vielleicht die Matrixenmultiplikation, aber für was macht man in der Schule Vektorgeometrie, wenn nicht für sowas :D:D
Voodoo3Killer
2001-12-11, 15:36:32
Originally posted by aths
Voodoo3-Killer,
was hast du denn nicht verstanden?
Im allgemeinen ist ja der Artikel doch auf einem sehr hohen Niveau geschrieben. Im großen und ganzen hab' ich die Unterschiede/Vorteile/Nachteile der verschiedenen Filter(-arten) schon verstanden, nur manche Berechnung oder tiefergehende Information war mir dann doch nicht ganz verständlich, liegt aber wahrscheinlich nicht an deinem Artikel, sondern an meiner "geringen Vorkenntnis"...
Voodoo3Killer,
du würdest mir eine Freude machen, wenn du einige Stellen die dir unklar (geblieben) sind, posten würdest und näher darauf eingehen, was unverständlich ist. Ich hatte mich eigentlich bemüht, den Text so zu halten, dass er ohne Vorkenntnisse verstanden werden kann. Das ist offenbar nicht gelungen. Für das nächste mal müsste ich natürlich genauer wissen, wo nun die "Schwachstellen" sind.
Andre
2001-12-11, 16:38:29
aths,
ich finde den Artikel sehr gut, doch auch ich muss V3Killer Recht geben, dass etwas mehr als nur eine geringes mathematisches Verständnis notwendig ist.
Wenn es an die Matrixenmultiplikation geht, dann streiken sicher viele, obwohl es natürlich sinnvoll ist, es auch mathematisch exakt zu erklären.
Ich gebe zu, nicht alles verstanden zu haben, weil mir die Übergänge teilweise zu hart sind.
Wenn ich heute abend zu Hause bin und meine Sync am DSL-Modem doch noch grün werden sollte, dann sage ich Dir, was ich genau meine.
Andre
2001-12-11, 16:41:09
Originally posted by Leonidas
Ich glaub, hier gibt es kaum was zu diskutieren. Ist einfach in sich perfekt, der Artikel.
Perfekt gibt es nicht.
Wie bei jedem technischen Artikel ist das sehr subjektiv und abhängig von der mathematische/technischen Vorbelastung.
Er ist sehr gut, aber perfekt wäre, wenn er jeden Leser, mit jeder Vorbildung diesen Artikel versteht und im Zusammenhang wiedergeben könnte.
So einen (technischen) Artikel hab ich noch nirgendwo gelesen.
Voodoo3Killer
2001-12-11, 17:21:27
Alllllso, dann wolln mer mal ;)
"...Von x=7 und x=8 sind die Werte bekannt, es ist aber ein Wert für x=7.25 gesucht. Das Ergebnis liegt irgendwo zwischen beiden Funktionswerten. Das linke Gewicht berechnet sich aus dem x2 - x. Das rechte Gewicht ergibt sich aus x - x1. Damit wird der Funktionwert für 7 mit (8 - 7.25) = 0.75 gewichtet, und der Funktionwert für 8 mit (7.25 - 7) = 0.25. Man setzt nun ein: 9.8 x 0.75 + 14.5 x 0.25 und erhält 10.975. Geometrisch erklärt: Es wird angenommen, dass beide Funktionswerte einfach mit einer Linie verbunden werden könnten...."
nix verstehen :)
Und das mit dem RIP Mapping hab ich auch nicht ganz kapiert!
Legolas
2001-12-11, 17:49:20
Originally posted by Andre
aths,
ich finde den Artikel sehr gut, doch auch ich muss V3Killer Recht geben, dass etwas mehr als nur eine geringes mathematisches Verständnis notwendig ist.
Wenn es an die Matrixenmultiplikation geht, dann streiken sicher viele, obwohl es natürlich sinnvoll ist, es auch mathematisch exakt zu erklären.
Ich gebe zu, nicht alles verstanden zu haben, weil mir die Übergänge teilweise zu hart sind.
Wenn ich heute abend zu Hause bin und meine Sync am DSL-Modem doch noch grün werden sollte, dann sage ich Dir, was ich genau meine.
Naja, ein gewissen mathematisches Grundwissen muss man einfach vorraussetzten, weil 3DGraphik halt 'nur' angewandte Mathematik ist. Sonst müsste aths ja die Grundzüge der Vektorrechnung auch erklären, und das würde dann wohl doch etwas zu sehr ausufern...
Voodoo3Killer,
diesen Absatz zur Erklärung der linearen Interpolation schrieb ich zwei mal. Ich wusste nicht, wie ausführlich das sein sollte. Das zerpflücke ich jetzt mal.
Es wurde vom gewichtetem Mittelwert gesprochen. Ich ging davon aus, dass bekannt ist, wie man einen Mittelwert bildet.
Nämlich (a+b) / 2.
Man könnte auch sagen, (a/2) + (b/2). Um es noch anders zu schreiben: (a*0.5) + (b*0.5).
Beide Werte gehen je zur Hälfte ein. Da nun aber nicht der Funktionwert aus der Mitte gesucht ist, kann man auch nicht den normalen Mittelwert nehmen. Statt 0.5 muss man mit anderen Zahlen multiplizieren.
Im Beispiel ist f(x)=7.25 gesucht, von x1=7 und x2=8 ist der Funktionswert bekannt. Da x näher an x1 liegt ist es offensichtlich, dass der Funktionswert von x1, also f(x1) schwerer wiegt.
Dementsprechend geht f(x2) weniger stark ein. Beide zusammen müssen natürlich nach wie vor ein Gesamt-Gewicht von 1 haben.
Damit ist das Vorgehen eigentlich klar: Da die Strecke von x1 bis zu x nur 1/4 ist, von x zu x2 aber 3/4, geht x1 mit 3/4 (stark) und x2 mit nur 1/4 (weniger stark) ein.
Es wird also gerechnet: f(x1) * 3/4 + f(x2) * 1/4.
"Und das mit dem RIP Mapping hab ich auch nicht ganz kapiert!"
Wenn die Textur ausgelesen wird, sollte auf einen Pixel am besten genau 1 Texel kommen. Reicht die Textur-Auflösug nicht, entstehen beim bilinearen Filter unscharfe Texturen.
Ist die Texturauflösung zu gross, kann man sich mit MIP-Mapping behelfen, in dem die Textur einfach verkleinert wird.
Stell dir vor, du bastelst eine 3D-Szene mit Papier und Pappe nach. Dann schneidest aus dem Monitor ein Pixel aus. Nun leuchtest du von vorne herein. Lichtbrechung, -Streuung etc. mal vernachlässigt, wird nun die Fläche beleuchtet, die der Pixel darstellen muss.
Leuchtest du von vorne auf eine Wand, siehst du die quadratische Form des ausgeschnittenen Pixels.
Leuchtest du im flachen Winkel auf ein Wand, wird der Widerschein sehr langgezogen. Diese Fläche müsste nun aus der Textur ausgelesen und gefiltert werden. Das ergibt natürlich entsprechend viele Lese-Operationen.
Wenn du eine Textur von sagen wir 256x256 auf 32x256 verkleinerst und anschließend wieder auf 256x256 ziehst, sind in der Textur keine quadratischen, sondern sehr lang gezogene Texel zu sehen.
Diese lang gezogene Form stimmt mit dem Lichtfleck auf der Wand viel besser überein, als bei einer quadratischen Textur. Diese speziell verkleinerten Texturen werden bei der Skalierung natürlich entsprechend aufwändig gefiltert, dass sie auch brauchbar sind. Das ist der Vorteil gegenüber MIP-Mapping.
MadManniMan
2001-12-11, 20:12:29
hm... ich hab zwar alles verstanden, aber ich denke, das sollte man wohl auch vonnem leistungskurs-mathematiker verlangen ;)
aber noch weiter zu vereinfachen würde einfach nich mehr sinnvoll sein
nggalai
2001-12-11, 20:26:45
hi aths,
ich finde deinen Artikel gelungen und auch nicht allzu technisch gehalten. Ohne ein klein wenig Mathematik Texturfilterung erklären zu wollen dürfte ein schweres Unterfangen sein, daher habe ich mich gefreut zu sehen, dass Du das gar nicht erst probierst, sondern "sogar" Matrizen mitbringst--besonders, wenn das dann auch noch mit den Farben so schön erklärt wird, sollte man mit ein wenig Mathe-Kentnissen noch nachkommen. Fand ich gut; es gibt schon genug Prosa-Artikel zum Thema aufm Netz.
Das mitm MIP wurde ja schon im anderen Thread behandelt.
Und die Filtertüte am Anfang hat mich doch zum Schmunzeln gebracht. :)
Guter Artikel!
ta,
-sascha.rb
Voodoo3Killer
2001-12-11, 20:32:12
Originally posted by aths
Voodoo3Killer,
diesen Absatz zur Erklärung der linearen Interpolation schrieb ich zwei mal. Ich wusste nicht, wie ausführlich das sein sollte. Das zerpflücke ich jetzt mal.
Es wurde vom gewichtetem Mittelwert gesprochen. Ich ging davon aus, dass bekannt ist, wie man einen Mittelwert bildet.
Nämlich (a+b) / 2.
Man könnte auch sagen, (a/2) + (b/2). Um es noch anders zu schreiben: (a*0.5) + (b*0.5).
Beide Werte gehen je zur Hälfte ein. Da nun aber nicht der Funktionwert aus der Mitte gesucht ist, kann man auch nicht den normalen Mittelwert nehmen. Statt 0.5 muss man mit anderen Zahlen multiplizieren.
Im Beispiel ist f(x)=7.25 gesucht, von x1=7 und x2=8 ist der Funktionswert bekannt. Da x näher an x1 liegt ist es offensichtlich, dass der Funktionswert von x1, also f(x1) schwerer wiegt.
Dementsprechend geht f(x2) weniger stark ein. Beide zusammen müssen natürlich nach wie vor ein Gesamt-Gewicht von 1 haben.
Damit ist das Vorgehen eigentlich klar: Da die Strecke von x1 bis zu x nur 1/4 ist, von x zu x2 aber 3/4, geht x1 mit 3/4 (stark) und x2 mit nur 1/4 (weniger stark) ein.
Es wird also gerechnet: f(x1) * 3/4 + f(x2) * 1/4.
OK verstanden! ;D
(...bin nicht grad der Mathe King 4er 10.Klasse ;))
Das RIP Mapping ist mir (nachdem ich den Text auch nochmal gelesen hab) auch einigermaßen klar...
Thowe
2001-12-11, 20:36:11
Originally posted by nggalai
hi aths,
ich finde deinen Artikel gelungen und auch nicht allzu technisch gehalten. Ohne ein klein wenig Mathematik Texturfilterung erklären zu wollen dürfte ein schweres Unterfangen sein, daher habe ich mich gefreut zu sehen, dass Du das gar nicht erst probierst, sondern "sogar" Matrizen mitbringst--besonders, wenn das dann auch noch mit den Farben so schön erklärt wird, sollte man mit ein wenig Mathe-Kentnissen noch nachkommen. Fand ich gut; es gibt schon genug Prosa-Artikel zum Thema aufm Netz.
Das mitm MIP wurde ja schon im anderen Thread behandelt.
Und die Filtertüte am Anfang hat mich doch zum Schmunzeln gebracht. :)
Guter Artikel!
ta,
-sascha.rb
Unterschreibt, gerade die Filtertüte finde ich sehr gelungen, musste da sogar laut lachen. Sowas lockert durchaus etwas auf, gerade wenn hinterher etwas schwierigere Lektüre kommt.
Leonidas
2001-12-11, 21:09:17
Ich musste laut lachen bei der Haupt-Überschrift der 7. Seite. Ursprünglich wollte ich diese Hauptüberschriften killen, weil sie eigentlich nichtssagend sind (sich niemand was drunter vorstellen kann), aber der Text "Scharfe Hasen" hat mich dann umgestimmt (+ das Bild von Nat Portman).
Voodoo3Killer
2001-12-11, 21:28:18
Originally posted by Leonidas
Ich musste laut lachen bei der Haupt-Überschrift der 7. Seite.
...dachte schon da is was falsch ;)
Frank
2001-12-11, 22:16:50
Ich hätt auch mal ne mathematische Frage an aths. Oder besser eine, wie der Grafikchip rechnet.
Rechnet ein Grafikchip im E hoch 3 oder E hoch 4. Also im projektiv erweiterten Raum zum normalen 3 dimensionalen. Also da die Entfernung ja, wie im Artikel erwähnt ja noch mit dazu kommt, was schon 4 Dimensionen macht - dann also 5 dimensional rechnet ???
Andre
2001-12-11, 22:53:55
aths,
nachdem ich etwas über mein vorheriges Posting nachgedacht habe, ist doch die Einsicht stärker geworden.
Ich sollte und kann nicht erwarten, dass Du in einem Artikel über Filtering die kompletten mathematischen Grundlagen erklärst - da habe ich wohl etwas zuviel verlangt.
Ich möchte das nur zur Sicherheit klarstellen.
Im Übrigen ist da wohl bei mir Hopfen und Malz verloren, mir reichen schon finanz- und wirtschaftsmathematische Berechnungen wie z.B. Grenzproduktivität, Grenzertrag, Grenzrate der Substitution, Wergrenzproduktivität der Arbeit und Preisniveaureagibilität um mich in Verlegenheit zu bringen.
Na ich freue mich natürlich, dass der Text gut angekommen ist.
Frank, die DX7 T&L-Einheit verwendet 4x4 Matrizen, weil W (Abstand zum Betrachter) noch eine Rolle spielt. W braucht man z.B. für die perspektivische Korrektur (und den W-Buffer, sofern unterstützt.) Es wird vierdimensional transformiert. Ich weiss nicht, wo da fünfdimenional gerechnet werden sollte?
Andre,
letztlich musste ich auf die Vorstellungskraft des Lesers bauen. So läßt sich ein Grenzertrag ausführlich erklären, wenn der Leser das nicht versteht, versteht er es halt nicht. Dass man den höchsten Gesamtprofit nicht unbedingt dann erreicht, wenn man den höchsten Profit pro Stück erzielt, scheint zunächst widersinnig, kann aber mit einfacher Mathe bewiesen werden. Diese Mathe nützt wenig, wenn man keine Vorstellung vom Thema hat. Deshalb verzichtete ich auf generelle Filtertheorie und interessante Digitalisierungprobleme und griff nur dann zu Mathe, wenn Worte nicht mehr ausreichten.
Unregistered
2001-12-13, 09:54:17
Super vielen Dank!!
Amarok
2001-12-13, 18:05:00
Auch von meiner Seite: Sehr guter Artikel, hat mir einiges beigebracht!
Schließe mich an.
Sehr gut, danke @aths.
Hi,
Ich fand den Artikel auch gut und verständlich, hätte aber noch 2 Anmerkungen.
1. In allen Threads auf beyond3d wird die Unschärfe des Quincunx Antialiasing dem "post-blur" Filter in die Schuhe geschoben. Das hat eigentlich nichts mit der Quincunx-Sample-Methode oder sogar wie hier geschrieben dem Multisampling zu tun.
2. Da ich des öfteren T-buffer gelesen habe in den Vergleichs AA shots, gehe ich davon aus daß auch hier
"Vergrößerung auf 200%: 2x Rotated Grid Multisamplig Anti-Aliasing. Das untere Bild verwendet zusätzlich den Quincunx-Filter: Verwaschene Texturen."
eine Voodoo4/5 am Werke war. Die verwendet aber meines Wissens nach SuperSampling also RGSS, obwohl sie multiple Buffer dafür verwendet.
Falls ich falsch liege, bitte ich um Berichtigung. (Vielleicht habe ich ja was falsch verstanden :) )
nggalai
2001-12-14, 19:52:33
Hi wes,"Vergrößerung auf 200%: 2x Rotated Grid Multisamplig Anti-Aliasing. Das untere Bild verwendet zusätzlich den Quincunx-Filter: Verwaschene Texturen."
eine Voodoo4/5 am Werke war. Die verwendet aber meines Wissens nach SuperSampling also RGSS, obwohl sie multiple Buffer dafür verwendet. Ich lieferte aths die erwähnten Screenshots; die sind von einer GF3, welche bei 2x RGMS macht.
ta,
.rb
Hier liegt ein Missverständnis vor.
Verwaschene Texturen kommen natürlich nicht durch Multisampling.
Sondern dadurch, dass beim Quincunx nur 2 von 5 Subpixel frisch berechnet sind. In Verbindung mit dieser Tatsache trägt Multisampling allerding doch zu einer zusätzlichen Unschärfe bei: Mit Supersampling könnte das LOD Bias gesenkt werden, was die Texturen schärfer machen würde.
Man könnte nun argumentieren, wenn eh schon anisotrop gefiltert wird, würde das auch nicht mehr viel ausmachen. Bei 2x Quincunx mit Supersampling würden aber 2 anisotrop gefilerte Subpixel frisch sein, während es mit Multisampling außerhalb von Polygongrenzen immer nur einer ist.
Wenn ich unter einen Screenshot schreibe, man sieht den Quincunx-Effekt, dann kannst du davon ausgehen, dass das Bild auch mit Quincunx geschossen wurde. nggalai hat sich ja bereits geoutet.
"Die verwendet aber meines Wissens nach SuperSampling also RGSS, obwohl sie multiple Buffer dafür verwendet. "
Ob OG oder RG, es bleibt Supersampling. Ob bei 2x AA vergrößerte oder mehrere Buffer (Multisample-Buffer, wie bei Voodoo4/5, GF3, R8500) zum Einsatz kommen, ist prinzipiell egal.
Originally posted by wes
1. In allen Threads auf beyond3d wird die Unschärfe des Quincunx Antialiasing dem "post-blur" Filter in die Schuhe geschoben. Das hat eigentlich nichts mit der Quincunx-Sample-Methode oder sogar wie hier geschrieben dem Multisampling zu tun.
wes, aths hat sicher nicht geschrieben dass die Unschärfe vom Multisampling selbst kommt (das wär mir aufgefallen ;)), sondern dass Multisampling und Quincunx-Filter nicht gut zusammenpassen. Der "post-blur Filter" ist der Quincunx-Filter.
Da war wohl schon einer schneller...
Danke für eure Antworten.
Das Multisampling die Unschärfe verursacht, hab ich wohl mißgelesen.(Muß mal wieder zum Augenarzt ;) )
nggalai und aths...
Daß der RGMS Shot von einer Gf3 sein sollte, und ist, habe ich offensichtlich auch übersehen. Tja nix für ungut.
Xmas, falls du einen Link für "Quincunx=blur" hättest, würde ich mich echt freuen. Ich glaub dir zwar auch so, wenn du der selbe samX von b3d bist , aber aber ich würde das gerne nachlesen.
Da ich jetzt nix mehr zu melden habe, gefällt mir der Artikel SEHR GUT. ;)
(http://www.3dcenter.de/artikel/grafikfilter/index8.php) (In der Mitte)
Bei Quincunx werden pro Pixel 2 Subpixel berechnet, es fließen aber 5 Subpixel mit ein. Dafür werden 3 zusätzliche aus der Umgebung genutzt. Neben der Überfilterung (mehr Subpixel verwenden als berechnet wurden) ist die Filter-Fläche (logischerweise) auch zu groß geraten, denn sie übersteigt effektiv die Fläche von einem Pixel.
Bei 2x AA muss jeder Subpixel logischerweise mit 50% (1/2) einfließen. Da der Punkt links oben aber insgesamt vier mal verwendet wird, fließt er nur zu 12.5% (1/8) ein, denn 4 x 1/8 = 1/2.
Der Subpixel in der Mitte steht ja für die Fläche in der Mitte. Wird nun z.B. der Subpixel rechts unten nicht neu berechnet, da seine Position "zufälligerweise" mit einem bereits berechnetem Subpixel eines anderen Pixels überein stimmt, scheint das gar nicht mal so falsch.
Es besteht aber weiterhin der Mangel, dass die Filter-Fläche zu groß ist. Zusätzlich kommt nun Multisampling hinzu. Innerhalb eines Polygons bekommen beide berechneten Subpixel denselben Farbwert. Damit wird nur noch 1 Subpixel berechnet, der aber in insgesamt 4 Pixel mit einfließt. Außerdem darf man im Gegensatz zum Supersampling das LOD Bias nun nicht mehr senken. Denn die Texturen werden ja mit Multisampling nicht Überabgetastet.
Beides (1:4-Filter, keine zusätzliche LOD-Anpassung) macht den ansonsten erträglichen Mangel der zu großen Filterfläche ziemlich sichtbar.
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.