こんにちは。
DirectXで3D表示のゲームを作ろうとしています。
ポリゴンに貼り付けるテクスチャのサイズは2の累乗でなくてはならないと聞いたことがあります。
D3DXCreateTextureFromFileExという関数は画像のサイズを指定できますが2の累乗じゃなくても問題ないでしょうか?
100X100のbmpでもグラボに関係なく大丈夫でしょうか?
D3DXCreateTextureFromFileExのサイズ指定について
Re: D3DXCreateTextureFromFileExのサイズ指定について
D3DXCreateTextureFromFileEx
この記述から、2の累乗でないテクスチャーをサポートしないデバイスが存在することが予想されます。
(Width,Heightについて)この値が 0 または D3DX_DEFAULT の場合、寸法はファイルから取得され、2 の累乗に丸められます。デバイスが 2 の累乗でないテクスチャーをサポートし D3DX_DEFAULT_NONPOW2 が指定されている場合、サイズの丸めは行われません。
この記述から、2の累乗でないテクスチャーをサポートしないデバイスが存在することが予想されます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: D3DXCreateTextureFromFileExのサイズ指定について
いまどきのグラボはたいてい2の累乗でないサイズのテクスチャをサポートしていますが、ミップマップをサポートするテクスチャはたぶん2の累乗でなければいけないはずです。
2の累乗でないサイズのテクスチャをうまく作成できないときはミップマップレベルに1を指定するとうまくいくことがあります。
ちなみに2の累乗でないサイズのテクスチャはさまざまな点で効率が悪いです。
ピクセルをデバイス上で完全に一致させる必要がある場合などに用途を限定すべきかと思います。
2の累乗でないサイズのテクスチャをうまく作成できないときはミップマップレベルに1を指定するとうまくいくことがあります。
ちなみに2の累乗でないサイズのテクスチャはさまざまな点で効率が悪いです。
ピクセルをデバイス上で完全に一致させる必要がある場合などに用途を限定すべきかと思います。
Re: D3DXCreateTextureFromFileExのサイズ指定について
ありがとうございます。
グラボの互換性を考えると2の累乗にした方がよいことは分かりました。
例えば1024X1024の大き目の画像データを指定して、
その画像の座標のx=400,y=500,width=100,height=100のように座標とサイズをテクスチャとして指定することは出来ますか?
D3DXCreateTextureFromFileExでは出来ないと思うのですが、そういったことが出来る関数がありましたら教えてください。
グラボの互換性を考えると2の累乗にした方がよいことは分かりました。
例えば1024X1024の大き目の画像データを指定して、
その画像の座標のx=400,y=500,width=100,height=100のように座標とサイズをテクスチャとして指定することは出来ますか?
D3DXCreateTextureFromFileExでは出来ないと思うのですが、そういったことが出来る関数がありましたら教えてください。
Re: D3DXCreateTextureFromFileExのサイズ指定について
質問の意図がよく分かりませんが、テクスチャはテクスチャ座標を指定して貼り付けるのがふつうです。
テクスチャをピクセル単位で考えるとコードで分岐処理しなければいけないことがたくさん増えてめんどうくさいですよ。
テクスチャをピクセル単位で考えるとコードで分岐処理しなければいけないことがたくさん増えてめんどうくさいですよ。