Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Apr 23, 2024 09:47

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: 3D Textur Generator
BeitragVerfasst: So Jul 10, 2005 10:15 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Im Zuge eines Generators für virtuellen Landschaften (bis dieser präsentabel ist, dauert es allerdings noch etwas), stellte sich die Frage, wie man Heightmaps, ob direkt gespeichert oder in Echtzeit synthetisch generiert, möglichst schnell texturieren könnte, ohne jetzt aber großartig "händisch" irgendwo herumpinseln zu müssen.
Eine mögliche Antwort sind 3D Texturen, die zudem den Vorteil haben, dass man praktisch beliebig viele "Landschaftsschichten" übereinanderstapeln kann und dennoch nur eine einzige Textureinheit "verbrät", wodurch der Rest frei bleibt - etwa für ein Straßennetz oder diverse Effekte.
3D Texturen kann man entweder direkt über die Höhe der Heightmap "aufspannen", alternativ kann man auch zwei Heightmaps verwenden - eine für die tatsächliche Darstellung, die andere als vertikale Komponente in die 3D-Textur - im zweiten Fall ist man dann überhaupt sehr flexibel. Ein weiterer Vorteil ist, dass die Koordinatengenerierung für die Textur auch in einem Shader extrem einfach ist.

Nachteile sind natürlich der hohe Speicherverbrauch - und dass es sehr wenige Programme gibt, mit denen man solche Texturen generieren kann - und auch kein einheitliches Speicherformat (allenfalls Direct3D kann 3D Texturen speichern, aber das klassifiziere ich jetzt auch mal als proprietär).

Beiden Problemen soll der 3D Textur Generator zumindest teilweise (zumindest für meine Zwecke) abhelfen: der Speicherverbrauch kann gering bleiben, weil sich die Texturen aus mathematischen Formeln synthetisieren lassen und als Textdatei speicherbar sind - und die 3D-Textur Daten werden in einem so einfachen Format abgelegt, dass es für niemanden ein Problem sein sollte, diese auch wieder zu laden. Durch die jüngste Aktualisierung des Generators um Boolesche Operatoren und Noise Sampler ist das Programm auch direkt brauchbar geworden.

Das Programm kann ganz unten heruntergeladen werden, zu beachten ist, dass für "Gras" und "schneebedeckter Fels" leicht unterschiedliche Sampler verwendet wurden (das "Gras" weist mehr hochfrequente "Störungen" auf, die über einen booleschen Operator ab einer bestimmten vertikalen Position aktiv werden).
Der Quelltext für die gezeigte Textur ist dabei - wenn jemand Lust hat zu experimentieren, bin ich an den Ergebnissen sehr interessiert.

Das Format der gespeicherten Texturen (auch beim Download dabei):
Das Format für 3D Texturen:

Bytes

0..4095 .... die ersten 4096 Bytes sind eine Vorschau der Textur
(32x32 RGBA Werte) und können übersprungen werden
4096..4099 ... Integer (4 Byte) Breite der Textur
4100..4103 ... Integer (4 Byte) Höhe der Textur
4104..4107 ... Integer (4 Byte) Tiefe der Textur
4108..???? ... Breite * Höhe * Tiefe * 4 Bytes, RGBA Werte des Texturinhalts


Dateianhänge:
Dateikommentar: Eine einfache Landschaft mit 3D Textur
screen2.jpg
screen2.jpg [ 28.47 KiB | 4730-mal betrachtet ]
Dateikommentar: Das Programm in Aktion
screen1.jpg
screen1.jpg [ 22.84 KiB | 4730-mal betrachtet ]
Dateikommentar: Download des Programms
tex3d.zip [216.47 KiB]
604-mal heruntergeladen

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/
Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 52 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.116s | 19 Queries | GZIP : On ]