自分のためのプログラミング雑記

C/C++とかゲームプログラミングに関して、自分用のメモとして書く場所

DXライブラリの読み込むテクスチャフォーマットの話

久々の更新です。
DXライブラリの画像読み込み用関数LoadGraphは複数のフォーマットに対応しているが、どれがどれくらいかかるのか気になったの調べることにした。
開発環境は、
最初の雑記 - 自分のためのプログラミング雑記

コードは、
DXライブラリの描画の話 - 自分のためのプログラミング雑記

の読み込みのソースコードを使用した。(描画に関しては特にフォーマットで変化することは無かった)

画像サイズは2048×2048、計測結果はプログラムを10回行った平均、検証したフォーマットは、"bmp"、"jpg"、"png"、"tga"、"tga(RLE圧縮)"、"dds"である。

読み込み処理[msec]

画像種類 2048^2
bmp 617
jpg 3420
png 4435
tga 576
tga(RLE) 928
dds 81

ddsが圧倒的に高速で読み込めることが分かった。さすがにDirectX用のフォーマットというだけあって、DXライブラリのようなDirectXを使用している環境では最適化されているのかもしれない。
前に計測したbmppngの結果が少し変化しているが、これは変換するソフトを前回の時と変更したためである。

ちなみに、各フォーマット毎のデータサイズは、

データサイズ[MB]

画像種類 2048^2
bmp 12.0
jpg 1.15
png 1.84
tga 12.0
tga(RLE) 6.49
dds 2.66

となっている。読み込み時間と、容量のどちらを取るかによって選ぶフォーマットが変えるようにするのがいいと思う。(jpgに関して、ゲームで使うのはあまり聞かないが)

以上