2011-04-11 56 views
3

我得到了自己的錯誤XNA河段輪廓

「XNA框架河段文件要求TextureAddressMode使用紋理尺寸不在的兩個大國的時候要夾緊」線路

GraphicsDevice.DrawUserPrimitives<VertexPositionTexture> 
        (PrimitiveType.TriangleStrip, verts, 0, 2); 

什麼都要我做 ?

感謝,

回答

8

當使用範圍的個人資料,使用兩種尺寸的紋理的電源或將TextureAddressingMode夾緊。

TextureAddressingMode是GraphicsDevice SamplerState的一部分。您需要在繪畫通話之前設置此狀態。以下代碼顯示瞭如何將第一個紋理採樣器設置爲內置的採樣器狀態之一。

GraphicsDevice.SamplerStates[0] = SamplerState.LinearClamp; 

GraphicsDevice.DrawUserPrimitives<VertexPositionTexture> 
        (PrimitiveType.TriangleStrip, verts, 0, 2); 
+0

這工作得很好!謝謝。 – ileon 2012-04-30 19:17:22

+0

不幸的是,我沒有爲它剪掉它。 – 2012-10-03 01:15:36

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