برنامج OpenGL لا يزال أفضل من Direct3D غير الألعاب ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/124851

  •  02-07-2019
  •  | 
  •  

سؤال

النموذج القياسي أن OpenGL هي التطبيقات المهنية (CAD) و Direct3D هو الألعاب.

مع كارثة من برنامج openGL 3.0 هو برنامج openGl لا يزال الخيار الطبيعي من أجل تقنية 3D تطبيقات (cad/GIS)?
هل هناك scenegraph المكتبات Direct3D?

(طبعا Direct3D هو ويندوز فقط.)

هل كانت مفيدة؟

المحلول

D3D يجعلك تدفع مايكروسوفت "استراتيجية الضرائب." هذا هو D3D يخدم سيدين.واحد يعطيك الميزات والأداء.الآخر هو التأكد من قفل في الأخرى MS المنتجات و منصة ويندوز عموما.هذه بعض العواقب بالنسبة لك:

  1. D3D التطبيق لا يعمل إلا على ويندوز (بما في ذلك أجهزة إكس بوكس).ربما كنت لا أعتقد أن هذا هو المهم الآن.ولكن إذا, الطريق, كنت تريد أن تعمل على ماك, لينكس, PS3, المستقبل لوحات المفاتيح وغيرها ، قد تكون سعيدة اخترت منصة خيار مستقل.

  2. MS يمكن أن تجعل بعض القرارات التعسفية.سوف الإصدار التالي من D3D تعمل فقط على نظام التشغيل الذي يتطلب من الأجهزة الجديدة ، مكلفة, و الكثير من الناس لا يرغبون في الترقية ؟ ما جعل بعض الدول الأخرى في المستقبل قرار لا توافق عليه ؟

  3. تاريخيا ، OpenGL أدى D3D سريعة في التعرض من جديد الأب الميزات.وهذا لأن هناك آلية في معيار البائعين لإضافة ملحقات خاصة بهم ، تلك امتداد في نهاية المطاف إلى أن تكون مطوية في الرئيسية المواصفات.D3D هو ما MS يريد أن يكون مع مدخلات من الباعة للتأكد ، ولكن MS يحصل النقض.هل يمكن أن يكون بسهولة في حالة مثل مع ويندوز فيستا ، حيث MS قررت عدم تعريض الجديد الأب الميزات القديمة DX فقط تجعل جديدة DX متوفرة على ويندوز فيستا.هذا الصداع لمطوري اللعبة.

الآن, هذا هو نكهة من الأسباب "الفنية التطبيق" (CAD, الرسوم المتحركة, التصور العلمي ، نظم المعلومات الجغرافية ، إلخ.) يفضل OGL -- تطبيقات مثل هذا تريد أن تكون مستقرة لسنوات عديدة ، ضرورة الصيانة المستمرة وتحسين تريد أن تعمل على العديد من المنصات.هذا هو على النقيض من الألعاب التي كثيرا جدا فقط على منصة واحدة ، سيتم الافراج عنهم ولكن عموما لا "الحفاظ" (هناك على الأرجح لن تكون 2.0, تحديث نظام تشغيل آخر ثلاث سنوات ومن ثم لا تحتاج إلى دعم كبار السن الأب ، إلخ.).الألعاب التي تريد أقصى قدر من الأداء و تحتاج فقط إلى العمل لفترة قصيرة نافذة على عدد ثابت من المنصات.إذا كانوا بحاجة إلى الهدف ويندوز على أي حال و D3D هو أسرع قليلا ، التي قد يكون الخيار الصحيح منذ السلبية D3D العواقب لن يضر بها مثل أن CAD التطبيق ، أقول.

نصائح أخرى

مثل دائما, هذا يعتمد على الوضع الخاص بك.

في تجربتي, حاليا (2008) OpenGL سائق الجودة على ويندوز كثيرا أسوأ من Direct3D سائق الجودة.إذا كان الوضع الخاص بك هو من النوع الذي لا يمكن بشكل معقول الطلب للعملاء الخاص بك دائما ما يصل إلى تاريخ السائقين ، أو قل تغيير بطاقات الرسومات إلى تلك التي لديها أفضل برنامج OpenGL السائقين ، ثم OpenGL هي سيئة جدا في الاختيار.في هذه الحالة اذهب D3D العارض على النوافذ و OpenGL العارض على OS X/Linux (إذا كان لديك لدعم تلك البرامج ، وهذا هو).

وجود اثنين من عارضين ليس أن الثابت ؛ في تجربتي في العمل حول سائق البق يأخذ كثيرا المزيد من الوقت من الكتابة ودعم تقديم مسارات التعليمات البرمجية.

بالطبع هناك بعض (محددة) الحالات التي D3D فقط ليس لديها الميزات المطلوبة ، على سبيل المثالرباعية مخزنة genlocked الإخراج ؛ أو الهندسة تظليل الدعم على ويندوز XP.

لذلك باختصار:إذا كنت تريد أفضل السائقين على Windows استخدام D3D.إذا كنت لا تهتم حول جودة السائق كثيرا ، أو تحتاج إلى الميزات التي هي في OpenGL ولكن ليس في D3D ، ثم استخدام برنامج OpenGL.

