DirectX 10 से DirectX 11 पर जा रहा है


10

मैंने DirectX 9 का उपयोग करके छोटे शौक परियोजनाओं की एक उचित संख्या में किया है, लेकिन अब DirectX 11 में जाने का समय है।

मेरे पास DirectX 10 का उपयोग करते हुए 3D प्रोग्रामिंग पर फ्रैंक Luna'a पुस्तक है, लेकिन DirectX 11 पर कुछ भी नहीं है। मेरा मानना ​​है कि वे बहुत समान हैं, लेकिन सोच रहा था कि क्या कोई किसी कोड स्तर पर मुख्य अंतरों की गणना कर सकता है जिसे मुझे पता होना चाहिए (ए या किसी मौजूदा स्रोत की ओर इशारा करते हुए)।



मैंने सुना है कि DX10 वास्तव में अलग था और DX9 के साथ संगत नहीं था, जबकि DX11 DX9 के साथ पीछे संगत था।
जोक

DX10, DX9 से काफी अलग है, लेकिन DX11 DX10 से काफी मिलता-जुलता है, मैं सिर्फ यह जानना चाहता था कि अंतर क्या थे। अजीब बात है, हालांकि, DX11 DX9 हार्डवेयर के साथ काम करेगा, लेकिन DX10 नहीं होगा;)
JohnB

जवाबों:


15

SDK प्रलेखन में 11 में माइग्रेट करने के लिए एक खंड है जो 9 और 10 दोनों से आता है। इसमें D3D11 फीचर पेज भी है

10 और 11 के बीच एपीआई आकार के मामले में एक सबसे बड़ा बदलाव यह है कि 11 ID3D11DeviceContextनए मल्टी-थ्रेडिंग सुविधाओं का समर्थन करने के लिए डिवाइस से स्वयं एक नए इंटरफ़ेस में एक डिवाइस संदर्भ ( विशेष रूप से) नामक एक नए तरीके को स्थानांतरित करता है।

एक बार जब आप परिवर्तन के बारे में जानते हैं, हालांकि, इसे अनुकूलित करना काफी आसान है: जहां आपको 10 में बुलाया जाएगा " someDevice->Draw()" आपको इसके बजाय डिवाइस और कॉल के लिए तत्काल संदर्भ मिलेगा " immediateContext->Draw()।"

अन्य बड़ा बदलाव यह है कि प्रभाव एपीआई को कोर से बाहर निकाला जाता है और एक स्वतंत्र स्रोत वितरण किया जाता है जिसे आपको स्वयं संकलन और लिंक करना होगा। आप कुछ डी 3 डीएक्स इंटरफेस और कार्यों को भी देख सकते हैं जिन्हें हटा दिया गया है या हटा दिया गया है।

इसके अलावा, कुछ कार्यों के लिए नए पैरामीटर और संरचनाओं में अतिरिक्त क्षेत्रों के एक मुट्ठी भर, एट सीटेरा हैं। उदाहरण के लिए, 11 में बफ़र विवरण ऑब्जेक्ट में एक अतिरिक्त StructureByteStrideफ़ील्ड है जो 10 में नहीं है , और डिवाइस निर्माण में सुविधा स्तर की जानकारी शामिल है। इसके अलावा इंटरफ़ेस नामों में स्पष्ट और पूर्वोक्त परिवर्तन हैं (10s को 11s के साथ बदल दिया गया है)।


धन्यवाद, बस मुझे जो चाहिए था। मैंने कुछ आधिकारिक गाइड की तलाश की जो बदल गई थी लेकिन किसी तरह इसे खोजने का प्रबंधन नहीं किया। इस उत्तर के लिए धन्यवाद और अन्य लोग जिन्होंने अच्छे उत्तरों के साथ मदद करने के लिए भी समय लिया :)
जॉन बी

यह मजेदार है कि कोई उन सामानों को जल्दी कैसे भूल जाता है। मुझे विशेष रूप से प्रभाव संकलन से नफरत थी और इसे काम करने में मुझे कुछ दिन लगे। लेकिन मैंने इसे अपने उत्तर में शामिल नहीं किया ...
नोटाबिन

मैं इसे एक प्रश्न के रूप में पोस्ट करने जा रहा था, लेकिन महसूस किया कि आपका जवाब पहले से ही मेरी चिंताओं को कवर करता है, हालांकि मैं कुछ पुष्टि करना चाहता हूं। किसी ऐसे व्यक्ति के लिए जो केवल DX9 के साथ काम करता है, लेकिन अपने ज्ञान को उन्नत करना चाहता है, एक DX11 पुस्तक उठाकर न केवल मुझे DX11 (स्पष्ट रूप से) के बारे में सिखाएगा, बल्कि जरूरत पड़ने पर मुझे DX10 के साथ काम करने के लिए पर्याप्त ज्ञान भी देगा?
डेविड गौवेया

हाँ थोड़ा सा।

1

मुझे लगता है कि मुख्य अंतर यह है कि, DX11 में DXFont चला गया है, इसके अलावा यह बहुत ज्यादा है जैसा कि नोटबिन ने कहा है। आपको उस DX10 पुस्तक के साथ ठीक होना चाहिए। मैंने DX11 में जाने पर उस एक का उपयोग किया था और मुझे कोई समस्या नहीं थी। आपको समय-समय पर msdn को देखने और देखने की आवश्यकता होगी, हालांकि, API में कुछ मामूली अंतर हैं IIRC।


1

बदलने की जरूरत नहीं होगी। Directx11 केवल नई सुविधाएँ जोड़ता है। आप बस ID3D10 से ID3D11 आदि में नंबर बदलेंगे।


DirectX11 जोड़ता है (यदि हाइपेड एचडब्ल्यू टेसलेशन के बारे में बात नहीं की जाती है) डायरेक्ट कंप्यूट: GPGPU के लिए API, ग्राफिक्स पाइप लाइन के लिए उत्कृष्ट कनेक्शन के साथ (i कैंडा इसे CUDA, या ओपनसीएल के बारे में कहता है)। और एक पिक्सेल शेडर पर कई आरडब्ल्यू बनावट और बफ़र्स की संभावना, जो बहुत सारी नई संभावनाओं को खोलता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.