windows - update - الفرق بين directx و opengl




أوبنغل أو Direct3D لمشروع جديد لعبة ويندوز؟ أو أي شيء آخر؟ (14)

أنا بدأت مشروع لعبة هواية على ويندوز من شأنها أن تجعل الاستخدام الكثيف للرسوم 3D الرسومات. ومن المرجح أن تكون مكتوبة في C ++.

هل يجب استخدام برنامج أوبنغل أو Direct3D لرسوماتي الخلفية؟ لماذا ا؟

أو يجب استخدام محرك الرسومات الجاهزة مثل أوغر 3D ؟ أي واحد؟

بعض الروابط "كيفية البدء" ستكون مفيدة. (على أي من التكنولوجيا أو كليهما.)

تحرير - نعم أنا حقا يعني Direct3D، وليس ديريكتكس، وذلك بفضل graham.reeds للتوضيح

تحرير - أشار ميهاي لازار إلى أنني يمكن أيضا استخدام محرك الرسومات مثل أوغر 3D. عدل السؤال ليعكس هذا البديل.


Ogre3D كبيرة إذا كنت تريد أن تفعل عبر منصة الترميز وإذا كنت تريد أن تترك كل تقديم إلى المحرك. برنامج أوبنغل هو أيضا كبيرة ل عبر منصة الترميز، ولكنه أيضا يجعلك تفعل كل أجزاء مملة - ومع ذلك فإنه يوفر المزيد من السيطرة.

وأود تجنب ديريكتكس في حال كنت ترغب في ميناء اللعبة إلى منصات أخرى. خطة للمستقبل. ديريكتكس 10 قد توفر بعض المزايا بالمقارنة مع برنامج أوبنغل، ولكن أنا حقا لا أعتقد أنك سوف تشعر بها إلا إذا كنت التنمية المهنية. وإلا، إذا كنت مؤيدة ل ميكروسوفت، يجب عليك استخدام شنا على أي حال، حيث أن مطور الهواة لن تحتاج إلى التحكم التي توفرها ديريكتكس.

أنا الترميز مع برنامج أوبنغل لبعض الوقت الآن ومع Ogre3D لبضعة أشهر الآن وأنا لا أستطيع أن أقول أريد أي شيء آخر. حصلت مؤخرا على كتاب على ديريكتكس 7 وأعتبر أنه فوضوي. ربما تغيرت الأمور، ولكن من ما لاحظت أنا لا أجد ديريكتكس، والاستقراء Direct3D، جذابة.


أفضل شيء للقيام به هو أن تجريد أكثر من العارض الخاص بك قدر الإمكان، لجعل نقل إلى التكنولوجيا الأخرى غير مؤلم ممكن.


أنا أتفق حقا مع أولئك يقولون لك لتعلم Ogre3D. قلت أنك سوف تستخدم C ++، لذلك Ogre3D هو خيار كبير. يستخدم شنا C # وكان لديك لمعرفة الاختلافات بينه وبين C ++، وبصرف النظر عن تعلم شنا جدا. أيضا شنا ليست مفتوحة المصدر ولا عبر منصة، لذلك إذا كنت تريد أن يكون لديك معرفة أوسع حول تطوير اللعبة، أود أن أقترح التعلم الأول سدل، ثم Ogre3D.


إذا كنت ترغب في النظر في C #، فانتظر نظرة سريعة على شنا. لمشاريع هواية، على افتراض ما تريد هو في الواقع الحصول على لعبة وتشغيلها بدلا من ترقيع مع رمز أبي معقدة، لا أستطيع أن أوصي به بما فيه الكفاية بما فيه الكفاية. فمن ناضجة على نحو متزايد، موثقة جيدا، وبالمقارنة مع D3D / برنامج أوبنغل، سريعة جدا وسهلة الاستخدام. كمكافأة، مع عضوية نادي المبدعين 100 دولار / سنة، يمكنك حتى استخدامها لتطوير الألعاب ل زبوكس 360.


الشيء الذي يجب أن تفكر فيه هو قرار استقلال المنصة. هل تريد ربط اللعبة إلى ويندوز، أو ترغب في تحريرها إلى ماك أوس X أو لينكس في مرحلة ما. إذا قررت أنك تريد دعم لينوكس أوس X في المستقبل، فستحتاج إلى استخدام برنامج أوبنغل.

يبدو أن هناك الكثير من النوايا الحسنة من قبل مجتمع لينكس إذا كانت اللعبة على الأقل شبه أطلقت لينكس.


بالنسبة للحالة التي تصفها، أود أن أوصي Direct3D.

السبب الرئيسي لاستخدام Direct3D بدلا من برنامج أوبنغل هو أن البائعين بطاقة الفيديو في كثير من الأحيان القيام بعمل جيد فقط على السائقين برنامج أوبنغل لبطاقاتهم "الراقية".

بطاقات نهاية اللعبة نوع المنخفضة تميل إلى الحصول على الفقراء وعموما السائقين عربات التي تجرها الدواب، مما تسبب في مشاكل على أجهزة المستخدم النهائي الخاص بك.

إذا قابلية مهمة، فإن ذلك سيكون سببا كبيرا للنظر في أوبنغل أو أوجر بدلا من ذلك.

ولكن إذا كنت لا تخطط للميناء، ثم التركيز على Direct3D لأنه هو منصة مستقرة على نطاق واسع مع أفضل دعم السائق إهف.



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