ربما يجب أن تجرب طبقة التجريد مثل غول, مما يتيح لك التبديل بين DirectX و OpenGL دون الحاجة إلى كتابة أي شيء ؟ كما يضيف الكثير من الوظائف و ليس لعبة المنحى ، ولكن عامة جدا.

هذا لا مباشرة الإجابة على سؤالك (آسف) ولكن أنا أصلي اللاعبين العمل على Direct3D و الكالينجيون:

هل هناك scenegraph المكتبات Direct3D?

Direct3D (ني الواقع مختبر) تستخدم فقط scenegraph المكتبة :-)

العار أن Direct3D الإبقاء على الوضعية لم يتم شحنها بعد الآن...

Direct3D هو متاح فقط على ويندوز إكس بوكس.إذا كنت تخطط لاستهداف Unix أو ماك, بالإضافة إلى نظام التشغيل Windows, OpenGL هو خيار جيد.

لي الناطقة باسم الرسومات مبرمج كبير CAD الشركة ، وهناك حاليا ثلاثة أشياء التي تحتفظ OpenGL من بيينغ انخفض لصالح Direct3D (10/11) القائمة CAD/DCC التطبيقات:

  1. تراث.معظم برامج CAD هي أكثر أو أقل لا يكاد ضيق برنامج OpenGL المفاهيم.إعادة كتابة كل شيء حول D3D الفلسفة ليست دائما يمكن التحكم فيها (technicaly يتحدث واعتمادا على قدرة/رغبة شركة لرمي الموارد في ذلك).

    ثانيا قد يكون سلبي الآثار إذا كان هناك شيء يذهب على نحو خاطئ (functionnality يتحدث و/أو أداء الحكمة) و الشركة لا تأخذ من خطر تأخير إصدار رئيسي بسبب API و العمارة التبديل.

  2. الشعوب.الشعوب في تلك العجوز الصناعات هي المحافظ إلى حد ما.أنهم يفضلون إنفاق المال والوقت على التعامل مع IHVs فيما يتعلق بجميع OpenGL سائق القضايا التي يمكن أن يكون أو ببساطة لن نوصي باستخدام الرسومات من معين IHV (مثلا ، إنتل أو ATI).

    بالإضافة إلى أنني أعتقد أن السيارات/صناعة الطيران العملاء مثل بوينغ وايرباص, TMC, بي ام دبليو, الخ لا أهتم كثيرا من وجود Quadros محطة العمل فقط.الأجهزة لا تزال رخيصة في مجال البرمجيات رخصة الأسعار.

  3. الاتجاهات المستقبلية.مع المستقبل جيل من المعالجات مثل يانو ، لارابي فيرمي والمنتجات التي متابعة, انها بالتأكيد تستحق الاستثمار R&D الميزانيات على كيفية برنامج تطوير جديد اللغات / api / أطر تلك المستقبل الاجهزه (في مدة الرسومات وكذلك عدم الرسومات المهام).

    CAD صناعة ضخمة دورات و لا تتحرك إن لم يكن حقا التكنولوجيا التخريبية.حتى D3D قد فقط تأتي متأخرا بعض الشيء الكبير CAD اللاعبين (باستثناء أوتوديسك من الحال التي هي حالة خاصة).

لا إجابة على هذا النحو ولكن من المثير للاهتمام أن نلاحظ أحدث إصدارات أوتوكاد تعطيك الاختيار بين استخدام OpenGL أو Direct3D السائقين في "3dconfig" خيار الإعداد.في الأساس, أوتوكاد هو ويندوز فقط التطبيق لذا كان من المنطقي بالنسبة لهم (أخيرا) دعم Direct3D.راجع صفحة 15 من هذا المستند التقني من أوتوديسك للحصول على مزيد من المعلومات.

الجواب الجميع يريد أن يرى نعم ولكن الجواب الحقيقي هو ذلك يعتمد.

حوالي 50 ٪ من جميع الأجهزة هناك سوف يتم تشغيل OpenGL إلى أي مستوى معقول.لرؤية مثال على ذلك قراءة التعليمات Google Sketchup الذي يستخدم OpenGL

SketchUp أداء يعتمد بشكل كبير على تشغيل بطاقة الرسومات والقدرة على دعم برنامج OpenGL 1.5 أو أعلى.تاريخيا, الناس لديهم مشاكل مع ATI Radeon بطاقات إنتل القائمة على بطاقات مع سكتشب.نحن لا نوصي باستخدام هذه بطاقات الرسومات مع سكتشب في هذا الوقت.(الأجهزة الجواب من متطلبات برنامج Google Sketchup

لذا ، إذا كنت تكتب CAD التطبيق وكنت لا أمانع أن أقول الزبائن ، "يجب أن يكون لديك برنامج OpenGL complient بطاقة الفيديو" ثم الجواب هو نعم.

إذا بدلا من ذلك يمكنك إنشاء مستخدم التطبيق (Google Earth على سبيل المثال) ثم حزينة الجواب سيكون لديك لكتابة كل D3D GL نسخة من التطبيق الخاص بك إذا كنت تريد أن تصل إلى السوق بأكمله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top