超级模糊纹理 - XNA

Dar*_*ium 2 c# xna textures

当我近距离观察纹理时,我似乎得到了非常模糊的纹理.我正在创建一个像Minecraft一样的地形的东西,我希望纹理像素化 - 就像它是制作而不是XNA尝试为我平滑它.

以下是它的显示方式:http://s1100.photobucket.com/albums/g420/darestium/?action = view¤t = bluryminecraftterrain.png

任何建议都会受到很多限制.

Chr*_*s C 11

它与抗锯齿无关......它与硬件如何对纹理中的纹素进行采样有关.XNA中的默认过滤器通常是线性的,但要获得那些"块状"外观纹理,您必须使用Point.

在C#中,您可以将任何SamplerStates设置为使用PointWrap.这是点过滤和UV包装的组合.

// any state index from 0 to 15, textures usually take 0 first    
GraphicsDevice.SamplerStates[0] = SamplerState.PointWrap; 
Run Code Online (Sandbox Code Playgroud)

但是,它必须分配给与SamplerState相同的寄存器.例如.寄存器s0通常是SamplerStates [0].或者,您可以在着色器上强制执行采样器状态,并在那里设置寄存器:

sampler2D textureSampler : register(s0) = sampler_state
{
    Texture = <Texture>;
    MipFilter = Point;
    MagFilter = Point;
    MinFilter = Point;
    AddressU = Wrap;
    AddressV = Wrap;
};
Run Code Online (Sandbox Code Playgroud)

您也可以通过将MipFilter设置为None来强制关闭mipmapping.