我得到了他的错误
“当使用不是2的幂的纹理大小时,XNA Framework Reach配置文件要求TextureAddressMode为Clamp”
换行
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>
(PrimitiveType.TriangleStrip, verts, 0, 2);
我该怎么办?
谢谢,
答案 0 :(得分:8)
使用覆盖率配置文件时,请使用两种尺寸纹理的力量或将TextureAddressingMode设置为Clamp。
TextureAddressingMode是GraphicsDevice SamplerState的一部分。您需要在绘制调用之前设置此状态。以下代码显示如何将第一个纹理采样器设置为其中一个内置采样器状态。
GraphicsDevice.SamplerStates[0] = SamplerState.LinearClamp;
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>
(PrimitiveType.TriangleStrip, verts, 0, 2);
答案 1 :(得分:1)
我是我的情况,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