PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mip Mapping


batto
2003-12-28, 22:11:10
Hi,


Was ist Mip Mapping? oder was bewirkt es?



bye

StefanV
2003-12-28, 22:12:09
Original geschrieben von FAust MAos
Hi,


Was ist Mip Mapping? oder was bewirkt es?

bye

Das war doch diese Technologie, wo man in der Ferne schlechter aufgelöste Texturen nutzt, oder??

Das bewirkt eigentlich 'nur' eine Arbeitseinsparung und somit eine steigerung der Leistung...

-=sUn's*shAdoW=-
2003-12-28, 22:20:21
Original geschrieben von Stefan Payne
Das war doch diese Technologie, wo man in der Ferne schlechter aufgelöste Texturen nutzt, oder??

Das bewirkt eigentlich 'nur' eine Arbeitseinsparung und somit eine steigerung der Leistung...

sí das ist es afaik.
einfach wechseln der texturen/schärfe. (je nach entfernung)

cu

Demirug
2003-12-28, 22:34:23
Original geschrieben von Stefan Payne
Das war doch diese Technologie, wo man in der Ferne schlechter aufgelöste Texturen nutzt, oder??

Ja.

Das bewirkt eigentlich 'nur' eine Arbeitseinsparung und somit eine steigerung der Leistung...

Nicht wirklich. Der Texturcache profitiert vom Mip-mapping die Fillrate dagegen überhaupt nicht. Ob es auch eine optische Verbesserung ist muss jeder selbst entscheiden. Mit Mipmapping gibt es in der Ferne matsch ohne kommt es aber zu Pixelflimmern wenn sich Objekte in der Ferne relative langsam bewegen. Ich persönlich finde dabei Unschärfe angenehmer als Flimmern.

Mystery
2003-12-28, 22:42:31
War es nicht so:
MipMapping + Bilinearer Filter = Kein Pixelflimmern, aber hässlicher Übergang zum MipMapping und
MitMapping + Trilinearer Filter ? Kein Pixelflimmern und sanfter übergang zum MipMaüüing?

Bei ersterem verzichte ich gern auf MipMapping und nehme Pixelflimmern in Kauf, da mich der Übergang zu sehr stört.

Deaktiviert AF eigentlich MipMapping oder wird nur die neue Textur drübergeklatscht?

Exxtreme
2003-12-28, 22:49:46
Original geschrieben von Mystery
War es nicht so:
MipMapping + Bilinearer Filter = Kein Pixelflimmern, aber hässlicher Übergang zum MipMapping und
MitMapping + Trilinearer Filter ? Kein Pixelflimmern und sanfter übergang zum MipMaüüing?

So ähnlich. Die nächste Mipmap wird benutzt kurz bevor Pixelflimmern auftritt.
Original geschrieben von Mystery
Deaktiviert AF eigentlich MipMapping oder wird nur die neue Textur drübergeklatscht?
Weder noch. Der AF filtert die Texturen nicht mehr isotrop sondern berücksichtigt auch deren Lage im Raum. Deshalb können die Mipmap-Übergänge weiter nach hinten geschoben werden, ohne daß Pixelflimmern auftritt. Das ergibt deutlich schärfere Texturen in der Ferne als wenn es mit dem reinen bi-/trilinearen Fliter möglich wäre.

Demirug
2003-12-28, 22:52:44
Original geschrieben von Mystery
War es nicht so:
MipMapping + Bilinearer Filter = Kein Pixelflimmern, aber hässlicher Übergang zum MipMapping und
MitMapping + Trilinearer Filter ? Kein Pixelflimmern und sanfter übergang zum MipMaüüing?

Ja, wobei es nicht zwangsweise zu dem übergang kommen muss. Das hängt von den Texturen ab. Genauso hängt auch die Stärke des Flimmerns von den Texturen ab.

Deaktiviert AF eigentlich MipMapping oder wird nur die neue Textur drübergeklatscht?

AF und Mipmaping sind ja eigentlich zwei unterschiedliche Sache. Mit dem AF bestimmt man wie viele Texel maximal aus einer Textur genommen werden sollen und mit dem Mipmaping legt man fest was der Chip machen soll wenn im die zur Verfügung stehenden Texel nicht reichen um die Texturfläche welcher der Pixel darstellt abzudecken. Bei aktiviertem Mipmapping nimmt er dann eben einer weniger genau aufgelöste Textur bei der die Texel dann aber reichen.

