我明白他的错误
“当使用不是 2 次幂的纹理大小时,XNA Framework Reach 配置文件要求 TextureAddressMode 为 Clamp”
用于线
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>
(PrimitiveType.TriangleStrip, verts, 0, 2);
我应该怎么办 ?
谢谢,
我明白他的错误
“当使用不是 2 次幂的纹理大小时,XNA Framework Reach 配置文件要求 TextureAddressMode 为 Clamp”
用于线
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>
(PrimitiveType.TriangleStrip, verts, 0, 2);
我应该怎么办 ?
谢谢,
使用范围配置文件时,使用两个大小纹理的幂或将 TextureAddressingMode 设置为 Clamp。
TextureAddressingMode 是 GraphicsDevice SamplerState 的一部分。您需要在绘制调用之前设置此状态。以下代码显示如何将第一个纹理采样器设置为内置采样器状态之一。
GraphicsDevice.SamplerStates[0] = SamplerState.LinearClamp;
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>
(PrimitiveType.TriangleStrip, verts, 0, 2);
在我的情况下,Model.fx 文件将 AddressMode 设置为 Wrap,这搞砸了。
这是我的 Model.fx 中正确的 sampler_state:
sampler TextureSampler = sampler_state
{
Texture = (Texture);
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
AddressU = Clamp;
AddressV = Clamp;
};
更多信息可以在这里找到:http: //www.packtpub.com/article/xna-hsl