Câu trả lời:
Bạn cần đặt trạng thái lấy mẫu. Mặc định cho SpriteBatch là SamplerState.LinearClamp
(tức là: nội suy tuyến tính - mịn / mờ).
Chọn một trong các SpriteBatch.Begin
cuộc gọi nhận SamplerState
và chuyển qua SamplerState.PointClamp
(chọn pixel tại "điểm" đó.
Chỉ trong trường hợp người khác đang tự hỏi làm thế nào để thực hiện việc này ngoài một đợt sprite, bạn sẽ làm điều này ngay trước khi hiển thị nguyên thủy của mình:
this.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;
Điều này phải được thực hiện trên mọi khung hình, nếu có các mục khác trong đường dẫn kết xuất của bạn sẽ thay đổi giá trị này (như a SpriteBatch
).
SamplerState.PointWrap
nếu bạn muốn gói kết cấu diễn ra (trong khi vẫn vô hiệu hóa tính năng lọc kết cấu). Hoặc nếu bạn cần hành vi tùy chỉnh của riêng mình, bạn có thể tạo mộtSamplerState
đối tượng mới để phù hợp với bất kỳ nhu cầu tùy chỉnh nào và thay đổi thuộcFilter
tính thànhTextureFilter.Point
.