بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله ...
ما الفروق بين OpenGL و DirectX ... وما أفضلهم ؟؟
وجزاكم الله خيرا
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله ...
ما الفروق بين OpenGL و DirectX ... وما أفضلهم ؟؟
وجزاكم الله خيرا
اقتباسIf A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut
Albert Einstein
كل له مميزاته و عيوبه
أنا في الحقيقة أفضل opengl لأنني عندما كنت أتعلم directx واجهت الكثير من المشاكل فيه
أما opengl وجدته أبسط و أسهل
لذلك أفضله على الآخر
أما directx فمعقد جداً و يدخلك في متاهات المكتبات و غير ذلك على عكس opengl في بساطته
و في النهاية النتيجة كلها واحدة ... هذا يخرج جرافكس و هذا يخرج جرافكس .. لا فرق
بل هناك من الألعاب ذات الجودة العالية جداً مثل Call of Duty و مبرمجة بopengl ... هل أحد يستطيع أن يقول أن شكلها سئ ؟؟؟
أنا نسيت معظم الأشياء في directx لذلك لن أفتيك في الموضوع
و منتظر احد الأعضاء يخبرنا بالفرق
تم تعديل هذه المشاركة بواسطة omar_cplusplus في 9 يوليو 2007 في 20:03
السلام عليكم, :)
DirectX بشكل عام يتألف من عدد من الواجهات مثل Direct3D و DirectInput, DirectSound إلخ كل منها تقوم بعمل منفصل, حيث إن الـ DirectX9 مثلاً يستطيع رسم المشاهد ثلاثية الأبعاد عبر Direct3D9, تشغيل الصوت الثلاثي الأبعاد أو الثنائي الابعاد عبر 8DirectSound, قراءة الإدخال من وسائط الإدخال المختلفة عبر DirectInput8 ,كذلك هنالك واجهة كاملة للتطبيقات التي تستخدم الشبكة عبر DirectPlay8 وهنالك أيضاً DirectMusic8 والتي تتيح إنشاء أنظمة صوتية معقدة...
ليست هذه الواجهات تستخدم للألعاب فقط, ولكن لأي تطبيق وسائط متعددة, عدا DirectMusic فقدراته غير مستخدمة في الألعاب وإنما في برامج تأليف/تنقيح الموسيقى أو الصوت في أكثر الأحيان.
كما تلاحظ أن بعض هذه الواجهات تابع للنسخة السابقة من DirectX8 لأنها ببساطة لم يتم تطويرها في 9.
DirectX مكتبة معقده, متكاملة وهائلة القدرات والحجم. وتستخدم واجهة موحده تعرف بإسم COM أو (Component Object Model) يعتبر العمل معها معقد نوعاً ما.
كذلك الـ DirectX يعمل على الوندوز فقط.
أما OpenGL هي مكتبة مختصة في رسم المشاهد الثلاثية الأبعاد حصراً, أي إنها مكافئه تقريباً للـ Direct3D9, ولكنها تستخدم واجهة مختلفة تماماً, أبسط بكثير من واجهة DirectX ولكنها مع ذلك تقدم إمكانات ومرونة مشابهة لإمكانات ومرونه Direct3D ويمكن مرونه أكثر.
واجهة الـ OpenGL مكتوبة بإستخدام لغة C وهي في ملف رأسي ومكتبة واحدة (أو أكثر حسب الإستخدام), ويعود ذلك في الأساس إلى إنها مصممة لتعمل على جميع أنواع أنظمة التشغيل والعتاد وليس فقط الوندوز PC.
ولكن قامت مايكروسوفت ومنذ سنين بتجاهل تطور الـ OpenGL عبر نظام الوندوز (يقول الكثير إن لهم الحق في ذلك! لأنهم ليسو مجبرين لبذل جهد لدعم OpenGL إذا كان لديهم بديل تطوره الشركة) مما أجبر شركات بطاقات الشاشة لكتابة سواقات ومحركات OpenGL الخاصة بهم, مما أدى في فترة ما إلى بعض المشاكل حيث كانت بعض قدرات الـ OpenGL أصبحت مختلفة لكل شركة (خاصة الـ shaders). ولكن حالياً هنالك جهود لتوحيد معايير OpenGL.
أما بقية الإمكانات المطلوبة مثل تشغيل الصوت, الإدخال أو حتى الحسابات الرياضية (والتي تقدمها Direct3D9 عبر مكتبة Direct3DX) فيجب على المبرمج الذي يستخدم OpenGL كتابة أو إستخدام مكتباته الخاصة, وليس هنالك أي مشكلة من دمج إمكانات DirectX مع OpenGL.
كذلك هنالك مجموعة مكتبات تتبع نموذج OpenGL مثل OpenAL المختصة في الصوت.
من الناحية البرمجية, ليس هنالك فرق كبير بين OpenGL و Direct3D, حيث الإثنان يستخدمان نفس الأساسات والمعادلات الرياضية والتقنيات الرسومية عدا بعض الفروقات الشفافة, لذلك فليس من الغريب إنشاء واجهة واحده تجمع بين الإثنين من دون أي خسائر تذكر في القدرات أو الأداء, وهذا ما تقوم به أغلب محركات الرسوميات.
في النهاية فإن كل هذه أدوات, ليس بينها الأفضل والأسوأ, ولكن ما تصنع بإستخدامها هو الشئ المهم.
أتمنى إني لم أطل عليكم :) ولكني بطبيعتي أتكلم كثيراً وأعتذر لذلك.
إذا كانت هنالك أي إستفسارات أخرى فأنا حاضر للمساعدة
تم تعديل هذه المشاركة بواسطة SandHawk في 10 يوليو 2007 في 01:42
اقتباسإذا كانت هنالك أي إستفسارات أخرى فأنا حاضر للمساعدة
هل تعرف روابط لمراجع لopengl و شرح دواله ؟؟
ليس كتب تعليمية إنما مراجع أشبه بالقواميس مثلاً
هنالك الكتابان, الكتاب الأزرق والكتاب الأحمر, الإثنان يمثلان المرجع الأساس للـ OpenGL, والإثنان مجانيان طبعاُ.
الكتاب الأحمر هو دليل مفصل للعمل مع OpenGL
والكتاب الأزرق هو المرجع الأساس لدوال OpenGL
الإثنان موجودان بصيغة HTML ولكن انا متأكد انك تستطيع الحصول عليهما بنمط pdf أو حتى chm
(انا شخصياً لدي الكتاب الأحمر pdf حجمه 7.83 MB)
كما إن هنالك مرجع للدوال مرفق مع الـ Microsoft Platform SDK بصيغة chm وقد رفعته لك, تجده هنا بحجم 600 كيلوبايت.
اقتباسأتمنى إني لم أطل عليكم ولكني بطبيعتي أتكلم كثيراً وأعتذر لذلك.
أطلت عليا ؟!!!!!!!!
جزاك الله خيرا ,, شكرا لانك شرحتلي هذه النقطة
اقتباسIf A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut
Albert Einstein
بالنسبة لأوبن جي ال، هناك هيئة تتألف من الشركات المصنعة والمطورة للأجهزة والبرامج تتولى عملية تطويره، والهدف من ذلك هو توحيد العمليات وزيادة الفاعلية بالنسبة للمبرمجين، ولهذا ستجد أنه في بداية تعلمك له سيكون الوضع أسهل بكثير من تعلمك للدايركت، ولكن عندما تصل فيه للأمور الحساسة ستبدأ الفوضى، وذلك لأن أي شركة (مثلا ATI أو NVIDIA) تضع تطويرا خاصا بها ولن تقوم بنشر أسرار هذا التطوير وإتاحته للمنافسين نظرا للمبالغ التي رصدتها لهذا التطوير، فتقوم بإنشاء أكواد خاصة ببطاقات عرضها ولا تتم الاستفادة من هذه الأكواد اذا استخدمت على بطاقات أخرى، تسمى هذه الأكواد بـ "التوسعات Extensions" ولك أن تتخيل على سبيل المثال ميزة ما وهي أن بطاقات العرض يمكن لها أن تضغط الصور لتحسين الأداء، ولكن الكود الخاص بهذه الميزة من أجل بطاقات NVIDIA سيختلف عنها من أجل ATI مثلا (طبعا هذا مثال) وبالتالي، لتحصل على برنامج يستفيد من كامل إمكانات OpenGL ومتوافق مع معظم الأجهزة، ستجد نفسك تكتب نفس الروتينات من أجل كل موديل للبطاقات!! أي أن فكرة ال OpenGL بالتوحيد قد ضربت في الصميم.
أيضا، لاحظت وبشكل مزعج أن معظم بطاقات العرض لا تأتي مجهزة بأحدث تعريفات ال OpenGL بل قد تمر سنة أو أكثر لكي تتحنن الشركة وتنشر التطوير الذي فات على عمره المناسب أكثر من سنة.
هذه هي أهم مساوئ ال OpenGL
بالنسبة لمحاسنه، الشركة الأم لل OpenGL هي Silicon Graphics وهذا يجعلك على ثقة بأن بطاقات العرض عالية الجودة والاحترافية هي بالتأكيد تدعم مئة بالمئة ال OpenGL وبدون مشاكل.. طبعا لا تتوفر هذه البطاقات للمستخدم العادي بسبب كلفتها.
بالنسبة للدايركت، في بداية تعلمه ستشعر بنفسك قد تركت عالم البرمجة ودخلت في عالم فك الطلسمات.. ولكن بالصبر تزول الشدائد، وستظهر لك ميزة هامة، هي أنه مهما اختلفت أنواع بطاقات العرض فإن الدايركت سيبذل جهده ليخفي الاختلافات عنك، وبالتالي وإن تفاوت الأداء من بطاقة لأخرى، ستضمن أن برنامجك سيعمل على شريحة واسعة جدا من الأجهزة.
سيئة أخرى فيه هي أنه يدعم فقط الويندوز.
هذا الموضوع مغلق.