क्या मुझे Direct3D 9, 10 या 11 सीखना चाहिए? [बन्द है]


14

मैं डायरेक्ट 3 डी के साथ 3 डी प्रोग्रामिंग में आना शुरू कर रहा हूं। डी 3 डी के किस संस्करण को मुझे उठाना चाहिए?

11 बहुत साफ-सुथरा दिखता है, लेकिन 9 और 10 अभी भी बहुत सुंदर हैं। खेल विकास उद्योग की वर्तमान स्थिति को देखते हुए, इसका उपयोग करने के लिए कौन सा संस्करण अधिक समझ में आता है?


"कौन सी तकनीक का उपयोग करना है" प्रश्न अच्छे नहीं हैं क्यू / ए प्रश्न।
MichaelHouse

जवाबों:


12

यह इस बात पर निर्भर करता है कि आप तीन साल या एक साल या छह महीने में होने वाले खेल का निर्माण करने के लिए इंजन डिजाइन करना चाहते हैं या नहीं, और आप कंसोल पोर्ट के बारे में सोच रहे हैं या नहीं। Direct3D9 से अपने गेम के 360 पोर्ट को बाहर करना अपेक्षाकृत आसान होगा, लेकिन आपको D3D11 से बहुत अधिक उत्पत्ति करने की आवश्यकता होगी। याद रखें कि सभी डी 3 डी 9 हार्डवेयर को नहीं तो डी 3 डी 11 सभी एक्सपी उपयोगकर्ताओं को बंद कर देता है।

सबसे ताजा स्टीम सर्वेक्षण बताता है कि लगभग 16% लोग अभी भी विंडोज एक्सपी का उपयोग करते हैं। क्या आप उन्हें काट सकते हैं? जब तक आपका खेल पूरा हो जाता है, तब तक यह कैसे बदल जाएगा? क्या आप उन सुविधाओं का उपयोग करने जा रहे हैं जो उच्च स्तरीय एपीआई पर निर्भर हैं? ये ऐसे सवाल हैं जिनका जवाब आपको खुद देना होगा।

Direct3D 9 बहुत लानत सुलभ है और आप एक बहुत से लोगों तक डी 3 डी 9 गेम तक पहुंच सकते हैं, लेकिन यह दिन गिने जा रहे हैं, खासकर पीसी पर। यदि आप उन लोगों को लक्षित करने में रुचि नहीं रखते हैं, तो इसका कोई मतलब नहीं है।

ओह, और DX10 के साथ परेशान मत करो। DX11 पर इसका उपयोग करने का कोई कारण नहीं है। जब तक आप D2D / DirectWrite का उपयोग नहीं करना चाहते हैं, जो अनुचित नहीं है।

बेशक, यह ध्यान देने योग्य है कि DX11 में, उन वर्गों के लिए कोई प्रतिस्थापन नहीं है जो स्वयं एक शौक़ीन व्यक्ति के रूप में, मुझे DX9 में बेहद उपयोगी लगे। जैसे ID3DXMesh, ID3DXSprite, ID3DXFont, को स्रोत से ID3DXEffect को संकलित करना होगा, आदि Microsoft Direct3rite को ID3DXFont को बदलने की सलाह देते हैं, लेकिन निश्चित रूप से, वे वास्तव में नए Direct2D / DirectWrite सिस्टम के साथ संगत DX11 बनाना भूल गए हैं, जो मेरे विचार में हैं। ।


उन्होंने प्रभाव रूपरेखा क्यों निकाली? यह एक बहुत ही उपयोगी वर्ग IMO था।
डॉटमिन

@__dominic: इसे हटाया नहीं गया है, लेकिन आपको इसे स्वयं संकलित करना होगा।
1

1
@__dominic: जैसा कि डेडएमजी ने बताया है, प्रभाव रूपरेखा को हटाया नहीं गया था, इसे कोड फाइलों के एक स्टैंडअलोन सेट में फैक्टर किया गया था, जिसे आप स्वयं संकलित कर सकते हैं - यह कथित तौर पर डी 3 डी कोर की तुलना में अधिक द्रवित रूप से अनुमति देने के लिए किया गया था, और तैनाती के मुद्दों में आसानी (विशेष रूप से डी 3 डीएक्स के आसपास)।

1
मुझे लगता है कि XP ​​के 25% उपयोगकर्ताओं को काटने से भी बदतर यह है कि केवल 17% में DX11 GPU है (अब तक)।
डीएम

2
@ डीडीएमएन: डी 3 डी 11 डी 3 डी 9 हार्डवेयर सहित डाउनलेवल हार्डवेयर पर चल सकता है।
डेडएमजी

9

tldr: जानें D3D11।

एपीआई के आकार के मामले में 10 और 11 के बीच का अंतर बहुत छोटा है। डी 3 डी 11 आपको डी 3 डी 11 एपीआई के खिलाफ कोड लिखने के लिए डाउन-लेवलिंग का उपयोग करने की अनुमति देता है जो सभी तरह से डी 3 डी 9 क्लास हार्डवेयर पर वापस चलेगा (ध्यान दें कि आपको अभी भी विस्टा या बेहतर की आवश्यकता होगी)। तो आप नए एपीआई को सीख सकते हैं, जो मुझे लगता है कि किसी भी तरह क्लीनर और अधिक समान है।

