الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Opengl أو Directx (محتار)

بدأه crazy Programm2007er في 29 أغسطس 2009 · 10 رد · 2,592 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :lol:

إلى كل من يشعر بالحيرة حول أي مكتبة رسوميات سيقوم بتعلمها, إليه معاناتي التي و الحمد لله انتهت منذ أن تعلمت OpenGL

أن متأكد أن هناك أناس متعصبين إلى الـDirectX وكنت أنا أحدهم :wink: ولكن بعد ما عرفت أشياء عن OpenGL تيقنت أنها المكتبة المناسبة لي.

سأقول لكم لماذا OpenGL

عندما بدأت حياتي في عالم الرسوميات الثلاثية الأبعاد تعلمت محركات مثل:Irrlicht ثم إنتقلت إلى XNA ثم إلى DirectX(أصبح سهل التعلم) ثم بدأت أتوسع إلى أن تعلمت بعض

المحركات

الفيزيائية:Newton ثم PhysX ولكن كانت تواجهني مشكلة قلة الدروس وأنها تستخدم الـOpenGL وكان على أن أبذل جهد مضاعف لكي أستطيع تحويل كود OpenGL إلى :S :wacko:

DirectX

وخاصة المصفوفات :angry: , ثم قلت في قرارة نفسي لما أتعلم DirectX و هناك مكتبات قوية جدا مثل الـOpenGL حيث تستخدمها(على حد علمي) محطات ألعاب ضخمة مثل

Playstation :happy: من شركة Sony حيث إن الرسوميات فيه تستخدم تقنيات متقدمة في الرسم والدليل على هذا رأيت بعض المشاهد على الإصدار الثالث منه عند أحد أصدقائي لبعض الألعاب

المشهورة

وإلى بالرسوم القريبة جدا للواقع!, بصراحة لم أستطع أن أبعد عيني عن شاشة التلفاز لفترة من الزمن ثم قلت:(ما هذه الرسوم!!! :blink: ) في قمة الدقة في الرسوم حتى بعض الألعاب من كثرة

الدقة تستطيع أن ترى مسام الجلد ثم فكرت مرة أخرى قلت:(لا يوجد فرق كبير بين المكتبتين OpenGL و DirectX :blush: ) حيث هناك OpenGL 3 و DirectX 10 الرسوم

متاشبهه جدا ثم فكرت مرة أخرى(يبدو أنني أكثرت من هذه الكلمة :P ) وقلت:هناك مشاكل تحلها الـOpenGL مثل:

1.تعمل على أي نظام تشغيل(Mac,Windows,Simbian,iphone,Linux)

2.أغلب المحركات الفيزيائية تستخدمها(لا تحتاج تحويل فقط تعلم وأنت مرتاح البال) خاصة الـCloth في المحرك الفيزيائي PhysX

3.في الغالب توجد دروس كثيرة جدا لها مثل موقع(nehe لا أتذكر عنوان الموقع للأسف)

:S أرجو ألا أغضبت محبي الـDirectX وأرجو أن قدم موضوعي المتواضع الفائدة

ملاحظة:عندما إنتقلت من DirectX إلى OpenGL لم أواجه صعوبات كثيرة تقريبا نفس طريقة الإٍستخدام لا توجد فروق كثيرة

#2

لا اعرف لما لا ارتاح مع الـ opengl

لدي صديق بس علشان يصنع مربع ثلاثي الابعاد تطلب ذلك تقريبا 500 سطر

اعتقد انه كثير على صنع مربع فقط

#3

رغم انى من محبى openGL و راى انها الافضل

لكنى لا استطيع ان اقول ان مقارنتك علمية . خاصة امور الدقة . فتلك الامور تعتمد على نظام LOD(level of details) وعلى دقة التشغيل (امور تخص محرك الالعاب وليست المكتبة غالبا)

رغم انى لست موهلا للنصيحة ولكنى اعتقد ان زمن المعاناة مع opengl مباشرة فى كل الاوقات خيار غير رابح .

