I have a sprite that I'm trying to scale up in XNA, but XNA is applying some sort of texture filtering that smooths it and makes it look ugly. I'd like it to just do pixel doubling instead of interpolation. How would I accomplish that?
You need to set the sampler state. The default for SpriteBatch is
SamplerState.LinearClamp (ie: linear interpolation - the smooth/blurry one).
Choose one of the
SpriteBatch.Begin calls that takes a
SamplerState and pass in
SamplerState.PointClamp (selects the pixel at that precice "point").
Just in case someone else is wondering how to do this outside of a sprite batch, you would do this just before rendering your primitives:
this.GraphicsDevice.SamplerStates = SamplerState.PointClamp;
This has to be done on every frame, if there are other items in your rendering pipeline that would change this value (like a