msdn documentation की विपक्ष बनाने बताते हैं कि DirectX 11 में वहाँ एक DirectX 11 बनावट प्रोग्राम के रूप में भरने के लिए कई तरीके हैं:प्रोग्राम DirectX 11 बनावट, पेशेवरों और तीन अलग अलग तरीकों
(1) डिफ़ॉल्ट उपयोग बनावट के साथ बनावट बनाएं और इसे मेमोरी
(2) गतिशील उपयोग के साथ बनावट बनाएं, मेमोरी बनावट के लिए पॉइंटर प्राप्त करने के लिए डिवाइसकॉन्टेक्स्ट मानचित्र का उपयोग करें, इसे लिखें, फिर इंगित करने के लिए अनमैप का उपयोग करें (जिस बिंदु पर मुझे लगता है यह जीपीयू में कॉपी किया गया है)
(3) स्टैगिन के साथ बनावट बनाएं जी उपयोग और डायनामिक बनावट के लिए एक ही कदम का पालन करें, लेकिन इस स्टेजिंग बनावट का उपयोग करने के लिए ID3D11DeviceContext.CopyResource पर कॉल के साथ उसका पालन करें (बदले में) डिफ़ॉल्ट या गतिशील बनावट को भरें।
हालांकि दस्तावेज प्रत्येक विधि के पेशेवरों और विपक्ष को समझाता नहीं है, और मैं अभी भी डायरेक्टएक्स के लिए काफी नया हूं, इसलिए यह मेरे लिए बिल्कुल स्पष्ट नहीं है।
डायरेक्टएक्स 11 में प्रोग्रामेटिक रूप से बनावट बनाने के इन तरीकों के पेशेवरों और विपक्ष क्या हैं?
साइड नोट: मैंने पढ़ा है कि मंचन बनावट के संदर्भ में पढ़ने GPU से वापस ताकि आप अपने डबल बफरिंग क्या करना है बफ़र नहीं है। लेकिन मुझे नहीं पता कि यह सटीक था और क्या यह स्टेजिंग बनावट (या वास्तव में इसका अर्थ है) का उपयोग करके लिखित पर लागू होता है।
द्वितीय पक्ष नोट: नक्शा विधि प्रलेखन का कहना है कि यह एक उप-संसाधन में डेटा के लिए एक सूचक प्राप्त करता है और उस सबसोर्स को GPU पहुंच से इनकार करता है। जब जीपीयू एक बनावट का उपयोग करना चाहता है जिसका अंतर्निहित डेटा मानचित्र द्वारा बुलाया गया है, तो यह क्या करता है? रोकने? (मैं पूछता हूं क्योंकि यह उन पेशेवरों और विपक्षों के हिस्से की तरह लगता है जिनके बारे में मैंने पूछा)
नोट्स जोड़ना जैसे मैं सीखता हूं। स्पष्ट रूप से आप उपरोक्त विधि (1) का उपयोग करके प्रोग्रामिंग रूप से एक बहुआयामी डिफ़ॉल्ट बनावट नहीं बना सकते हैं। –
डायरेक्टएक्स 11 में मैप करने के लिए कॉल में डी 3 डी 11_MAP_FLAG बेहद अस्पष्ट होने पर स्पष्ट रूप से GPU को बताता है कि मैप किए गए संसाधन की आवश्यकता होने पर क्या करना है। वर्तमान में केवल एक ध्वज दस्तावेज किया गया है, और यह स्पष्ट नहीं है कि 0 का उपयोग करना बंद करना है या नहीं। –
स्पष्ट रूप से एक D3D11_USAGE_DYNAMIC संसाधन में 1 के बराबर miplevels होना चाहिए। –