Hi!
Ich programmiere mit Direct3D und benutze 256*256 Pixel große Texturen (12-20 Stück, D3DPOOL_MANAGED), die ich mithilfe von T&L-Vertices als Sprites auf den Backbuffer bringe. Jede Texture wird pro Frame einmal benutzt, d.h. pro Frame wird SetTexture 12-20 mal aufgerufen.
Ich habe mit dem Format dieser Texturen gespielt und herausgefunden, dass ich mit D3DFMT_DXT1 die höchsten Frameraten erziele, schneller als D3DFMT_R5G6B5 oder D3DFMT_X8R8G8B8.
Die einzige Erklärung, die ich dafür gefunden habe, ist, dass jede Texture jedes mal in für die GPU erreichbaren Speicher geladen werden muss und sich der Vorteil der komprimierten Formate dadurch ergibt, dass sie nur ein Viertel bis ein Achtel so viel Platz brauchen.
Die Fragen, die sich für mich daraus ergeben:
1) Stimmt meine Annahme?
2a) Wenn ja, warum müssen die Textures jedes mal erneut in den Speicher geladen werden?
2b) Wenn nein, woran liegt's dann?
3) (Unabhängig davon) Welchen Weg nehmen (d.h. an welchen Speichern kommen sie vorbei) Texture- und Vertexdaten?
Danke für eure Hilfe, Addy