Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

marfi

Treue Seele

  • »marfi« ist der Autor dieses Themas

Beiträge: 100

Wohnort: Schwerte

  • Private Nachricht senden

1

20.04.2008, 10:36

LPDIRECT3DTEXTURE9 speichern und wieder laden

Hi,

wie würdet ihr LPDIRECT3DTEXTURE9 speichern und wieder laden?
Ich möchte mehrere Texturen in eine Datei packen, dabei dachte ich daran diese hintereinander einfach zu speichern.

Muß ich dazu die Textue locken und die bits speichern, danach eine Texture mit D3DXCreateTexture erstellen und die bits wieder reinkopieren?

Oder kann ich einfach die ganze Strucktur speichern?

Hat jemand Erfahrung damit?


Gruß
Marfi

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

20.04.2008, 10:50

Re: LPDIRECT3DTEXTURE9 speichern und wieder laden

Zitat von »"marfi"«

wie würdet ihr LPDIRECT3DTEXTURE9 speichern und wieder laden?


Am einfachsten mit D3DXSaveTextureToFile() und D3DXCreateTextureFromFileEx()


Zitat von »"marfi"«

Ich möchte mehrere Texturen in eine Datei packen, dabei dachte ich daran diese hintereinander einfach zu speichern.

Muß ich dazu die Textue locken und die bits speichern, danach eine Texture mit D3DXCreateTexture erstellen und die bits wieder reinkopieren?

Oder kann ich einfach die ganze Strucktur speichern?


Naja, du kannst entweder einfach den Inhalt der .dds, .bmp, .jpg oder was auch immer Dateien in eine große Datei packen und dann z.B. D3DXCreateTextureFromFileInMemoryEx() verwenden, oder eben die texture locken und byteweise speichern, und dann beim Laden eine neue, leere texture erstellen (D3DDevice.CreateTexture()). Allerdings musst du dir da noch zusätzlich Dinge wie Format, Abmessungen, Miplevels, etc. merken...

marfi

Treue Seele

  • »marfi« ist der Autor dieses Themas

Beiträge: 100

Wohnort: Schwerte

  • Private Nachricht senden

3

20.04.2008, 11:16

Ich glaubde da ist es fast einfach die Textur zu locken und alles einzeln zu speichern. Denn erst in ein anderes Format und dann wieder speichern ist auch irgendwie umständlich^^

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

20.04.2008, 11:19

Zitat von »"marfi"«

Denn erst in ein anderes Format und dann wieder speichern ist auch irgendwie umständlich^^


wie "in ein anderes format" !?

marfi

Treue Seele

  • »marfi« ist der Autor dieses Themas

Beiträge: 100

Wohnort: Schwerte

  • Private Nachricht senden

5

20.04.2008, 11:27

Mit SaveToFile kann ich die Textur ja in ein anderes Dormat speicher, (png,dds ...) Das hilft mir aber nicht.

Situation:
Ich habe mehrere Grafikdateien, diese kann ich in meiner App laden und als Animation speichern. Wenn ich dieses Objekt dann speichere, müssen im moment alle einzelnen Dateien beim laden vorhanden sein.

Das möchte ich halt so ändern das alle Grafikdateien inkls initfdaten nur noch in einem File sind.
Darum hilft es mir nicht jede einzelne Textur wieder in ein anderes Format zu speichern :)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

20.04.2008, 11:29

wenn du eine animation aus einzelbildern hast, dann isses viel besser alle einzelbilder in eine große textur zu packen und die einzelnen frames über texturkoordinaten auszuwählen. das spart dir unzählige unnötige texture switches zur laufzeit ;)

marfi

Treue Seele

  • »marfi« ist der Autor dieses Themas

Beiträge: 100

Wohnort: Schwerte

  • Private Nachricht senden

7

20.04.2008, 12:27

Ok, aber speichern möchte ich die Textur trotzdem =) Egal wie groß die ist.
Oder eventuell mehrere "große".

Über das Texturhandling an sich habe ich mir noch keine Gedanken gemacht, weil es im Editor nicht auf Geschwindigkeit ankommt.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

20.04.2008, 12:50

Zitat von »"marfi"«

Ok, aber speichern möchte ich die Textur trotzdem =) Egal wie groß die ist.


eben, eine große texture und D3DXSaveTextureToFile() und fertig ;)

marfi

Treue Seele

  • »marfi« ist der Autor dieses Themas

Beiträge: 100

Wohnort: Schwerte

  • Private Nachricht senden

9

20.04.2008, 13:00

Ne, nicht ganz so.
Ich möchte ja noch andere relevante Daten in das File packen. Außerdem könnte die Textur (wenn es nur eine ist) schnell mal 4096x4096 werden und ob das so gut ist zu laden?
Denn es werden ja einige Frames oft gebraucht und andere wenig.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

20.04.2008, 13:11

naja, dann zuerst alles auf eine große textur packen und die dann halt selber speichern. alternativ kannst du allerdings zwei dateien machen. eine mit deiner textur drin und eine mit den zusatzinformationen, die nur einen verweis auf die texturdatei enthält...

Zitat

Denn es werden ja einige Frames oft gebraucht und andere wenig.


wie meinst du das?

Werbeanzeige