DDS und DXTC

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

 

Sebe

Betreff: DDS und DXTC

BeitragDi, Aug 01, 2006 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Seit heute kann auch Blitz3D mit DDS Texturen und DXTC (DXT1, DXT3 und DXT5) umgehen, dewegen will ich hier mal ein kleines Tutorials schreiben, welches die Erstellung von DDS Texturen und den Umgang mit DXTC erklärt.

Was wir brauchen:

Wir brauchen eine Textur zum Üben. Ihr könnt euch dazu gerne mein Texturpaket runterladen: http://www.risingrealms.com/tp1.zip

Des Weiteren brauchen wir noch ATIs TheCompressonator: http://www.ati.com/developer/compressonator.html

Habt ihr beides kann es auch schon losgehen, startet den Compressonator. Ihr habt jetzt eine leere Arbeitsfläche vor euch, klickt auf "File" und wählt dann "Open...". Sucht euch die Datei aus, die ihr bearbeiten wollt, in meinem Fall "01_tm.jpeg" aus meinem Texturpaket.

Jetzt lassen wir erstmal MipMaps generieren. Was sind MipMaps?
MIP steht für multum in parvo, das ist Latein und heisst in etwa "Vieles in Kleinem". Wikipedia übersetzt es sinngemäss richtig mit "viel auf kleinem Platz". Der folgende Text ist aus Wikipedia übernommen, besser könnte ich es auch nicht beschreiben:

"Eine MIP-Map ist eine Folge von Rasterbildern des selben Motivs, jedoch mit abnehmender Auflösung. Die Kantenlänge jedes Bildes ist genau halb so groß, wie die des Vorgängerbildes. Das kleinste Bild hat je nach Implementierung eine Größe von 1x1 oder 2x2 Pixel. Daraus folgt, dass alle Bilder quadratisch sein müssen und als Kantenlänge eine 2er-Potenz haben. Man spricht bei diesen Stufen auch von level of detail (LOD)."

Manchmal werden MIP Maps auch als Anti-Aliasing Technik bezeichnet, meiner Meinug ist das aber nicht ganz zutreffend auch wenn der Sinn von MIP Maps natürlich im Prinzip der Selbe ist.

Die Sache ist die: Nehmen wir an, wir haben einen Würfel, der mit einer Textur überzogen ist. Jetzt entfernen wir uns von dem Würfel und gehen dann wieder ganz nah hin. Bei einer normalen Textur werden wir feststellen, dass wir Speicherplatz verschwenden wenn wir uns von dem Würfel entfernen, schliesslich bräuchten wir ja gar nicht mehr eine so detailierte Textur. Gehen wir ganz nah hin stellen wir fest, dass Unsere Textur nicht fein genug aufgelöst ist. MIP Mapping löst dieses Problem, da in einer Textur quasi mehrere Texturen gespeichert sind, die je nach Bedarf verwendet werden.

So, nun aber zurück zum Compessonator:
In der Leiste unter der Menuleiste solltet ihr unter anderem die option "Generate Mips" sehen. Wenn nicht, dann findet ihr den Eintrag "Mip-Levels" im Menu. Unter diesem Eintrag wählt ihr jetzt einen Filter aus (Box, D3D oder D3DX). Um es einfach zu halten wählen wir den BoxFilter aus.

Nun sollte sich ein kleines Fenster öffnen, in welchem ihr die niedrigste MIP Stufe einstellen müsst (d.h. die Grösse der kleinsten MIP Map). Alle MIP Maps inkl. der gewählten werden erstellt. Wir nehmen einfach mal alle, wählt jetzt also 1x1 aus.

Na, ging doch recht schnell nicht wahr? Die erstellten MIP Maps könnt ihr euch auch anschauen, und zwar mit den Pfeiltasten Hoch und Runter. Jetzt werden wir unsere Textur noch mit DXTC komprimieren und dann als DDS Textur abspeichern.

Um die Textur zu komprimieren, wählt "Compress" aus dem Menu und dann "DirectX Texture Compression". Jett sollen wir ein Texturformat auswählen, Mark Siblys Empfehlung dazu lautet:

"If your texture does not have an alpha use mode DXT1
If your texture has a 1 bit mask, use mode DXT1a
If your texture has a smooth gradient alpha, use mode DXT5"

Als Faustregel lässt sich das folgendermaßen formulieren: Alpha? Nein->DXT1, Ja->DXT5

Alpha brauchen wir jetzt nicht, also wählen wir DXT1 aus. Klickt jetzt auf "Compress" und wartet ein bisschen... Ihr solltet jetzt 3 Bildfelder sehen können, die Originaltextur, die komprimierte Textur und die Differenztextur.

Jetzt speichern wir unsere Textur noch als DDS Textur ab ("File"->"Save Compressed") und wir sind fertig.

Zugegeben, die DDS Textur ist grösser als die JPEG Textur. Allerdings könnt ihr das ganze auch mit einer 3 MB BMP Textur machen (bei gleichbleibender Qualität). Ausserdem hat die DDS Textur jetzt den unschätzbaren Vorteil der MIP Maps!

Ray-Tracer

BeitragDi, Aug 01, 2006 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich danke Dir für dieses informative ,schnelle Tutorial genau das
was ich gebraucht habe .
__wunschklang__

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group