सीखने के अभ्यास के रूप में मैंने एक स्थगित प्रतिपादन इंजन लिखा है। अब मैं इस इंजन में एक दृश्य ग्राफ जोड़ना चाहता हूं, लेकिन मैं थोड़ा हैरान हूं कि यह कैसे करना है।
एक सामान्य (फॉरवर्ड रेंडरिंग इंजन) पर, मैं अपने दृश्य ग्राफ में सभी आइटम (सभी लागू करने योग्य पहचान योग्य और IUpdateAble) को जोड़ दूंगा, पहले दृश्य-ग्राफ़ की चौड़ाई और कॉल ड्रा () हर जगह की यात्रा की तुलना में।
हालाँकि एक आस्थगित रेंडरिंग इंजन में मुझे ड्रॉ कॉल्स को अलग करना होगा। पहले मुझे रेखागणित खींचना होगा, फिर छाया कलाकारों और फिर रोशनी (सभी को अलग-अलग लक्ष्य देना), इससे पहले कि मैं उन सभी को मिला दूं। तो इस मामले में मैं सिर्फ दृश्य ग्राफ पर यात्रा नहीं कर सकता और सिर्फ कॉल ड्रॉ कर सकता हूं। जिस तरह से मैं इसे देखता हूं मुझे या तो पूरे दृश्य ग्राफ पर 3 बार यात्रा करना पड़ता है, यह जांचना कि यह किस तरह की वस्तु है जिसे खींचना है, या मुझे 3 अलग-अलग दृश्य ग्राफ़ बनाने हैं जो किसी तरह एक दूसरे से जुड़े हैं। ये दोनों खराब समाधान लगते हैं, मैं दृश्य वस्तुओं को अधिक पारदर्शी संभालना चाहता हूं।
एक अन्य उपाय जो मैंने सोचा है कि दृश्य ग्राफ को सामान्य के रूप में गर्त में यात्रा करना और 3 अलग-अलग सूचियों में आइटम जोड़ना, ज्यामिति, छाया कलाकारों और रोशनी को अलग करना, और फिर इन सामानों को सही सामान खींचने के लिए पुनरावृत्त करना, क्या यह बेहतर है, और क्या यह है हर फ्रेम को 3 सूचियों को फिर से खोलने के लिए बुद्धिमान?