2014-10-24 9 views
12

से डायरेक्टएक्स मैं सी # में डायरेक्टएक्स का उपयोग करने के लिए विभिन्न विकल्पों में देख रहा हूं; आदर्श रूप से मैं माइक्रोसॉफ्ट द्वारा जो भी तकनीक पसंद करता हूं उसका उपयोग करना चाहता हूं।सी #

गैर माइक्रोसॉफ्ट टेक्नोलॉजीज:

माइक्रोसॉफ्ट टेक्नोलॉजीज:

प्रौद्योगिकी मैं उपयोग करना चाहते हैं के पीछे तर्क:

  • मैं एक कोड की पहली रूपरेखा चाहते हैं (के रूप में में XAML लेखन करने का विरोध किया डब्ल्यूपीएफ)
  • मैं चाहता हूं (आदर्श) एक माइक्रोसॉफ्ट समर्थित फ्रेमवर्क जिसे
  • से वंचित नहीं किया गया है, मैं उन अनुप्रयोगों को बनाना चाहता हूं जो तृतीय पक्ष निर्भरताओं पर अधिक भरोसा नहीं करते हैं (यानी।

    • माइक्रोसॉफ्ट के पसंदीदा विधि क्या है: यदि मैं WPF के साथ एक आवेदन पत्र का निर्माण करना था, ढांचे की संभावना पहले से ही उन मशीन पर नेट रूपरेखा का हिस्सा)

    प्रश्न के रूप में स्थापित किया जाएगा डायरेक्टएक्स एक्सपेन्टेड एप्लिकेशन लिखने के लिए (डब्ल्यूपीएफ से अलग)?

  • बहिष्कृत प्रौद्योगिकियों (एमडीएक्स, एक्सएनए) का उपयोग करने में क्या खतरे हैं?
  • सबसे लोकप्रिय गैर-माइक्रोसॉफ्ट डायरेक्टएक्स तकनीक क्या है जिसका उपयोग सी # से किया जा सकता है?
+2

SlimDX GitHub के अनुसार साल में छुआ नहीं किया गया है। SharpDX सक्रिय रूप से बनाए रखा लगता है। शार्पडीएक्स में एक डी 2 डी रैपर भी है। – thumbmunkeys

+1

@thumbmunkeys, दुर्भाग्य से न तो माइक्रोसॉफ्ट प्रौद्योगिकियों – series0ne

+1

:-(हाँ, तो यह करीब रहता है, लेकिन मुझे नहीं लगता कि वहाँ एक "पसंदीदा माइक्रोसॉफ्ट विधि" है, यह वास्तव में आपके उपयोग के मामले पर निर्भर करता है। SharpDX एक बड़े पैमाने पर स्वत: जनरेट की DirectX आवरण है । मूल एपीआई (महान है, क्योंकि मौजूदा सी ++ DirectX प्रलेखन लागू होता है) यह भी DirectX 12 का समर्थन करने के उन्नत किया जाएगा लगता है: http://sharpdx.org/news/sharpdx-next मैं इसे इस्तेमाल किया है और अत्यधिक यह सलाह देते हैं। । – thumbmunkeys

उत्तर

8

डायरेक्टएक्स तकनीक आधुनिक विंडोज प्रेजेंटेशन और गेम ग्राफिक्स के लिए केंद्रीय है, इसलिए इसमें कई अलग-अलग रास्ते हैं। आपका प्रश्न वास्तव में यह नहीं बताता कि आप किस प्रकार का एप्लिकेशन बना रहे हैं या आप किस प्लेटफ़ॉर्म को लक्षित करने का प्रयास कर रहे हैं।

प्रबंधित डायरेक्टएक्स 1.1 इस बिंदु पर समस्याओं की एक लंबी सूची है: यह .NET 4.x का समर्थन नहीं करता है जिसका अर्थ है वीएस 2010 या बाद में सी # परियोजनाएं इसका उपयोग नहीं कर सकती हैं। यह विरासत डी 3 डीएक्स 9 और विरासत डायरेक्टसेटअप परिनियोजन का उपयोग करता है। यह 64-बिट देशी ऐप्स का समर्थन नहीं करता है। यह केवल Direct3D 9 का समर्थन करता है और डायरेक्ट 3 डी 10.x या 11.x नहीं। यह डायरेक्टप्ले और डायरेक्टसाउंड जैसे विरासत सामानों का एक गुच्छा दिखाता है। इसे ~ 2006 से अपडेट नहीं किया गया है और इसके लिए नमूने ढूंढना एक चुनौती है। यह विंडोज स्टोर ऐप, विंडोज फोन, एक्सबॉक्स 360, या एक्सबॉक्स वन का समर्थन नहीं करता है।

SlimDX किसी ऐसे व्यक्ति के लिए एक अच्छा विकल्प है जिसके पास मौजूदा प्रबंधित डायरेक्टएक्स 1.1 एप्लिकेशन है जो कुछ बेहतर समर्थन करने के लिए आगे बढ़ना चाहता है। यह x64 देशी ऐप्स और .NET 4.0 के साथ संगत है।परियोजना वास्तव में प्रगति के मामले में रुक गई है, लेकिन यह खुला स्रोत है ताकि आप हमेशा इसके साथ काम कर सकें।

एक्सएनए गेम स्टूडियो 4 .NET 4.0 का समर्थन करता है और Xbox 360, विंडोज फोन 7, विंडोज फोन 8 (एपकोम्पेट में) और विंडोज 32-बिट ऐप्स को लक्षित कर सकता है। यह x64 मूल ऐप्स का समर्थन नहीं करता है, और सामग्री पाइपलाइन केवल वीएस 2010 के साथ संगत है। यह विरासत डी 3 डीएक्स 9 का उपयोग करती है, इसलिए यह बहिष्कृत डायरेक्टसेटअप परिनियोजन पर निर्भर करती है। यह डायरेक्ट 3 डी 9 का खुलासा करता है और Direcxt3D 10.x या 11.x नहीं। यह विंडोज स्टोर ऐप या एक्सबॉक्स वन का समर्थन नहीं करता है। यह खेल लिखने के लिए विशिष्ट है।

विंडोज प्रेजेंटेशन फाउंडेशन में डायरेक्ट 3 डी 9/डायरेक्ट 3 डी 9ईएक्स इंटरऑप है, लेकिन डायरेक्ट 3 डी 10.x या डायरेक्ट 3 डी 11.x नहीं है। यह Win32 डेस्कटॉप ऐप्स के लिए एक उपयोगी तकनीक है, लेकिन विंडोज स्टोर ऐप्स, विंडोज फोन या एक्सबॉक्स वन के लिए समर्थित नहीं है। MSDN देखें। यह विशेष रूप से गेम बनाने के लिए उपयुक्त नहीं है, लेकिन कई गेम डेवलपर्स ने इसे अपने टूल्स पाइपलाइन के लिए उपयोग किया है। डायरेक्टएक्स 10.x/11.x समर्थन की कमी चुनौतीपूर्ण है, लेकिन आप इसे Direct3D9Ex के साथ DXGI Shared Surfaces के साथ काम कर सकते हैं।

SharpDX आधुनिक डायरेक्टएक्स एपीआई के सी # मैपिंग के लिए एक लोकप्रिय विकल्प है। यह विंडोज स्टोर और विंडोज फोन ऐप का भी समर्थन करता है, और यह एक सक्रिय परियोजना है।

बीटीडब्लू, यदि आप सी # से डायरेक्ट 2 डी का उपयोग करने के लिए सीधा तरीका ढूंढ रहे हैं तो आप Win2D पर देख सकते हैं।

देखें DirectX and .NET