البلندر مثلا مبرمج بالاوبن جى ال ولكن عند استخدامة يتيح لك استعمال الموديلو الخاصة بة (المبرمجة بالسى والسى++ و الاوبن جى ال) عند طريق نداهات سهلة بالبايثون (python binding to program modules ) ويوفرون لك ايضاء استخدام بايثون مع اوبن جى BGL module ويمكنك ايضاء انشاء الموديلز بالسى/++ والاوبن جى ال (اذا كنت محتك مع تطوير البرنامج) وصنع منفذ لاستخدامة بالبايثون .

مارايك فى شعار "اسكربتنج دائما واوبن جى ال وسى عندما احتاج " ؟

name : mohamedyosry

#4

أشكركم على الردود

ولكن أنا لا أكتب مقارنة عملية

بل أكتب رأيي في الموضوع ولكن موصفات الـOPenGL التي كتبتها تناسبني كثيرا ألا توافقوني الرأي

أنا متأكد من قام بالتعامل مع المحركات الفيزيائية على الدايركت إكس أكثر علما بالمعاناة (المصفوفات مثلا).

بالنسبة للأخ الذي يقول ::500 سطر لأرسم مربع ,هذا كلام غير دقيق لرسم مربع نفس الطريقة في الدايركت إكس تقوم بصناعة الأوجه إلخ......

قد تكون أقل من 10 أسطر

#5

اخي العزيز ، لما الحيره ؟

الاثنين لهما نفس المهمة و هي استخدام معالج كارت الشاشة للرسم و كمبرمج لطبقات عليا لا عليك من فهم الافضل في تحقيق ذلك !

هناك فرق جوهري و هي ان OpenGL متعدد المنصات.

و النقطه هي في كيفيه الاستخدام لانتاج شىء مفيد ، مازلت في هذا الموضوع لحوالي 9 سنين ولا ار اي انتاج حتي لو بSDL !

الاثنين يجعلوك برسم نقطه ثم خط ، ثم مثلث ( مضلع ) ثم مجسم ، هذا ليس نهاية المطاف ..فهناك اشياء يجب الاهتمام بها اكثر مثل خوارزميات التسريع في الرندر و تقسيم العوالم spatial algorithms ..إلخ

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#6
crazy Programm2007er كتب:
بالنسبة للأخ الذي يقول ::500 سطر لأرسم مربع ,هذا كلام غير دقيق لرسم مربع نفس الطريقة في الدايركت إكس تقوم بصناعة الأوجه إلخ......

قد تكون أقل من 10 أسطر

السلام عليكم اخي :)

احب بس اتكلم عن هذه النقطة

فأنت واضح انك دارست للدايركت اكس ففي الاصدار رقم 7 في الدايركت اكس كان لأظهار اول مثلث لك يجب ان تكتب 600 سطر و هذا الكلام ليس من عندي فهو مذكور في مثال في المنتدي المشهور Gamedev

و هو في المثالات المثبتة من هنا :

http://www.gamedev.net/reference/articles/article1775.asp

ثم تطور و الان لأظهار اول مثلث سيكون في 200 سطر تقريبا

و لكن الاوبن جى ال ليس هناك جهة وراءه فهو لا يتطور حاليا...

لذلك لأظهار اول شاشة فارغة في الاوبن جى ال تحتاج تقريبا ال400 سطر

و هذا في الدروس المشهورة

nehe

و هذا هو الدرس الاول للتأكد

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01

كنت حابب بس اقولك عشان لا يحصل مشاكل في المعلومات

و بالتوفيق للجميع :)

تم تعديل هذه المشاركة بواسطة General Of World في 30 أغسطس 2009 في 04:07

#7
اقتباس
فأنت واضح انك دارست للدايركت اكس ففي الاصدار رقم 7 في الدايركت اكس كان لأظهار اول مثلث لك يجب ان تكتب 600 سطر

أنا لا أتكلم عن الإصدارات القديمة من دايركت إكس أنا تعلمت وأتقنت أساسيات الدايركت إكس الإصدار التاسع منه ولم أتعامل مع الإصدارات السابقة منه لذا أنا أتكلم فقط عن الإصدارات 9 فما فوق

