Это не связано с сглаживанием ... это связано с тем, как аппаратные средства сэмплируют тексели в текстуре. Фильтр по умолчанию в XNA обычно является линейным, но для получения таких «блочных» текстур вы должны использовать Point.
В C # вы можете настроить любое из ваших SamplerStates на использование PointWrap. Это комбинация точечной фильтрации с УФ-обертыванием.
// 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;
};
Вы также можете принудительно отключить отображение, если для MipFilter установлено значение Нет.