Keel
2003-12-28, 23:14:04
Original geschrieben von Demirug
Ja.



Nicht wirklich. Der Texturcache profitiert vom Mip-mapping die Fillrate dagegen überhaupt nicht. Ob es auch eine optische Verbesserung ist muss jeder selbst entscheiden. Mit Mipmapping gibt es in der Ferne matsch ohne kommt es aber zu Pixelflimmern wenn sich Objekte in der Ferne relative langsam bewegen. Ich persönlich finde dabei Unschärfe angenehmer als Flimmern.
Hehe, was hatte ich mich vor ein paar Jährchen gewundert, wo ich wirklich fast gar keine Ahnung von Computer-HW hatte: bei meinem alten PIII 450 MHz war ne ATI Rage *Schießmichtot* mit dabei, die zwar ein scharfes Bild lieferte, in 3D aber auch ein Pixelflimmern. Dann kam ne GF256 und auf einmal sah alles anders aus. Das Pixelflimmern war verschwundeln aber alles wirkte matschiger. Nu inzwischen kann ich mir wohl vorstellen, woher das kam. Weiß das jemand zufällig? Vielleicht ne LOD-Geschichte oder gab's zu dieser Zeit noch kein Mipmapping? :D

Exxtreme
2003-12-28, 23:44:30
Original geschrieben von Keel
Hehe, was hatte ich mich vor ein paar Jährchen gewundert, wo ich wirklich fast gar keine Ahnung von Computer-HW hatte: bei meinem alten PIII 450 MHz war ne ATI Rage *Schießmichtot* mit dabei, die zwar ein scharfes Bild lieferte, in 3D aber auch ein Pixelflimmern. Dann kam ne GF256 und auf einmal sah alles anders aus. Das Pixelflimmern war verschwundeln aber alles wirkte matschiger. Nu inzwischen kann ich mir wohl vorstellen, woher das kam. Weiß das jemand zufällig? Vielleicht ne LOD-Geschichte oder gab's zu dieser Zeit noch kein Mipmapping? :D
Mipmaping gab es schon seit der Voodoo1. Pixelflimmern kann durch einen falschen LOD-Bias verursacht werden oder aber wenn der Chip kein Mipmaping beherrscht. Wenn es eine alte RageIIx war, dann könnte ich mir vorstellen, daß zweites zutrifft.

Coda
2003-12-28, 23:48:11
Mip Mapping bringt eindeutig eine Verbesserung der Bilqualität mit sich, wenn man a) Trilinear Filtert und b) Die Mip Level nicht zu früh beginnen lässt

Liegt ganz einfach daran das sich die Texel ohne Supersampling in der Ferne um die Pixel "streiten würden" was zu flimmern führt.

Kann man ganz einfach mal in Quake 3 Engine Spielen überprüfen indem man r_texturemode auf GL_LINEAR stellt.

Das sieht man auch auf Screenshots nicht wirklich gut, muss man selbst gesehen haben

Mipmaping legt man fest was der Chip machen soll wenn im die zur Verfügung stehenden Texel nicht reichen um die Texturfläche welcher der Pixel darstellt abzudecken.
?
Doch eher andersrum, wenn zuviele Texel da sind, wird die niedrigere Mip Stufe gewählt. Und zwar abhängig von der Entfernung, nicht von irgendwelchen komplizierten Berechnungen

Piffan
2003-12-29, 10:40:30
Werden die Mipmaps eigentlich von den Entwicklern geliefert oder generiert die Hardware die Stufen selbst? Es wäre doch ausreichend, wenn die Entwickler nur zwei oder drei Texturenqualitäten lieferten, von denen sich der Spieler diejenige aussucht, die zu seiner Hardware passt (Performance- technisch betrachtet), den Rest könnte die Graka doch autonom regeln....

Oder das LOD der Geometrie: Die Entwickler geben die maximale Polygonzahl vor, die Hardware versimpelt die Modelle selbst je nach Entfernung/Leistung der Hardware.....

Wahrscheinlich ist es bei den Texturen recht einfach, bei den Modellen eher nicht machbar....Afaik liefern die Entwickler mehrere Ausführungen der Modelle mit und die Engine wählt die passenden aus...

edit: Da fällt mir ein, dass die Engine von Shiny so etwas versucht: Die Modelle werden je nach Leistung/Last der Hardware mit unterschiedlichen Polygonzahlen gezeichnet....Messias funktioniert so ähnlich, sieht aber alles andere als gut aus, weil die Figuren wabern.

