OpenGL पर Direct3D को प्राथमिकता देने का कोई कारण है?


11

इसलिए मैं इसे पढ़ रहा था , मुझे इस बात का कारण मिला कि माइक्रोसॉफ्ट के विंडोज़ पर किसी भी अन्य ओएस की तुलना में बहुत अधिक गेम हैं। प्रस्तुत मुख्य मुद्दा यह था कि Open3 पर Direct3D को प्राथमिकता दी जाती है।

मुझे समझ में नहीं आ रहा है कि कोई भी डेवलपर संगतता क्यों देगा? यह कंपनी के लिए एक वित्तीय नुकसान है। मैं समझता हूं कि ओपनजीएल एक गड़बड़ है, लेकिन विशेषज्ञों के लिए शायद ही कोई मुद्दा होना चाहिए। अगर ऐसा है, तो भी मुझे लगता है कि लोगों को एक वित्तीय नुकसान उठाना पड़ेगा।

इसके अलावा, अगर मैं गलत नहीं हूं तो कई क्रॉस प्लेटफॉर्म एप्लिकेशन Direct3D और OpenGL दोनों का उपयोग करते हैं। मुझे लगता है कि वे एपीआई के बीच स्विच करते हैं।

यह अजीब है क्योंकि वे सिर्फ ओपनजीएल का उपयोग कर सकते हैं, यहां तक ​​कि डायरेक्ट 3 डी की भी परवाह क्यों है?

तो सवाल यह है कि क्या ओपनगैल के साथ कोई तकनीकी समस्या है या क्या कोई समर्थन है जिसे डायरेक्ट 3 डी प्रदान करता है जो ओपनगेल की कमी है?


मुझे पता है कि यह प्रश्न ऑफ-टॉपिक या बहुत व्यापक होने के कारण बंद हो सकता है, मैंने इसे कम करने की पूरी कोशिश की।


आप कुछ से अलग के लिए देख रहे इस ?
ट्राइकोप्लाक्स

2
BTW, मैंने कुछ साल पहले GameDev.SE पर इसी तरह के सवाल का जवाब दिया था।
नाथन रीड

1
यहाँ इतिहास का एक अच्छा पाठ है जो कि आपके प्रश्न का उत्तर देता है: programmers.stackexchange.com/questions/60544/…
darius

1
@NathanReed "तो, यह संभव है कि हम विंडोज पर OpenGL का उपयोग करते हुए मल्टी-प्लेटफ़ॉर्म डेवलपर्स की ओर स्विंग देखेंगे।" और अब, 3 साल बाद, क्या आप कहेंगे कि ऐसा हुआ है?
रोटेम

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

जवाबों:


9

इस तथ्य के बारे में कि विंडोज के लिए अधिक गेम हैं, कुछ कारण हैं

  1. विंडोज़ के पास बाज़ार का अधिकांश हिस्सा है और अतीत में क्रॉस प्लेटफॉर्म गेम्स विकसित करने के लिए यह आज की तुलना में अधिक जटिल था।
  2. DirectX के विकास के लिए बेहतर साधन हैं (जैसे डीबगिंग)
  3. बड़े नवाचारों को आम तौर पर डायरेक्टएक्स में पहली बार बनाया / कार्यान्वित किया जाता है, और फिर ओपनजीएल में लागू / लागू किया जाता है।
  4. जैसा कि विंडोज बनाम लिनक्स के लिए, आपको यह विचार करना होगा कि जब मार्केटिंग और ऐतिहासिक कारणों के कारण वास्तविक मानक होता है (इसके लिए गेम डेवलपर विंडोज को क्यों पसंद करते हैं? सॉफ़्टवेयर इंजीनियरिंग , जैसा कि मैंने टिप्पणियों में कहा है), इसकी जड़ता है ।

जड़ता की बात बहुत महत्वपूर्ण है। यदि आपकी टीम DirectX के लिए विकसित होती है, तो 90% बाजार को लक्षित करता है (अच्छी तरह से ... यदि आप पीसी पर गेम खेलते हैं तो आपके पास खिड़कियां हैं, इसलिए ... 99% बाजार में?), आप ओपनजीएल में निवेश क्यों करना चाहेंगे? यदि आप पहले से ही ओपनजीएल में विकसित होते हैं, तो फिर से बाजार के 99% को लक्षित करते हुए, जब तक आप कर सकते हैं, तब तक आप उससे चिपके रहेंगे। Id सॉफ्टवेयर द्वारा Id Tech की जांच के लिए एक उत्कृष्ट गेम इंजन (DOOM सीरीज़ को पॉवर करना) है जो OpenGL का उपयोग करता है।

आपकी चर्चा के विषय के बारे में, एक टिप्पणी।

