Risposte:
È necessario impostare lo stato del campionatore. L'impostazione predefinita per SpriteBatch è SamplerState.LinearClamp
(ovvero: interpolazione lineare - quella liscia / sfocata).
Scegli una delle SpriteBatch.Begin
chiamate che accetta a SamplerState
e passa SamplerState.PointClamp
(seleziona il pixel in quel "punto" di precetto).
Nel caso in cui qualcun altro si stia chiedendo come farlo al di fuori di un batch di sprite, lo faresti appena prima di rendere le tue primitive:
this.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;
Questo deve essere fatto su ogni frame, se nella pipeline di rendering sono presenti altri elementi che potrebbero modificare questo valore (come a SpriteBatch
).
SamplerState.PointWrap
caso in cui desideri che avvenga il wrapping delle trame (pur disabilitando il filtro delle trame). Oppure, se hai bisogno del tuo comportamento personalizzato, puoi creare un nuovoSamplerState
oggetto per adattarlo a qualsiasi esigenza personalizzata e modificare laFilter
proprietà inTextureFilter.Point
.