ใน d3d11 คุณสามารถผูกหลายทำให้เป้าหมายID3D11DeviceContext :: OMSetRenderTargets แต่ทำไมคุณต้องการทำเช่นนี้?
ใน d3d11 คุณสามารถผูกหลายทำให้เป้าหมายID3D11DeviceContext :: OMSetRenderTargets แต่ทำไมคุณต้องการทำเช่นนี้?
คำตอบ:
เมื่อการเรนเดอร์เป้าหมายหลายรายการถูกเชื่อมโยงพวกเขาแต่ละคนสามารถเขียนไปยังทีละพิกเซลโดย shader พิกเซล - มันไม่จำเป็น (ในกรณี) ว่าเป้าหมายการเรนเดอร์ทั้งหมดจะได้รับภาพเดียวกัน คุณสามารถเขียนเฉพาะองค์ประกอบสีแดงลงในเอาท์พุทหนึ่งเพียงสีฟ้าเป็นอื่นและอื่น ๆ
สิ่งนี้ถูกใช้เมื่อใช้การเรนเดอร์ที่เลื่อนออกไปตัวอย่างเช่น: ตำแหน่ง, ปกติ, สี, และข้อมูลอื่น ๆ จะถูกเขียนไปยังเป้าหมายการเรนเดอร์ของตัวเอง
สิทธิประโยชน์เพิ่มเติมสำหรับการใช้เป้าหมายการแสดงผลหลายรายการเช่นเดียวกับการแสดงผลแบบเลื่อนเวลาเช่น Josh ที่กล่าวถึงคือคุณส่งรูปทรงเรขาคณิตของฉากไปยังจุดยอดเพียงครั้งเดียวและนำไปใช้กับเอาต์พุตพิกเซล shader ที่แตกต่างกัน ความต้องการ. สิ่งนี้ช่วยประหยัดเวลาในการคำนวณจำนวนมากสำหรับ GPU การแลกเปลี่ยนเพื่อประสิทธิภาพ GPU ที่เร็วขึ้นคือการใช้หน่วยความจำบัฟเฟอร์เฟรมที่สูงขึ้น