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