, حتى أنني أتذكر أن هناك دالة جاهزة لرسم مربع

اقتباس
لأظهار اول شاشة فارغة في الاوبن جى ال تحتاج تقريبا ال400 سطر

هذا كلام صحيح إذا كنت تستخدم WIN API ولكن إذا استخدمت مكتبة GLUT ستكون هناك بضعة أسطر

سؤال للجميع:هل هناك أحد تعامل مع المحركات الفيزيائية على الدايركت إكس؟؟

أرجو الإجابة عليه

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 30 أغسطس 2009 في 16:29

#8
General Of World كتب:
السلام عليكم اخي :)

احب بس اتكلم عن هذه النقطة

فأنت واضح انك دارست للدايركت اكس ففي الاصدار رقم 7 في الدايركت اكس كان لأظهار اول مثلث لك يجب ان تكتب 600 سطر و هذا الكلام ليس من عندي فهو مذكور في مثال في المنتدي المشهور Gamedev

و هو في المثالات المثبتة من هنا :

http://www.gamedev.net/reference/articles/article1775.asp

ثم تطور و الان لأظهار اول مثلث سيكون في 200 سطر تقريبا

و لكن الاوبن جى ال ليس هناك جهة وراءه فهو لا يتطور حاليا...

لذلك لأظهار اول شاشة فارغة في الاوبن جى ال تحتاج تقريبا ال400 سطر

و هذا في الدروس المشهورة

nehe

و هذا هو الدرس الاول للتأكد

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01

كنت حابب بس اقولك عشان لا يحصل مشاكل في المعلومات

و بالتوفيق للجميع :)

اذا كنت تريد عد الاسطر فهذا برنامج في OpenGL لرسم مكعب :

#include<windows.h>
#include <GL/glut.h>
void renderScene(void) {
	glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
			   glLoadIdentity();
		glutSolidCube(1);
	glutSwapBuffers();
}
void main(int argc, char **argv) {
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
	glutInitWindowPosition(100,100);
	glutInitWindowSize(320,320);
	glutCreateWindow(" ");
	glutDisplayFunc(renderScene);
	glutMainLoop();
}

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

عموما .. OpenGL و Direct3D توصلانك لنفس الهدف .. OpenGL أسهل وأكثر مقروئية .. و Direct3d تسهل حياة مبرمج الالعاب في بعض الجوانب .

ولانزيد على ماقال الاخ احمد صالح .. المهم التطبيق بأي مكتبة كانت

تم تعديل هذه المشاركة بواسطة الشمري في 31 أغسطس 2009 في 07:59

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#9

وعليكم السلام

اذا رايت بان حيرتك زادت عن حدها تعلم محرك العاب معين ودعك من "وجعت الراس" هذه.

مجرد اقتراح وانا مستعد ان اتنازل عنه....

If Games Are Fun.....So Making Games Making Fun

#10
اقتباس
وعليكم السلام

اذا رايت بان حيرتك زادت عن حدها تعلم محرك العاب معين ودعك من "وجعت الراس" هذه.

كنت أعتقد أنه الحل المناسب (تعلم محرك ألعاب) ولكن المشكلة أن محرك الألعاب يدعم شيء ولا يدعم شيء أخر وفي النهاية محركات الألعاب غالبا تستخدم OpenGL أو DirectX

عندما تعلمت الديركت إكس إرتحت كثيرا من أشياء المحركات الجاهزة ولكن تركت الدايركت إكس بسبب مشاكلة المتعبة مع المحركات الفيزيائية

الأن أن أتعلم OpenGL أستطيع إنشاء أشياء أساسية ومازلت أتعلم بالنسبة للمحرك الفيزيائية Physx أتقنت الـ(Rigid body,Joints,Cloths) ومازلت أتعلم

شكرا على الردود والتفاعل مع الموضوع

#11

بكل بساطة

اذا كنت تستخدم ويندوز ف Directx هي المطلوبة أما اذا كنت تستهدف تعدد المنصات ف OpenGl هي خيارك

مواضيع مشابهة