ฉันคิดว่าการอ่านข้อมูลเกี่ยวกับเทคโนโลยีกราฟซีนอื่น ๆ ที่ดีจะทำให้คุณได้รับประโยชน์มากมาย
พื้นหลัง
ตัวอย่างเช่นดูคำอธิบาย Ogre3D เป็นเอ็นจิ้นกราฟิคแบบกราฟฉากซึ่งเป็นโอเพ่นซอร์ส ฉันขอแนะนำให้ดูบทเรียนและดูวิธีการใช้โหนดฉาก (หมายเหตุ: ฉันไม่ได้บอกให้คุณเรียนรู้วิธีใช้ Ogre แต่มีคุณสมบัติอะไรบ้างที่ปรากฏในโหนดฉากและผู้จัดการฉากของ Ogre)
เอกสารประกอบฉากของ SceneNode:
http://www.ogre3d.org/docs/api/1.9/class_ogre_1_1_scene_node.html
เอกสารประกอบฉากของ SceneManager:
http://www.ogre3d.org/docs/api/1.9/class_ogre_1_1_scene_manager.html
อย่างอื่นที่ควรค่าแก่การดูคือลิงค์ต่อไปนี้:
http://sgl.sourceforge.net/#features
เป็นโซลูชันกราฟฉากที่ใช้ OpenGL และหน้าคุณสมบัติที่มีแสดงโหนดทั้งหมดที่สามารถมีได้
โหนดแนะนำของคุณ
ฉันเห็นว่ากราฟฉากควรจะถูกแยกออกไปให้มากที่สุดเท่าที่จะเป็นไปได้จากตรรกะของเกมเพื่อที่คุณจะได้ไม่มีปัญหาเรื่องการพึ่งพา สำหรับแต่ละหัวข้อย่อยของคุณฉันจะพูดต่อไปนี้:
นักแสดงเกม
ฉันอาจจะปฏิเสธไม่ได้ คล้ายกับ Ogre ฉันจะมีคลาส Entity พื้นฐาน (ซึ่งจะมีตรรกะเฉพาะวัตถุ) และ SceneNode ฐานพร้อมตัวชี้สมาชิก Entity เพื่อรับข้อมูลที่เหมาะสมในการแสดงวัตถุ (ตำแหน่งการวางแนว ฯลฯ )
แก้ไข: ฉันไม่ได้บอกว่าจะไม่รวมนักแสดงเกมของคุณในกราฟฉากที่นี่ (ไม่เช่นนั้นจะไม่มีอะไรปรากฏขึ้น: P) ฉันกำลังบอกว่าจะมีโหนดฉากที่มีการอ้างอิงถึงระดับนักแสดงเกมตรรกะ ยังคงมีข้อต่อหลวมของการเรนเดอร์และอัปเดตของวัตถุเกม
เกมคงง่าย ojbects
ใช่
ทริกเกอร์ของเกม
ไม่เสียงเหมือนเกมเฉพาะสำหรับฉัน
ไฟของเกม
ใช่
กล้องเกม?
ใช่
กระสุนอาวุธ?
ไม่แน่ใจเกี่ยวกับสิ่งนี้อย่างสมบูรณ์ แต่ฉันอาจจะตอบว่าใช่ แต่คุณอาจต้องการให้ลูกกระสุนทั้งหมดเป็นโหนดย่อยของ "BulletCollection" โหนดหลักดังนั้นคุณจึงสามารถแคชตำแหน่งนั้นได้และคุณจะไม่ต้องไปสำรวจ กราฟฉากเพื่อลบและเพิ่มกระสุนเพื่อแสดงผล
การระเบิดของเกมและเทคนิคพิเศษ?
ไม่แน่นอนฉันจะให้คนอื่นตอบคำถามนั้น
ครอบคลุมกราฟฉาก
ถ้าคุณมีระดับที่ค่อนข้างเล็กคุณควรจะสามารถจัดเก็บทั้งระดับในกราฟฉากแล้วปรับให้เหมาะสมสำหรับการมองเห็นโดยใช้ Octree (ปกติสำหรับสภาพแวดล้อมกลางแจ้ง) หรือต้นไม้ BSP (โดยปกติสำหรับสภาพแวดล้อมในร่ม)
หากคุณมีระดับที่ใหญ่กว่ามากและคุณไม่ต้องการทำการโหลดในระดับใด ๆ นี่คือสิ่งที่สตรีมมิ่งจะเข้ามาเล่น แต่นั่นเป็นปัญหาอื่นทั้งหมด ฉันเริ่มจากระดับเล็ก ๆ และดูทีละน้อยว่าคุณสามารถสร้างมันได้โดยไม่ส่งผลเสียต่อประสิทธิภาพการทำงาน
สรุป
สำหรับฉันกราฟฉากสำหรับ Render ส่วนหนึ่งของลูปเกม คุณไม่ควรจับคู่การเรนเดอร์และลอจิกของคุณเข้าด้วยกันอย่างใกล้ชิดมิฉะนั้นคุณจะเจอกับปัญหาการพึ่งพา