كنت أذهب مع Direct3D لأنه حصل على دعم أفضل، أجد وثائق سهلة القراءة وهناك عينات لائقة التي تأتي مع سك. يمكنك حتى استخدام هذه العينات كقاعدة للبناء على إذا كنت ترغب في الحصول على بداية ركلة دون منحنى التعلم حاد حاد من الحصول على الأشياء إعداد.

بدأت مع برنامج أوبنغل للسجل، وبعد حوالي شهر ذهبت إلى Direct3d (الإصدار 7 في ذلك الوقت). لقد وجدت Direct3D أجبرني على أن أكون أكثر وعيا بما كنت أرغب في القيام به وكيف كنت أضع الأمور ولكنني فضلت هذا المستوى من الفهم.

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



في حين أوبنغل هو من السهل بكثير لتبدأ وكما كتب بعض الناس بالفعل - الحصول على مثلث لإظهار على الشاشة ومن هناك الانتقال إلى القوام والجسيمات وأكثر من ذلك يمكن القيام به في غضون يوم واحد.

لكنني أعتقد أن السؤال الجيد الذي يطرح نفسه هو ما هو هدفك النهائي.
إذا كانت لعبة بسيطة، لا الرسوم المتحركة والهيكل العظمي، وبسيط 3D - برنامج أوبنغل هو بالتأكيد الجواب. إذا كنت تهدف طريقة أعلى ولا تريد أن تضع الوقت في تطوير كل التكنولوجيا من الصفر (أو الذهاب الصيد للمكتبات الحرة ووضع كل ذلك معا) ثم دكس هو خيار جيد، وأود أن أذهب ل DX9c حتى يأتي DX11 بها.

إذا كنت لا تمانع في العبث مع لغات أخرى غير C ++ يجب أيضا أن نلقي نظرة على بيئة التنمية شنا - أصبح ناضجة جدا وجيدة.

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

نأمل أنها ساعدت.


للإجابة على هذا السؤال يتطلب المزيد من المعلومات عنك:

  • ما هي قدرة البرمجة الخاصة بك؟

إذا كنت عالية، وربما كنت تبدأ مع أوجر (أفضل صارم جعل محرك مفتوح المصدر، إمهو) أو محرك لعبة مفتوحة المصدر آخر، مثل Delta3D، إذا كنت تريد ميزات إضافية (الصوت والفيزياء، وما إلى ذلك) أن محرك اللعبة يجلب .

إذا كنت لا تريد أن تذهب مع محرك، وأود أن أذهب مع Direct3D، لأنه يتم تحديثها أسرع بكثير من برنامج أوبنغل. أنا لا أريد أن ندخل في جميع القضايا، ولكن تم الإعلان عن الإصدار 3.0 من برنامج أوبنغل خلال سيغراف وكان معظمهم في المجتمع بخيبة أمل جدا مع ذلك. Direct3D يضعك في وضع أفضل بكثير للاستفادة من تظليل وغيرها من الاستخدامات من خط أنابيب للبرمجة.

إذا كانت قدرة البرمجة الخاصة بك ليست عالية جدا، وكنت تفعل ذلك لتعلم البرمجة، وأود أن تبدأ مع برنامج أوبنغل، لأنه من الأسهل للتعلم وهناك المزيد من الموارد على شبكة الإنترنت (انظر http://nehe.gamedev.net ل مثال).


ليس لدي أي برنامج أوبنغل سابق، ديريكتكس أو تجربة ألعاب الفيديو ولقد جعلت لها مفتوحة المصدر سباق ألعاب الفيديو مع Ogre3d . هو إطار جيد جدا للبدء في ألعاب الفيديو: كود فعلت جيدا، والكثير من المستندات والمعلومات في صافي ودروس البداية جيدة جدا .

محرك تقديم هو ديريكتكس / أوبنغل الملحد، يمكنك اختيار في وقت لاحق لتقديم اللعبة مع برنامج أوبنغل أو ديريكتكس (التغييرات ويثوث في التعليمات البرمجية)


هل يمكن أيضا قاعدة عملك على أوغر أنها توفر التجريد أنفسهم ولديهم أدوات لطيفة حقا. وأعتقد أن هذه المشاريع التي كانت موجودة منذ أكثر من 6 سنوات. مكتبة قاعدة ليست حقا للمبتدئين منذ كنت بحاجة إلى معرفة قليلا عن تصميم البرمجيات، ولكن وجدت الكثير من الناس الذين لديهم ألعاب مكتوبة استخدامه.

سيكون أكثر أمانا وأسرع من تعلم الأشياء أثقل لأنه تم بالفعل استخلاصها. بالإضافة إلى بعد بضعة أشهر عليك أن تتحدث المصطلحات 3D على أي حال. هناك أيضا كتاب للحصول على انك بدأت مع أوجر، وأعتقد أنه من نوع القديمة منذ الآن ولكن نقطة انطلاق على أي حال.


يجب أن نتذكر أن ديريكتكس هو عبارة عن مجموعة من التقنيات - الإدخال والصوت والرسومات. ومع ذلك بالنسبة لمعظم الناس دكس هو مرادف للعارض.

في رأيي D3D (أو ديريكترافيكس) لم يكن حقا أن الصعب منذ DX8. لم أحاول DX9 أو DX10.

برنارد هو الحق - في محاولة لتجريد قدر الإمكان. محاولة للحفاظ على دكس أو أوغل يدعو خارج فصول الكائن الخاص بك.







directx