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

Aktuelle Zeit: So Jul 13, 2025 18:19

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 3D Texturen (dds) laden (Delphi)
BeitragVerfasst: Fr Okt 26, 2012 17:36 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
Moin,

bin auf der Suche nach einer Klasse womit ich 3D texturen laden kann, in meinem Fall DDS. TglBitmap3D hab ich leider nicht gefunden..

Grüße
Thomas


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: 3D Texturen (dds) laden (Delphi)
BeitragVerfasst: Fr Okt 26, 2012 18:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Mars hat damals nen DDS-Loader gebaut der das afaik kann : viewtopic.php?t=2486&highlight=dds

Wenn nicht, dann kann ich evtl. Code beisteuern. Mein Texturenloader kann 3D DDS, auch wenn ich das noch nie gebraucht / getestet hab.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: 3D Texturen (dds) laden (Delphi)
BeitragVerfasst: Fr Okt 26, 2012 19:05 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
den Loader von Mars hab ich mir schon angeschaut, doch sieht nicht so aus als wenn der Schnipsel 3D texturen unterstützt. Wäre nicht schlecht wenn du mir da was schicken könntest.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: 3D Texturen (dds) laden (Delphi)
BeitragVerfasst: So Okt 28, 2012 08:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich hab wohl mal ne 3D-Noise Textur aus ner DDS geladen, und das sieht so aus (direkt nach dem Laden des Headers) :

Code:
  1. if zSize > 0 then
  2.   begin
  3.     Size := xSize * ySize * zSize;
  4.     GetMem(Data, Size);
  5.     Stream.Read(Data^, Size);
  6.     glTexImage3D(GL_TEXTURE_3D, 0, GL_LUMINANCE8, xSize, ySize, zSize, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, Data);
  7.     FreeMem(Data);
  8.     Result := True;
  9.     exit;
  10.   end;


Da ist also das Format hardcodiert. Du müsstest dann die anderen Formate (k.a. was DDS in Volumentexturen unterstützt, laut PS Plugin alles) aus dem Header lesen und entsprechend verarbeiten und hochladen. Aber das geht ja dann wie bei den 2D-Formaten, dazu kannst du als die Unit von Mars nehmen.

3D-Texturen sind halt so ne Sachen, allein wegen des großen Speicherverbrauchs (selbst mit Kompression). Deshalb hab ich da nie mehr gemacht als obigen Code.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: 3D Texturen (dds) laden (Delphi)
BeitragVerfasst: So Okt 28, 2012 18:31 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
ja aktuell hab ich mit Photohop die 3D Textur in eine Normale textur gewandelt (von 64x64x64 zu 4096x64) und diese dann entsprechend reingeladen. Nicht schön aber funktioniert. Allerdings müsst ich die Textur nichmal laden, sondern ich brauche eine "tilable 3D Turbulenz".. Ich hab in Netz ne Java klasse gefunden die einen kompletten Noise Generator inkl. Turbulenz enthält. Allerdings wär es ein morts aufwand das alles nach DElphi zu übersetzen. Hat vielleicht jemand sowas fertig?

ADD: hier is die klasse: http://www.gamedev.net/topic/629064-terrain-generation/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: 3D Texturen (dds) laden (Delphi)
BeitragVerfasst: Mo Okt 29, 2012 10:06 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
hab einen schönen PerlinNoise Generator bei GLScene gefunden, den hab ich mir bissl erweitert.
Auch wenns nicht mehr ganz zum Thema passt.. Wenn ich mir die Daten in eine 8bit Luminance (S/W) Textur lade...
Code:
  1.  
  2. glTexImage3D(GL_TEXTURE_3D, 0, GL_LUMINANCE8, xSize, ySize, zSize, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, Data);
  3.  


.. hab ich dann im Shader über die r-komponente vollen zugriff auf die 8bit oder muss ich da noch irgendwelche Parameter setzten?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 6 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.008s | 16 Queries | GZIP : On ]