超级模糊的纹理- XNA
本文关键字:XNA 纹理 模糊 | 更新日期: 2023-09-27 18:16:13
当我近距离观察纹理时,我似乎得到了非常模糊的纹理。我正在创建一个类似minecraft的地形,我希望纹理是像素化的-就像它是做的,而不是XNA试图为我平滑它。
显示如下:http://s1100.photobucket.com/albums/g420/darestium/?action=view¤t=bluryminecraftterrain.png
这与抗锯齿无关…这与硬件如何采样纹理中的纹理有关。XNA的默认过滤器通常是线性的,但要得到那些"块状"纹理,你必须使用点。
在c#中,你可以设置任何一个SamplerStates来使用PointWrap。这是点过滤和UV包装的结合。// any state index from 0 to 15, textures usually take 0 first
GraphicsDevice.SamplerStates[0] = SamplerState.PointWrap;
但是,它必须与SamplerState分配到相同的寄存器。如。寄存器0通常是SamplerStates[0]。或者你可以在着色器上执行采样器状态,并在那里设置寄存器:
sampler2D textureSampler : register(s0) = sampler_state
{
Texture = <Texture>;
MipFilter = Point;
MagFilter = Point;
MinFilter = Point;
AddressU = Wrap;
AddressV = Wrap;
};
你也可以将MipFilter设置为None来强制关闭mipmapping