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を使用している環境では最適化されているのかもしれない。
前に計測したbmpとpngの結果が少し変化しているが、これは変換するソフトを前回の時と変更したためである。
ちなみに、各フォーマット毎のデータサイズは、
データサイズ[MB]
画像種類 | 2048^2 |
---|---|
bmp | 12.0 |
jpg | 1.15 |
png | 1.84 |
tga | 12.0 |
tga(RLE) | 6.49 |
dds | 2.66 |
となっている。読み込み時間と、容量のどちらを取るかによって選ぶフォーマットが変えるようにするのがいいと思う。(jpgに関して、ゲームで使うのはあまり聞かないが)
以上