Exxtreme
2003-12-29, 11:11:09
Original geschrieben von Piffan
Werden die Mipmaps eigentlich von den Entwicklern geliefert oder generiert die Hardware die Stufen selbst? Es wäre doch ausreichend, wenn die Entwickler nur zwei oder drei Texturenqualitäten lieferten, von denen sich der Spieler diejenige aussucht, die zu seiner Hardware passt (Performance- technisch betrachtet), den Rest könnte die Graka doch autonom regeln....

AFAIK kann man das die GraKA machen lassen oder die Entwickler liefern die passenden Texturen mit. Und welche Textur ausgewählt wird, entscheidet die GraKa da die Auswahl von der Auflösung und der benutzten Filter abhängt.

Demirug
2003-12-29, 11:37:57
Original geschrieben von Piffan
Werden die Mipmaps eigentlich von den Entwicklern geliefert oder generiert die Hardware die Stufen selbst? Es wäre doch ausreichend, wenn die Entwickler nur zwei oder drei Texturenqualitäten lieferten, von denen sich der Spieler diejenige aussucht, die zu seiner Hardware passt (Performance- technisch betrachtet), den Rest könnte die Graka doch autonom regeln....

Eigentlich braucht man nur die am höchsten aufgelöste Textur die anderen lassen sich daraus errechnen. Etwas anders sieht es bei komprimierten Texturen aus. Da müsste man jede Mipmap errechnen und dann noch komprimieren. Um dabei etwas Zeit zu sparen macht man das dann eher nur einmal.

Seit DX9 kann man die Mipmaps auch von der Hardware erzeugen lassen (wenn es unterstützt wird). Das ist allerdings nur dafür gedacht das man beim Render to Texture am Ende auch Mipmaps hat.

Oder das LOD der Geometrie: Die Entwickler geben die maximale Polygonzahl vor, die Hardware versimpelt die Modelle selbst je nach Entfernung/Leistung der Hardware.....

Geometrie LOD muss von der CPU gemacht werden. Das einzige was im Prinzip gehen würde ist das erzeugen von zusätzlichen Polys (zB via NPatch/Truform) in relation zur Entfernung. Das ganze nennt man dann Adaptive Tessellation.

Wahrscheinlich ist es bei den Texturen recht einfach, bei den Modellen eher nicht machbar....Afaik liefern die Entwickler mehrere Ausführungen der Modelle mit und die Engine wählt die passenden aus...

Ja bei Texturen ist es einfach und bei der Geometrie macht es so wie du schreibst. Es gibt allerdings für die üblichen Designprogramme (3dsmax, maya, ...) plugins welche eine Polygonenreduktion durchführen können.

zeckensack
2003-12-29, 12:25:27
Geforce-Besitzer können Mipmapping mal testhalber zumindest teilweise 'deaktivieren', indem sie sich aTuner schnappen und den LOD-Bias auf -3 setzen.

Dann wird für weite Teile des Frames nur noch Mip-Level 0 (also die Basistextur) genutzt. Viel Spass damit :spock:

Xmas@home
2003-12-29, 19:17:18
Original geschrieben von Coda
?
Doch eher andersrum, wenn zuviele Texel da sind, wird die niedrigere Mip Stufe gewählt. Und zwar abhängig von der Entfernung, nicht von irgendwelchen komplizierten Berechnungen
Der Filterlogik steht nur eine begrenzte Anzahl an Texeln zur Verfügung. Wenn diese nicht reichen, um die Fläche die der Pixel im Texture Space belegt abzudecken, so muss man auf die geringer aufgelösten Mipmaps zurückgreifen, denn deren Texel entsprechen einer größeren Fläche.

Mipmapping stellt vorgefilterte Flächen dar. Wenn eine 512x512 Textur auf ein am Horizont auftauchendes kleines Objekt von ein paar Pixeln Größe gelegt wird, müsste man tausende Texel auf einem Pixel zusammenmischen. Beim Mipmapping wird das Zusammenmischen für Quadratische Teilflächen schon vorberechnet.

Und Mipmapping ist abhängig von gar nicht mal so komplizierten Berechnungen (du und dv bestimmen, Zweierlogarithmus vom Maximum), aber nur indirekt — über die perspektivische Transformation — von der Entfernung.