D3DXCreateTextureFromFileExのサイズ指定について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
hiokun46

D3DXCreateTextureFromFileExのサイズ指定について

#1

投稿記事 by hiokun46 » 10年前

こんにちは。
DirectXで3D表示のゲームを作ろうとしています。
ポリゴンに貼り付けるテクスチャのサイズは2の累乗でなくてはならないと聞いたことがあります。
D3DXCreateTextureFromFileExという関数は画像のサイズを指定できますが2の累乗じゃなくても問題ないでしょうか?
100X100のbmpでもグラボに関係なく大丈夫でしょうか?

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: D3DXCreateTextureFromFileExのサイズ指定について

#2

投稿記事 by みけCAT » 10年前

D3DXCreateTextureFromFileEx
この値が 0 または D3DX_DEFAULT の場合、寸法はファイルから取得され、2 の累乗に丸められます。デバイスが 2 の累乗でないテクスチャーをサポートし D3DX_DEFAULT_NONPOW2 が指定されている場合、サイズの丸めは行われません。
(Width,Heightについて)

この記述から、2の累乗でないテクスチャーをサポートしないデバイスが存在することが予想されます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: D3DXCreateTextureFromFileExのサイズ指定について

#3

投稿記事 by ISLe » 10年前

いまどきのグラボはたいてい2の累乗でないサイズのテクスチャをサポートしていますが、ミップマップをサポートするテクスチャはたぶん2の累乗でなければいけないはずです。
2の累乗でないサイズのテクスチャをうまく作成できないときはミップマップレベルに1を指定するとうまくいくことがあります。

ちなみに2の累乗でないサイズのテクスチャはさまざまな点で効率が悪いです。
ピクセルをデバイス上で完全に一致させる必要がある場合などに用途を限定すべきかと思います。

hirokun46

Re: D3DXCreateTextureFromFileExのサイズ指定について

#4

投稿記事 by hirokun46 » 10年前

ありがとうございます。
グラボの互換性を考えると2の累乗にした方がよいことは分かりました。

例えば1024X1024の大き目の画像データを指定して、
その画像の座標のx=400,y=500,width=100,height=100のように座標とサイズをテクスチャとして指定することは出来ますか?
D3DXCreateTextureFromFileExでは出来ないと思うのですが、そういったことが出来る関数がありましたら教えてください。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: D3DXCreateTextureFromFileExのサイズ指定について

#5

投稿記事 by ISLe » 10年前

質問の意図がよく分かりませんが、テクスチャはテクスチャ座標を指定して貼り付けるのがふつうです。

テクスチャをピクセル単位で考えるとコードで分岐処理しなければいけないことがたくさん増えてめんどうくさいですよ。

閉鎖

“C言語何でも質問掲示板” へ戻る