这与抗锯齿无关......它与硬件如何在纹理中采样纹理相关。 XNA中的默认过滤器通常是线性的,但要获得那些“块状”外观纹理,您必须使用Point。
在C#中,您可以设置任何SamplerState以使用PointWrap。这是点过滤与UV包装的组合。
// any state index from 0 to 15, textures usually take 0 first
GraphicsDevice.SamplerStates[0] = SamplerState.PointWrap;
但是它必须被指派到与SamplerState相同的寄存器。例如。寄存器s0通常是SamplerStates [0]。 另外,您可以在着色器执行采样的状态,并在其中设置您的寄存器:
sampler2D textureSampler : register(s0) = sampler_state
{
Texture = <Texture>;
MipFilter = Point;
MagFilter = Point;
MinFilter = Point;
AddressU = Wrap;
AddressV = Wrap;
};
您还可以强制关闭mipmapping贴图与MipFilter设置为无。
+1,因为这是正确的答案。 –
应该过滤器不是最接近而不是线性? –
@FelixK。你是对的,我做了这个改正。该过滤器实际上称为点,它与最近邻过滤器相同。 –