ในฐานะที่เป็นแบบฝึกหัดการเรียนรู้ฉันได้เขียนเอนจิ้นการแสดงผลที่เลื่อนออกไป ตอนนี้ฉันต้องการเพิ่มกราฟฉากลงในเอ็นจิ้นนี้ แต่ฉันก็สับสนนิดหน่อยว่าจะทำอย่างไร
ในเครื่องมือการเรนเดอร์ปกติ (forward render) ฉันจะเพิ่มรายการทั้งหมด (การใช้ IDrawable และ IUpdateAble) ไปยังกราฟฉากของฉันมากกว่าการเดินทางไปยังกราฟฉากกว้างก่อนและเรียก Draw () ทุกที่
อย่างไรก็ตามในเอนจินการเรนเดอร์ฉันต้องแยกสายการโทรออก ก่อนอื่นฉันต้องวาดรูปเรขาคณิตแล้วก็เงาล้อเลื่อนแล้วไฟ (ทั้งหมดไปยังเป้าหมายเรนเดอร์ต่าง ๆ ) ก่อนที่จะรวมมันทั้งหมด ดังนั้นในกรณีนี้ฉันไม่สามารถเดินทางผ่านกราฟฉากและเรียกวาดได้ วิธีที่ฉันเห็นมันฉันต้องเดินทางข้ามกราฟฉากทั้งหมด 3 ครั้งตรวจสอบว่ามันจะต้องวาดวัตถุชนิดใดหรือฉันต้องสร้างกราฟฉากแยกต่างหาก 3 ฉากที่เชื่อมต่อกัน ทั้งสองอย่างดูจะแก้ปัญหาได้ไม่ดีฉันต้องการจัดการกับวัตถุฉากให้โปร่งใสยิ่งขึ้น
อีกวิธีหนึ่งที่ฉันคิดว่าจะเดินทางผ่านกราฟฉากเป็นเรื่องปกติและเพิ่มรายการลงใน 3 รายการแยกกันแยกเรขาคณิตลูกล้อเงาและแสงจากนั้นวนซ้ำรายการเหล่านี้เพื่อวาดสิ่งที่ถูกต้องดีกว่านี้หรือไม่ ฉลาดที่จะ repopulate 3 รายการทุกเฟรม?