ฉันมีเทพดาที่ฉันพยายามไต่ระดับขึ้นใน XNA แต่ XNA กำลังใช้การกรองพื้นผิวบางชนิดที่ทำให้มันเรียบและทำให้ดูน่าเกลียด ฉันต้องการให้พิกเซลเพิ่มเป็นสองเท่าแทนการแก้ไข ฉันจะทำให้สำเร็จได้อย่างไร
ฉันมีเทพดาที่ฉันพยายามไต่ระดับขึ้นใน XNA แต่ XNA กำลังใช้การกรองพื้นผิวบางชนิดที่ทำให้มันเรียบและทำให้ดูน่าเกลียด ฉันต้องการให้พิกเซลเพิ่มเป็นสองเท่าแทนการแก้ไข ฉันจะทำให้สำเร็จได้อย่างไร
คำตอบ:
คุณต้องตั้งค่าสถานะตัวอย่าง ค่าเริ่มต้นสำหรับ SpriteBatch คือSamplerState.LinearClamp(เช่น: การแก้ไขเชิงเส้น - แบบเรียบ / พร่ามัว)
เลือกหนึ่งในSpriteBatch.Beginสายที่ใช้SamplerStateและผ่านSamplerState.PointClamp(เลือกพิกเซลที่ precice "จุด")
ในกรณีที่คนอื่นกำลังสงสัยว่าจะทำสิ่งนี้นอกแบทสไปรท์ได้อย่างไรคุณจะทำสิ่งนี้ก่อนที่จะแสดงผลดั้งเดิมของคุณ:
this.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;
สิ่งนี้จะต้องทำในทุก ๆ เฟรมหากมีรายการอื่นในขั้นตอนการเรนเดอร์ของคุณที่จะเปลี่ยนค่านี้ (เหมือนกSpriteBatch)
SamplerState.PointWrapถ้าคุณต้องการให้การห่อพื้นผิวเกิดขึ้น (ในขณะที่ยังคงปิดการใช้งานการกรองพื้นผิว) หรือหากคุณต้องการพฤติกรรมของคุณเองคุณสามารถสร้างใหม่SamplerStateวัตถุเพื่อให้พอดีกับความต้องการที่กำหนดเองใด ๆ และเปลี่ยนคุณสมบัติการFilterTextureFilter.Point