在XNA中夹紧TextureAddressMode

时间:2012-05-29 01:32:00

标签: c# xna xna-4.0

我一直致力于在XNA中实现2D照明系统,并且我已经让系统工作 - 只要我的窗口的尺寸是2的幂。否则,程序将在此行失败:

GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleStrip, Vertices, 0, 2);

该异常声明“当使用不是2的幂的纹理大小时,XNA Framework Reach配置文件要求TextureAddressMode为Clamp”,并且我为解决此问题所做的每一次尝试都失败了 - 最常见的解决方案I在互联网上发现的是将GraphicsDevice.SamplerStates[0] = SamplerState.LinearClamp;行直接放在上面的行上方,但这并没有解决我的问题。

如果我遗漏了解决此问题所需的任何信息,我道歉;我非常乐意根据需要提供更多。

1 个答案:

答案 0 :(得分:1)

这不是你之前提出过的问题吗?

在HLSL中查找声明采样器的像素着色器正在使用的行。

您可以将地址模式设置为此行中的钳位。

SamplerState somethingLikeThis {
    Filter = MIN_MAG_MIP_LINEAR;
    AddressU = Clamp;
    AddressV = Clamp;
};