PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was hat es bei der DXTc mit dem dwPitchOrLinearSize auf sich?


Jürgen-Müller
2007-05-02, 14:20:06
Hallo,

ich versuche gerade zu verstehen, wie die Werte im Feld dwPitchOrLinearSize des DDS-Headers zustande kommen.

Bei MSDN verstehe ich dass so, als ob es bei einem Komprimierten Bild die Gesamtanzahl aller Pixel wiedergibt. Allerdings stehen dann immer (für mich) völlig zusammenhangslose Zahlen in dem Feld.

Kann mir jemand erklären wie es dazu kommt?

Danke schon mal im Voraus.

Xmas
2007-05-02, 14:31:47
Es sollte die Größe der Bilddaten in Bytes sein, also für DXT1 Höhe * Breite / 2, für den Rest Höhe * Breite.

Jürgen-Müller
2007-05-02, 15:01:05
Warum wird der Wert bei DXT1 denn durch 2 geteilt und bei den anderen nicht?

Neomi
2007-05-02, 16:10:09
Warum wird der Wert bei DXT1 denn durch 2 geteilt und bei den anderen nicht?

Weil LinearSize die Größe der Bilddaten in Bytes angibt. Ein Farbblock à 16 Pixel belegt 8 Bytes, bei DXT1 war es das dann schon. Bei DXT2 bis DXT5 kommt noch ein Alphablock mit ebenfalls 8 Bytes dazu, deshalb sind diese Formate bei gleicher Auflösung doppelt so groß im Speicher.

Jürgen-Müller
2007-05-02, 16:23:31
Ah, OK. Jetzt ist es mir klar. Danke für die Hilfe.