我有一张512x512的图像,我需要将其平铺为背景。
我这样做是通过设置SamplerState.LinearWrap
并在图像上设置更大的源矩形。
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied, SamplerState.LinearWrap, DepthStencilState.Default, RasterizerState.CullNone);
spriteBatch.Draw(texture, bounds, bounds, Color.White);
spriteBatch.End();
bounds
是new Rectangle(0, 0, 1024, 768)
现在它看起来像这样:
这些线条是图像的平铺位置。原始png边缘没有任何线条(我放大并在Photoshop中检查出来)。
这是怎么回事? Here is an example project on DropBox
我尝试使用非幂二纹理,并且它在SamplerState
上出错,所以我使用的是适当大小的纹理,我相信。
答案 0 :(得分:2)
似乎是图像中的图形工件。
我将图像的一部分复制并粘贴到边缘,它按预期工作,您的代码正常工作。尝试使用不同的图像进行确认。