हालांकि, यदि आपके पास विस्टा या बेहतर नहीं है, या आप अंततः अपना कोड XP पर चलाना चाहते हैं (उदाहरण के लिए अपने गेम को एक्सपी उपयोगकर्ताओं को वितरित करने के लिए), तो आपको डी 3 डी 9 का उपयोग करना होगा। XP बाजार शायद सिकुड़ रहा है, इसलिए मैं कहूंगा कि अगर आप कर सकते हैं तो 11 के लिए जाना चाहिए।


3

यदि आप पूरी तरह से 3 डी प्रोग्रामिंग के लिए नए हैं, और विशेष रूप से यदि आप COM और विंडोज प्रोग्रामिंग के लिए नए हैं, तो मैं अब डायरेक्टएक्स सीखने के खिलाफ दृढ़ता से सलाह दूंगा। मेरे अनुभव में, डायरेक्टएक्स एक अत्यंत शक्तिशाली उपकरण है, लेकिन इसमें बहुत ही कठिन सीखने की अवस्था है, जिसे आपको विंडोज प्रोग्रामिंग, 3 डी प्रोग्रामिंग और कई अन्य लोगों के सीखने की अवस्थाओं के अलावा विचार करना चाहिए। यदि आप डायरेक्टएक्स से शुरू करते हैं, तो आप बॉयलरप्लेट कोड बनाने के सभी विवरणों से अभिभूत महसूस कर सकते हैं, इसलिए मैं इसके खिलाफ सलाह देता हूं।

इसके बजाय, मैं एक सरल एपीआई की सिफारिश करूंगा जो आपको 3 डी प्रोग्रामिंग के बारे में सीखने पर अधिक ध्यान केंद्रित करने की अनुमति देता है। XNA काफी अच्छा है, और चूंकि यह DirectX के शीर्ष पर स्थित है, एक बार जब आप DirectX पर जाते हैं, तो आपके पास कुछ विचार होंगे जो डायरेक्टएक्स सीखने की अवस्था को बहुत आसान बना देंगे।

अब, यदि आपके पास 3D प्रोग्रामिंग में अनुभव है, जैसे कि OpenGL के साथ, और आप जानते हैं कि COM प्रोग्रामिंग कैसे की जाती है, तो मैं DirectX 11 की सिफारिश करूंगा। कुछ भी लेकिन नवीनतम संस्करण अप्रचलित है, और इससे मिलने वाला कोई भी अनुभव आपके लिए उपयोगी होगा समय की एक छोटी अवधि।

लेकिन तब फिर से, सच्चा अनुभव विविधता से आता है, इसलिए मैं आपको डायरेक्टएक्स और ओपनजीएल, और एक्सएनए दोनों को सीखने की सलाह दूंगा, यदि आप चाहें, और जितने चाहें उतने एपीआई भी। इस तरह, आपके पास एक सार ज्ञान होगा कि 3 डी प्रोग्रामिंग विभिन्न उपकरणों के साथ कैसे काम करता है, और आप प्रत्येक कार्य के लिए सही उपकरण का उपयोग करने में सक्षम होंगे।


2

मैं DX11 या DX10 की सलाह देता हूं। अंतर बहुत छोटा है। आप बस DX11 (hw tessalation, बेहतर gpgpu, पिक्सेल shader पर कई बनावटों के लिए आउटपुट) के साथ अधिक काम कर सकते हैं।)। DirectX 9 में एक और वास्तुकला है और फिलहाल यह थोड़ा पुराना है। यदि आप वर्तमान गेम देव उद्योग के बारे में पूछ रहे हैं: जिज्ञासु रूप से विकसित पीसी गेम के लिए DX9 मृत है।

लेकिन मेरा कहना है:
एपी के बारे में परवाह मत करो , एक बार जब आप वास्तव में समझ जाते हैं कि ग्राफिक्स कैसे काम करता है, तो नई एपीआई सीखने में अधिकतम एक महीने का समय लगेगा। यहां तक ​​कि कम समय।


3
DX9 पुराना नहीं है। अभी भी XP पर संभावित उपयोगकर्ताओं के एक टन हैं। यह किसी भी अधिक विकास में नहीं हो सकता है, और अगले कुछ वर्षों में पुराना होने जा रहा है, लेकिन अब यह नहीं है।
कम्युनिस्ट डक

1
@thecommunistduck मैं सहमत हूं, लेकिन DX9 इसे सीखने के लिए पूरी तरह से पुराना है। क्योंकि एक बार जो इसे सीखना शुरू कर देता है, वह इसे अच्छी तरह से जान लेगा ... यह पुराना हो जाएगा। और निश्चित रूप से मैंने अपने उत्तर में इसे बुरा बताया।
नोटाबिन

-5

मैंने सुना है कि जीत xp प्रणाली के साथ dx9 एकल कोर आधारित प्रणाली है। यह पुरानी तकनीक है। मैं आपको dx11 की सिफारिश करता हूं।


3
यह उत्तर कुछ भी उत्पादक नहीं जोड़ता है, और यह स्पष्ट है (और संभवतः गलत और भ्रामक) जो आप "सिंगल कोर सिस्टम" के बारे में सुझाव दे रहे हैं।

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