मुझे लगता है कि अन्य दृश्य ग्राफ प्रौद्योगिकियों क्या कर रहे हैं पर पढ़ने का एक अच्छा आप के लिए बहुत सारे लाभ होगा।
पृष्ठभूमि
उदाहरण के लिए, Ogre3D विवरण पर नज़र। यह एक दृश्य ग्राफ आधारित ग्राफिक्स इंजन है जो खुला स्रोत है। मैं ट्यूटोरियल देखने और यह देखने का सुझाव दूंगा कि कैसे दृश्य नोड्स का उपयोग किया जा रहा है (ध्यान दें: मैं आपको ओगरे का उपयोग करने के तरीके को सीखने के लिए नहीं कह रहा हूं, बल्कि ओग्रे के दृश्य नोड्स और दृश्य प्रबंधकों में क्या विशेषताएं मौजूद हैं)
दृश्य दस्तावेज़:
http://www.ogre3d.org/docs/api/1.9/class_ogre_1_1_scene_node.html
दृश्य प्रबंधक:
http://www.ogre3d.org/docs/api/1.9/class_ogre_1_1_scene_manager.html
कुछ और देखने लायक है निम्नलिखित लिंक:
http://sgl.sourceforge.net/#features
यह एक OpenGL आधारित दृश्य ग्राफ समाधान है और इसमें मौजूद सुविधाएँ पृष्ठ उन सभी नोड्स को दिखाता है जिनमें यह हो सकता है।
आपके सुझाए गए नोड्स
मेरी राय है कि एक दृश्य ग्राफ को गेम लॉजिक से जितना संभव हो उतना दूर होना चाहिए ताकि आपके पास कोई निर्भरता मुद्दे न हों। आपके प्रत्येक बुलेट पॉइंट के लिए मैं निम्नलिखित कहूंगा:
खेल अभिनेता
मैं शायद नहीं कहूँगा। ओग्रे के समान, मेरे पास एक आधार इकाई वर्ग होगा (जिसमें वस्तु विशिष्ट तर्क होगा) और एक आधार दृश्य के साथ एक आधार दृश्य सूचक के साथ वस्तु (स्थिति, अभिविन्यास, आदि) को प्रस्तुत करने के लिए उचित जानकारी प्राप्त करने के लिए होगा।
संपादित करें: मैं यहाँ दृश्य ग्राफ में अपने खेल अभिनेताओं को शामिल नहीं करने के लिए नहीं कह रहा हूँ (अन्यथा कुछ भी नहीं दिखाएगा: पी) मैं कह रहा हूँ कि दृश्य खेल अभिनेता वर्ग के संदर्भ में एक दृश्य नोड है, इसलिए आपने अभी भी खेल वस्तुओं के प्रतिपादन और अद्यतन के ढीले युग्मन मिला है।
सिंपल स्टैटिक गेम ojbects
यस
गेम ट्रिगर?
नहीं, यह मेरे लिए खेल के विशिष्ट तर्क की तरह लगता है।
खेल रोशनी?
हाँ
गेम कैमरा?
हाँ
हथियार की गोलियां?
इस एक के बारे में पूरी तरह से निश्चित नहीं है, लेकिन मैं शायद हां कहूंगा, लेकिन आप शायद सभी बुलेट को एक "BulletCollection" माता-पिता के दृश्य नोड के रूप में चाहते हैं, बस इसलिए आप उस स्थिति को कैश कर सकते हैं और आपको ट्रैवस नहीं करना पड़ेगा दृश्य ग्राफ को हटाने और रेंडर करने के लिए बुलेट जोड़ने के लिए।
खेल विस्फोट और विशेष प्रभाव?
निश्चित नहीं, मैं किसी और को इसका उत्तर दूंगा।
दृश्य ग्राफ़ कवरेज
यदि आपके पास अपेक्षाकृत छोटा स्तर है, तो आपको एक दृश्य ग्राफ़ में पूरे स्तर को संग्रहीत करने में सक्षम होना चाहिए और फिर ऑक्ट्री (आमतौर पर बाहरी वातावरण के लिए) या बीएसपी के पेड़ (आमतौर पर इनडोर वातावरण के लिए) का उपयोग करके दृश्यता के लिए अनुकूलन करना चाहिए।
यदि आपके पास बहुत बड़ा स्तर है और आप किसी भी स्तर की लोडिंग नहीं करना चाहते हैं, तो यह वह जगह है जहाँ स्ट्रीमिंग खेलने में आएगी, लेकिन यह पूरी तरह से एक और मुद्दा है। मैं एक छोटे स्तर के साथ शुरू करता हूं और वृद्धिशील रूप से देखता हूं कि प्रदर्शन को प्रतिकूल रूप से प्रभावित किए बिना आप इसे कितना बड़ा बना सकते हैं।
निष्कर्ष
मेरे लिए एक दृश्य ग्राफ एक गेम लूप के रेंडर भाग के लिए है। आपको अपने रेंडरिंग और अपने लॉजिक अपडेट को एक साथ बहुत निकट से नहीं करना चाहिए, अन्यथा आप कष्टप्रद निर्भरता के मुद्दों पर चलने वाले हैं।