--------------------
◆ DirectX9とテクスチャサイズの話

--------------------

DirectX9、というかDirect3Dの話。

よく知られていることだが、ポリゴンに貼り付けるテクスチャのサイズは縦・横ともに2のn乗でなければ上手く機能しないようである。
すなわち、縦や横のサイズが、1, 2, 4, 8, … 256, 512, 1024 … といった数字でなければならないのだ。

ならばどうするか。
主な解決策は3つある模様。

  1. テクスチャファイルそのものを「2のn乗」サイズで作る
    内部でサイズを測り、それ以外なら読み込まないとする方法である。かなり楽。

  2. 画像より大きめのテクスチャを作り読み込む
    画像が「2のn乗」でないならば、それより大きな「2のn乗」サイズのテクスチャを作成し、そこに読み込むという方法。決して難しい実装方法ではないようだが、メモリの無駄が多い

  3. 「2のn乗」サイズで自動的に分割する
    与えられた画像ファイルを複数の「2のn乗」サイズに分割し、描画時に合成する方法。
    かなり面倒くさそうで、おそらく速度もかなり遅い。

一般にはどう対応しているのだろう。
ちょっと気になるところである。
ウェブ上で公開されているライブラリとかだと、分割が多いのかもしれない。

自分は、とりあえず受け取るテクスチャのサイズそのものを制限してしまうことにしよう。
不便で仕方がないが、まずは基本的な機能の実装が目標だ。
[PR]
R.F.D. | by odprfd | 2005-08-20 23:11 | 情報技術

--------------------

<< D3DXCreateTextu... | DirectX9勉強再開 >>