3
วิธีที่ดีที่สุดในการปิดบังสไปรต์ 2D ใน XNA
ฉันกำลังพยายามปกปิดผีสางบ้าง แทนที่จะอธิบายเป็นคำฉันได้สร้างภาพตัวอย่าง: บริเวณที่สวมหน้ากาก (สีขาว) ทีนี้สไปรท์สีแดงที่ต้องถูกครอบตัด ผลสุดท้าย ตอนนี้ฉันทราบแล้วว่าใน XNA คุณสามารถทำสองสิ่งเพื่อบรรลุเป้าหมายนี้: ใช้ Buffer ฉลุ ใช้ Pixel Shader ฉันได้ลองทำพิกเซลเชดเดอร์ซึ่งทำสิ่งนี้เป็นหลัก: float4 main(float2 texCoord : TEXCOORD0) : COLOR0 { float4 tex = tex2D(BaseTexture, texCoord); float4 bitMask = tex2D(MaskTexture, texCoord); if (bitMask.a > 0) { return float4(tex.r, tex.g, tex.b, tex.a); } else { return float4(0, 0, …