使用XNA的SamplerState.LinearWrap

时间:2011-07-23 00:35:46

标签: graphics xna textures

有没有人有幸使用LinearWrap在广告资料上使用XNA 4.0?

示例...

device.SamplerStates[0] = SamplerState.LinearWrap;    

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

这不会在u轴上包裹纹理5次。事实上,它呈现就好像5.0f是1.0f。

另一个例子......

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

这包裹纹理一次,但不是预期的10倍。

那么......有没有人知道如何使用这个系统的“规则”?

那是......

相邻坐标之间是否存在最大支撑偏差? 所有的坐标都需要在(-1,1)之内吗? 第一个数字是否必须为负数? (为什么不在微软的任何地方记录这一点)

1 个答案:

答案 0 :(得分:4)

我认为您的问题是NormalizedShort对象。 “Normalized”通常表示从-1到1的值。对于XNA,它似乎是same

尝试使用Vector2(浮点数)作为纹理坐标。