Jawaban:
Anda perlu mengatur status sampler. Default untuk SpriteBatch adalah SamplerState.LinearClamp
(yaitu: interpolasi linier - yang mulus / buram).
Pilih salah satu SpriteBatch.Begin
panggilan yang menerima a SamplerState
dan meneruskan SamplerState.PointClamp
(memilih pixel pada "titik" precice itu).
Untuk berjaga-jaga jika ada orang lain yang bertanya-tanya bagaimana melakukan ini di luar kumpulan sprite, Anda akan melakukan ini sebelum merender primitif Anda:
this.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;
Ini harus dilakukan pada setiap frame, jika ada item lain dalam pipa rendering Anda yang akan mengubah nilai ini (seperti a SpriteBatch
).
SamplerState.PointWrap
jika Anda ingin pembungkus tekstur terjadi (sementara masih menonaktifkan penyaringan tekstur). Atau jika Anda membutuhkan perilaku kustom Anda sendiri, Anda dapat membuatSamplerState
objek baru agar sesuai dengan kebutuhan kustom apa pun, dan mengubahFilter
properti menjadiTextureFilter.Point
.