Archiv verlassen und diese Seite im Standarddesign anzeigen : MIP-Map-LOD-Formel
Bekanntlich ergibt das "BF" (oder "TF"-) Muster eine Blume, bei 90°-Winkeln ist der Radius um sqrt(2) länger als bei 45°-Winkeln.
Wieso? Wenn ich das Bias runterschraube, gibts sofort Texture Shimmering, auch bei 90°-Winkeln. Offenbar wird tatsächlich mit BF/TF *überall* der maximale Detailgrad appliziert. Wieso ist das Muster dann aber kein Kreis?
1. Überlegung: Eine Pixel-Diagonale ist um sqrt(2) länger als eine Seitenkante. Dieser Faktor sticht ins Auge. Leider komme ich da gedanklich nicht weiter, wieso das TF-Muster vom Kreis abweicht.
Aqualon
2003-10-30, 15:14:23
Mal als Denkansatz:
Könnte das Muster irgendwie mit der Sinusfunktion zusammenhängen?
Denn |sin(n*45°)| = 2^(-1/2) (für n = ungeradzahliger Wert).
Hab keine Ahnung, ob das einen Zusammenhangt hat, aber vielleicht bringt es dich ja auf eine neue Idee.
Aqua
StefanV
2003-10-30, 15:33:17
Original geschrieben von aths
Wieso ist das Muster dann aber kein Kreis?
Vermutlich weil das zu aufwendig zu implementieren wäre...
Der Kreis ist IMO das am schwersten mathematisch zu erfassende 'Objekt'...
Aqualon
2003-10-30, 20:35:57
Original geschrieben von Stefan Payne
Vermutlich weil das zu aufwendig zu implementieren wäre...
Warum sollte ein kompletter Kreis komplizierter zu implementieren sein als eine Figur, die sich aus 4 Halbkreisen zusammensetzt? :kratz:
Aqua
Das sind keine Halbkreise.
Aqualon
2003-10-30, 21:58:00
Original geschrieben von aths
Das sind keine Halbkreise.
Stimmt, da war ich zu voreilig. Auf den Bildern, die ich bisher gesehen habe, sind es immer 4 Ellipsen (die auch einen Teil eines Kreises darstellen können).
Trotzdem fände ich einen Kreis leichter darstellbar als 4 Ellipsen. Aber vielleicht hab ich da auch einen Denkfehler drin.
Aqua
Demirug
2003-10-30, 23:59:17
Du hast gut gemessen aths. Das mathematische Verhältniss zwischen den 45° und 90° Winkel ist genau sqrt(2).
Nachdem ich nun heute abend endlich mal eine Stunde Zeit für diese Frage gefunden habe kann ich eigentlich auch Erklären wie diese Einschnürung bei 45° entstehen. Allerdings reicht hier wohl Text nicht mehr aus und zum Zeichnen bin ich zu müde.
Demirug
2003-10-31, 12:16:08
Da ich zum Zeichnen immer noch keine Lust habe bin ich eben mal schnell auf die Suche nach einem Dokument gegangen das die notwendigen Zeichungen enthält:
http://www.sussex.ac.uk/engg/research_groups/vlsi/mipmap.pdf
Bild 5 auf Seite 5 zeigt IMHO woher das 45° Problem herrührt. nVidia hat sich da wohl ein paar Recheneinheiten (vorallem die Wurzel) gespart.
REFRAST nutzt das gleiche (Spar-)Verfahren.
Original geschrieben von Demirug
Du hast gut gemessen aths. Das mathematische Verhältniss zwischen den 45° und 90° Winkel ist genau sqrt(2). Erst war die Vermutung da, dann hatte ich das nachgemessen und es kommt hin.
Original geschrieben von Aqualon
Stimmt, da war ich zu voreilig. Auf den Bildern, die ich bisher gesehen habe, sind es immer 4 Ellipsen (die auch einen Teil eines Kreises darstellen können).
Trotzdem fände ich einen Kreis leichter darstellbar als 4 Ellipsen. Aber vielleicht hab ich da auch einen Denkfehler drin. Japp: Es sind keine Ellipsen, es sind schon Kreis-Ausschnitte. Nur eben keine Halbkreise.
Demi, ich brauch doch deine Hilfe - ich komm' nämlich an folgender Stelle nicht weiter http://www.aths.net/files/smilies/devil.gif:
Das Texel:Pixel-Ratio ist ja eigentlich max(|Vektor 1|, |Vektor 2|) wobei Vektor 1 und 2 vom Pixel-Parallelogram im Texture Space herrühren. Man könnte also sqrt (max (|Vektor 1|², |Vektor 2|²)) rechnen, da die Wurzelfunktion streng monoton steigend ist, kann man sie "rausziehen."
Falls man nun die Wurzel spart, und einfach max (Vektor 1.X, Vektor 1.Y, Vektor 2.X, Vektor 2.Y) nimmt, ist bei dem problematischem 45°-Winkel die Abweichung am höchsten, und zwar exakt um Faktor sqrt(2)/2. Nur findet dann ja eine Unterfilterung statt. Das müsste bei 45° also sofort als Texture-Aliasing sichtbar sein.
Ist es aber nicht! Meine Idee war, dass vielleicht der Max-Betrag um diesen Faktor hochskaliert wird. Das hieße aber, dass man bei leicht gesenktem LOD-Bias bei 90°-Winkeln nicht sofort Texture Aliasing hätte. Das hat man aber.
Wo ist nun mein Denkfehler?
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.