2011-07-23 6 views
1

リーチプロファイルでXNA 4.0で動作するようにLinearWrapを取得している人は誰もいませんか?XNAのSamplerState.LinearWrapを使用

例...

device.SamplerStates[0] = SamplerState.LinearWrap;  

leftVert.TexCoord = new NormalizedShort(0.0f, 0.0f); 
rightVert.TexCoord = new NormalizedShort(5.0f, 1.0f); 

これは5倍u軸全体にテクスチャをラップしません。実際には、5.0fが1.0fであるかのようにレンダリングされます。

別の例...

leftVert.TexCoord = new NormalizedShort(-5.0f, 0.0f); 
rightVert.TexCoord = new NormalizedShort(5.0f, 1.0f); 

これは一度テクスチャをラップではなく、10回は予想通り。

だから、誰でもこのシステムの使い方の "ルール"を知っていますか?

これは...

隣接するコード間にサポートされている最大偏差はありますか? すべてのコードは(-1,1)以内にある必要がありますか? 最初の数字は負である必要がありますか? (これはなぜどこに記載されていませんマイクロソフト)

+1

マーキングに正しい答えがあるようです。また、Reachプロファイルでは、2の累乗(128:256,512など)のテクスチャだけをラップすることができます([ref](http://blogs.msdn.com/b/shawnhar/archive /2010/03/12/reach-vs-hidef.aspx))。 –

答えて

4

問題はNormalizedShortオブジェクトだと思います。 「正規化」とは、通常、-1から1の値を意味します.XNAの場合は、sameのようです。

テクスチャ座標としてVector2(浮動小数点数)を使用してみてください。

+1

まあ、それは恥ずかしかったです。 – James

関連する問題