Originally Posted By: grinseengel
Allerdings kann ich nicht die Anzahl der Mipmaps angeben.

Ich selbst verwende für meine DDS-Texturen das Programm nvdxt.exe von den NVIDIA-Tools. Damit kann man auch die Anzahl der Mipmaps mitgeben. Das Programm hat aber keine Benutzeroberfläche, deshalb habe ich mir schnell mal in VisualBasic eine Benutzeroberfläche dazu programmiert (siehe Screenshot).



Du kannst mein Programm (inkl. Programm nvdxt.exe) hier downloaden:
Download Setup-Programm für DDS-Converter

Das Programm ist recht simpel. Du musst Deine Textur-Bitmap zuerst in das Verzeichnis kopieren, in dem Du mein Programm installiert hast. Am besten unter dem Namen Bitmap.bmp! Danach nimmst Du in meinem Programm die gewünschten Einstellungen vor (Format, Anzahl Mipmaps, Mipmaps schärfen und Mipmaps filtern). Standardmäßig werden schon die Einstellungen vorgeschlagen, die bei mir die besten Ergebnisse geliefert haben. Ich selbst verwende bei Texturen, die eine Größe von 2048x2048 haben meistens 5 Mipmaps. Bei 4096x4096 meistens 6 bis 8. Am besten probierst Du aus, welche Einstellung bei Dir das beste Ergebnis liefert.
Wenn Du dann auf "Konvertieren" klickst, wird das NVIDIA-Tool aufgerufen, und aus der Bitmap.bmp wird eine Bitmap.dds generiert, die Du dann im MED verwenden kannst.

Probiere es am besten mal aus (ich hoffe, mein Setup-Programm enthält alle notwendigen Dateien. Falls es nicht funktionieren sollte, sag mir bescheid).

P.S: Den Hinweis von rojart betreffend mip_levels solltest Du übrigens auch beachten. Also Deine DDS-Textur sollte mehr als 4 Mipmaps haben. Bei der A7 muss aber dann offensichtlich auch mip_levels entsprechend angepasst werden, da sonst standardmäßig nur die ersten 4 Mipmaps verwendet werden.


Originally Posted By: grinseengel
Dein Projekt mit den fotorealistischen Texturen sieht echt umwerfend aus. Leidet darunter nicht die FPS?

Nein, die Framerate ist ziemlich gut. Das liegt zum einen daran, dass ich sehr viele Mipmaps verwende (bis zu 8). Das verbessert deutlich die Framerate bei weit entfernten Objekten (weil die dann mit einer wesentlich kleineren Mipmap-Textur gerendert werden als wie wenn ich nur 4 Mipmaps hätte).

Außerdem verwende ich Texturen möglichst sparsam. Die Levels sind so entworfen, dass nur wenige Models sehr detailiert sein müssen. Oft gibt es natürliche Barrieren, die verhindern, dass der Spieler nahe zu einem Objekt hingehen kann. Bei meinen Demo-Screenshots ist also die Holzpalisade sehr detailiert, da der Spieler sehr nahe zur Palisade hingehen kann. Große Hauswände sind weniger Detailiert, dafür befindet sich vor der Wand z.B. eine Sitzbank oder eine Pferdetränke oder ein Gemüsebeet, oder ein anderes, im Level schon öfter verwendetes, detailiertes Model (z.B. die schon erwähnte Palisade) sodass man nicht direkt zur Hauswand hingehen kann. Diese Barriere-Objekte sind oft sehr niedrig, sodass man mit dem "Gesicht" nicht nahe an sie rangehen kann (siehe Gemüsebeete), daher müssen diese auch nicht so sehr detailliert sein.

Ein weiterer Grund für die gute Framerate ist der, dass ich keine Shader oder Beleuchtung verwende. Nur die reine Textur (mit Unlit=on). Und dann natürlich sehr wichtig: LOD. Ohne LOD geht gar nichts. Deshalb entwerfe ich alle Modelle von haus aus so, dass sich daraus ohne großen Aufwand ein qualitativ hochwertiges LOD-Model erstellen lässt. Vereinfacht gesagt entwerfe ich zuerst sozusagen die LowPoly-Models. Die HighPoly-Models sind dann nur eine Verfeinerung des LOD-Models (also so ähnlich wie bei Hardware-Tessellation, nur halt "händisch" modelliert). Ich lege großen Wert darauf, dass man den Übergang zwischen den LOD-Models nicht sieht. Dazu verwende ich mehrere Tricks (LOD-Umschaltung ist geskriptet. Z.B. ab einer gewissen Entfernung, zum Teil auch abhängig von der Höhe aus der man das Objekt betrachtet. Oder per Trigger, wenn man z.B. durch ein bestimmtes Tor geht. Wenn man sich an der Vorderseite von einem Haus befindet, wird z.B. die Rückseite vom Haus ausgeblendet. Für die Rückseite gibt es dann ein eigenes "LOD-Model". Alle meine LOD-Models teilen sich die selbe Textur.).

Warum mein Demolevel so lange dauert, bis er fertig ist, liegt vor allem daran, dass ich ein Perfektionist bin. wink Die Texturen bearbeite ich in einer Größe, die mindestens 2mal so groß ist wie dann später im Spiel (durch das Verkleinern sieht man kleine "Bearbeitungsfehler" dann nicht mehr). Meine Fotos, aus denen ich die Texturen mache, haben übrigens eine Größe von 22 Megapixel, sind also sehr groß und detailiert. Außerdem sind Leveldesign und Texturdesign perfekt durchdacht, sodass ich möglichst wenige Texturen benötige, und trotzdem merkt man keine "Kachel"-Effekte bzw. Wiederholungen von Texturen (Texturen werden oft nicht nur gekachelt, sondern sogar "gespiegelt gekachelt" - aber das erkläre ich ein anderes mal genauer). Wenn mein erster kleiner Demolevel fertig ist, werde ich dann auch meine "Tricks" genauer beschreiben. Wird aber wahrscheinlich noch bis Herbst dauern.

Grüße,
Thomas alias Harry.

Last edited by Harry Potter; 05/01/10 23:51.