आज तक, कई एपीआई हैं, और एक सामान्य अभ्यास गेम इंजन का उपयोग करना है जो उनके ऊपर अमूर्त है। उदाहरण के लिए, उस पर विचार करें

  • अधिकांश मोबाइल प्लेटफ़ॉर्म पर आपको OpenGl ES का उपयोग करना होगा।
  • पीसी पर आप DirectX और OpenGL दोनों का उपयोग कर सकते हैं
  • मुझे लगता है कि XBOX पर आपको DirectX का उपयोग करना होगा।
  • मुझे लगता है कि PS पर आप अपने स्वयं के एपीआई का उपयोग करते हैं।
  • पुराने हार्डवेयर के साथ आप DirectX9 या OpenGL 3, या OpenGL ES 2 का उपयोग करते हैं।
  • अधिक हाल के हार्डवेयर के साथ आप डायरेक्टएक्स 11, ओपनजीएल 4, ओपनजीएल ईएस 3 का उपयोग कर सकते हैं (और चाहते हैं)।

हाल ही में, नए कम ओवरहेड एपीआई के आगमन के साथ - व्हिच ग्राफिकल प्रोग्रामिंग के लिए एक प्रमुख मोड़ है - विंडोज और एक्सबीओएक्स के लिए डायरेक्टएक्स 12, आईओएस के लिए मेटल और विंडोज और लिनक्स के लिए वुलकान (नया ओपनजीएल) है (एंड्रॉइड और टिज़ेन सहित) )।

अभी भी गेम हैं जो केवल विंडोज और एक्सबीओएक्स को लक्षित करते हैं, लेकिन आईएमएचओ आज केवल मार्केटिंग विकल्प हो सकता है।


तो Direct3D को पसंद करने के लिए कोई प्रदर्शन कारण नहीं है?
A --- B

@ritwik sinha DirectX 11 में ओपन थ्रेड 4 की तुलना में मल्टी थ्रेडिंग रेंडरिंग के लिए बेहतर सपोर्ट है, लेकिन मेरी जानकारी के अनुसार इसमें कोई रियेल्ट परफॉर्मेंस डिफरेंस नहीं हुआ है। दूसरी तरफ, विंडोज को डायरेक्टएक्स 11 और लिनक्स के साथ ओपनजीएल 4 के साथ तुलना करते हुए, विजेता ओपनगैल के साथ लिनक्स था। डायरेक्टएक्स 12 बनाम वल्कन के बारे में, मुझे लगता है कि यह जानना बहुत जल्दी है, लेकिन मुझे नहीं पता।
दारजी

मैंने डायरेक्ट 3 डी के साथ कभी काम नहीं किया, इसलिए मुझे समझ नहीं आया कि मल्टी थ्रेडिंग से आपका क्या मतलब है। जहाँ तक मुझे पता है अलग-अलग थ्रेड अलग-अलग कार्यों के लिए प्रोग्रामर द्वारा नियंत्रित किए जाते हैं। क्या Direct3D यह हुड के तहत करता है? वैसे भी अच्छा जवाब।
एक --- बी

1
रियल टाइम ग्राफिक्स के लिए मल्टी थ्रेडिंग का एक अनुप्रयोग @ritwik sinha है कि आप बैकग्राउंड (टेक्सचर स्ट्रीमिंग, वर्टेक्स बफ़र्स) में रिसोर्स को आवंटित करने के लिए डिफरेंट थ्रेड्स का उपयोग कर सकते हैं, एक मुख्य थ्रेड को कॉल ड्रॉ करता है। यह ओपनजीएल में भी संभव है, लेकिन बहुत मुश्किल है। डायरेक्टएक्स 11 में आप कई थ्रेड्स से ड्रॉ कॉल भी कर सकते हैं, जिससे प्रदर्शन में सुधार होना चाहिए, लेकिन यह एक आम बात नहीं है। मुझे लगता है कि UnrealEngine4 की आखिरी रिलीज यह करता है। हालांकि, डायरेक्टएक्स 12 और वल्कन मल्टी थ्रेडिंग के साथ एक वास्तविक सौदा होने जा रहा है।
डेरियस

1

संभावित कारणों की एक जोड़ी:

  • ऐतिहासिक रूप से, OpenGL ड्राइवर की गुणवत्ता में बहुत अधिक विविधता है, लेकिन मुझे यकीन नहीं है कि यह मामला कोई और है।
  • Xbox D3D को सपोर्ट करता है इसलिए इसके और पीसी के बीच गेम को पोर्ट करना आसान है।
  • डी 2 डी के लिए डिबगिंग टूल ओपनजीएल की तुलना में बेहतर रहा है। सौभाग्य से अब हमारे पास रेंडरडॉक है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.