saudia girl
21-03-2007, 09:12 PM
السلام عليكم ::
إذا ممكن أسأل عن أي أحد درس بكلية علوم الحاسبات,,,,, لأن عندي مقرر كتابه:
Computer Graphics with OpenLG
وودي أعرف لو أحد مر عليه.......... لأننا ندرسه بالسعوديه وعندي عليه شوي أسئلة؟
أكون شـــــــــــااااكرة لكم..
saudia girl
saudia girl
03-04-2007, 06:36 PM
إيه دا !!!!
ليه مافيش حد بيرد ؟؟؟ دا الموضوع نازل بئاله فترة وأنا كنت حنساه ....
حتى لو مافيش حد بيعرف .... على الأقل ممكن تقولولي ألائيه فين ؟؟؟
على العموم أنا لقيته وانحلت المشكله ..........
شكراً >>>>>> بكلم نفسي؟؟؟؟
Egyptian eagle
03-04-2007, 09:07 PM
إذا ممكن أسأل عن أي أحد درس بكلية علوم الحاسبات,,,,, لأن عندي مقرر كتابه:
Computer Graphics with OpenLG
وودي أعرف لو أحد مر عليه.......... لأننا ندرسه بالسعوديه وعندي عليه شوي أسئلة؟
أكون شـــــــــــااااكرة لكم..
إيه دا !!!!
ليه مافيش حد بيرد ؟؟؟ دا الموضوع نازل بئاله فترة وأنا كنت حنساه ....
حتى لو مافيش حد بيعرف .... على الأقل ممكن تقولولي ألائيه فين ؟؟؟
على العموم أنا لقيته وانحلت المشكله ..........
شكراً >>>>>> بكلم نفسي؟؟؟؟
في البداية أهلا و سهلا ....
بالنسبة للمشكلة : متهيألي لو حد كان يعرف مش هيبخل على حضرتك .. و لوكنت اعرف كنت اجبت لكني مازلت طالبا في المدرسة و دا اللي خلاني مش أجاوب ..
الحمد لله إن حضرتك لقيتيه .. و تأكدي لو حد كان يعرف كان جاوبك
شكرا لحضرتك يا فندم....
بالتوفيق ,,
saudia girl
04-04-2007, 05:32 AM
Egyptian eagle ::
شكرا لتواجدك وتعاونك .. .. وحرصك على تقديم الفائدة .. .. ولكن اعتقدت أن هناك طلبة وطالبات في الجامعة ..... وأحببت أن أعرف !!
شكرا لك مجدداً
Sanzio
07-05-2007, 05:29 PM
السلام عليكم ورحمة الله وبركاته
آسف للتأخير اختي ..
لمحة عامة :
في باديء الأمر تم تطوير OpenGL من شركة Silicon Graphics المتخصصة عام 1992 , و OpenGL حاليا يتم مراجعتها كليا من قبل هيئة ((ARB Architectural Review Board المكونة في الأصل من عدة شركات أمثال 3D Labs, SGI, Apple, nVidia, ATI, Intel, id Software, yes. وحتى Microsoft .
OpenGL هي Open Standard وليست Open Source, أي أن كودها المصدري ليس متاحا للجميع, وانما للشركات فقط التي تريد تطويره.
توجد نسخة من OpenGL من SGI وتوجد نسخة أخرى خاصة ب Microsoft وهي تلك التي تصدر مع نظام التشغيل وندوز , ونسخة Microsoft مبنية في الأساس على نسخة SGI .
وتوجد نسخة مكتبة API أخرى مشابههة في عملياتها ودولها لل OpenGL وتسمى ب Mesa3D http://www.mesa3d.org لكنها مقدمة ك Open Source , حيث يمكنك الوصول لكودها المصدري وتفعل به ماتشاء وهي مكتبة متوازنة وقوية وتعمل في كل منصات التشغيل , لكن مشكلتها الكبرى أن عملياتها الداخلية غالبا لاتكون مدعومة في العتاد " بطاقات العرض " .
مكتبة OpenGL ليست كما ال DirectX تعتمد على بنية COM ف OpenGL عبارة عن مكتبة دوال API عادية ومباشرة ويمكن كتابة كود كامل بها باستخدام أي لغة برمجة وبشكل مباشر , من الجافا وحتى VB مرورا بالسي والسي++ .
مكتبة OpenGL أيضا كما Direct3D تستخدم مجاري التحويل والاضاءة لتحويل واضاءة الكائنات بنفس الاسلوب تقريبا , وبشكل عام اسلوب كتابة الكود في التقنيتين متشابه وبشكل كبير , لذا يمكن لمن يتعلم Direct3D أن يتقن OpenGL بشكل سريع جدا , لكن العكس قد يحتاج لبعض الوقت , نظرا لبعض تعقيدات الابتداء ب directX كاستخدام الواجهات والتعامل مع COM .
أسلوب OpenGL الدالي يجعل كتابة الكود ومعالجة الأخطاء أسهل من تلك التي في Direct3D , لذا يمكن للمبتدئين في مجال الجرافيكس تعلم OpenGL أسرع من Direct3D , لكن عندما تتقدم في المستوى وترغب في الدخول للأمور المتقدمة أمثال ال Point Sprite مثلا فانها مدعومة داخل Direct3D ابتداء من DirectX8 , لكنك تحتاج للامتدادات الخاصة ب OpenGL لتكتب كود مثل الذي ب Direct3D , والمشكلة تكمن في دعم الامتدادات من قبل مصنعي العتاد وفقط .
OpenGL Extensions امتدات OGL, هي عبارة عن ملف glext.h مع المكتبة الخاصة بها وتضم الكثير من الدوال الجديدة والبارمترات مع معرفات خاصة بها تقوم بأمور اما لتسهيل خصائص سابقة, أو لدعم ميزات جديدة موجودة في العتاد "بطاقات العرض".
عموما الامتدادات مرنة للغاية وتضم الكثير جدا من الدوال المفيدة والسريعة لكنها لاتكون غالبا مدعومة من كل شركات تصنيع العتاد , والأمر الآخر أنه يمكن كتابة كود قوي جدا بها لكنه في نفس الوقت قد يكون معقدا وغامضا ومتعب في ازالة العلل.
بالطبع اعتماد OOP كما في DirectX يسهل الوصول للدوال المطلوبة دون الدخول في تعقيدات كثرة الاسماء في البرمجة الاجرائية كما في OpenGL , حيث البرمجة الاجرائية باستخدام دوال فقط في OpenGL يسبب في مشاكل كثرة وتشابك وتعقيد طريقة التسمية .
والمميز في OpenGL أنه يمكن استخدامه في كل منصات التشغيل , والكثير من الألعاب الناجحة مكتوبة أيضا بهذا المحرك .
أخيرا نسخ ال OpenGL المقدمة من قبل Microsoft بدأت بالنسخة OpenGL 1 ثم OGL 1.1 ثم 1.2 ثم 1.3 ثم أخير 1.4 .
مالسيء في OpenGL ؟
أولا الكثير من الامتدادات الموجود خاصة بشركات تصنيع عتاد معينة فقط , أي أنها لن تعمل في بطاقات عرض أخرى . والسبب في ذلك أنها مقدمة من قبل الشركات ليس للأغراض التجارية العامة وانما لاغراض البحوث والتصميم الخاصة والاختبارات .
أيضا طريقة تسمية الدوال قد تتسبب في الكثير من الارباك لكثرتها وعدم اعتمادها على OOP .
وأيضا بالمقارنة مع Direct3D , يقدم Direct3D خدمات أكثر من تلك التي في OpenGL بدون الامتدادات وللمزيد من التفاصيل في هذا الشأن راجع الجدول في الصفحة التالية
http://www.xmission.com/~legalize/d3d-vs-opengl.html
كلمة أخيرة :-
اذا كنت تكتب برامج لتعمل في منصة خارج الوندوز فابتعد عن DirectX وعليك ب OpenGL فهي المطلوب في هذه الحالة . أما ان كنت تكتب برامجا للوندوز فأنا أنصحك ب DirectX والسبب لأنها مدعومة وبشكل كامل من أغلب مصنعي العتاد هذه الأيام , هذا بالطبع اذا كنت تكتب برامجا تجارية للتوزيعها في السوق كما في الألعاب مثلا . لكن اذا كنت تكتب برامجا لعمليات محاكاة الانظمة باستخدام CAD مثلا أو عمليات تصيير لمجسمات ونماذج معقدة أخرى فلك الخيار في تبني Direct3D أو OpenGL , لكن قد يتفوق OpenGL لو وجدت مثلا بعض بطاقات العرض المتقدمة للمحترفين ذات الأسعار أكثر من 1000 دولار تدعم بعض الخواص المتقدمة للامتدادات في OpenGL فعندها OpenGL قد يكون الخيار الصحيح .
لكن في أغلب الاحيان قد نستخدم Direct3D لبرامج الوندوز للسبب الوظائف المتقدمة بشكل عام والدعم من قبل كل مصنعي العتاد وأيضا لأن Direct3D مدعوم داخل مكتبة متكاملة بها أعضاء أخر وهم :
1) DirectDraw
2) Direct3D
3) Direct Music
4) Direct Sound
5) Direct Play
6) Direct Show
7) Direct Input
8) Direct Setup
يشكل الاعضاء الثمانية حلقة وصل قوية لتطوير برامج متقدمة جدا في مجالات متعددة من الصوت والصورة والعرض وحتى التحكم في عصى الألعاب Joystick وأيضا اللعب عبرة الشبكة Multiplay .
توجد أيضا مكتبة صوت خاصة بال OpenGL وهي OpenAL , ويتم حاليا الاعداد لمكتبة تسمى OpenML وهي بالنسبة ل OpenGL كما ال DirectX لل Direct3D .
وأيضا يتم حاليا التجهيز للنسخة OpenGL 2 ,ويمكنك متابعة بعض التفاصيل على هذا الرابط http://www.3dlabs.com/support/developer/ogl2/index.htm
أداء Direct3D وأداء OpenGL :
الأداء بين الاثنين بشكل عام متقارب ولايتفوق أحدهما على الآخر بسبب البنية الداخلية مطلقا , ولكن يمكن أن يتفوق أحدهما على الآخر بسبب الامكانات المضافة لبطاقة العرض أو العتاد بشكل عام . فمثلا بطاقة عرض تدعم كل وظائف Direct3D9 جربنا عليها برنامجين أحدهما مكتوب ب Direct3D9 يستفيد من الامكانيات القصوى ل Direct3D9 التي يدعمها العتاد , والآخر مكتوب ب OpenGL "وغالبا ماسيكون مكتوب بميزة موجودة في ال Extensions " , اذا لم تكن ميزة ال Extension مدعومة في بطاقة العرض فان كود Direct3D9 سيعمل أسرع وبكل تأكيد هذا اذا عمل كود OpenGL أصلا حيث اذا لم تكن الميزة التي يعمل بها البرنامج مدعومة في بطاقة العرض يمكن ل OpenGL أن يستخدم ميزة Software Rendering لمحاكاة العمليات التي تحدث في معالج بطاقة العرض GPU داخل المعالج الرئيسي CPU , وبالطبع كل هذا مقابل الكثير من التأخير في الوقت , حيث أن معالج بطاقة العرض GPU أسرع في العمليات المخصصة للعرض من ال CPU العام .
عموما لم أجري الكثير من التجارب في هذا الشأن, لكن سأقوم بها قريبا وألخص النتائج وأضيفها في المقال باذن الله .
برامج تم تطويرها باستخدام OpenGL أو Direct3D :
كما ذكرت سابقا XBOX يتم تطوير ألعابه باستخدام محرك Microsoft DirectX والكثير من الألعاب الناجحة جدا مكتوبة ب DirectX أمثال Fifa بأجزائها , Unreal Tournament , Generals وغيرها الكثير بشكل عام أغلب العاب ال PC مكتوبة ب DirectX .
Play Station2 يدعم OpenGL, والمحرك المدهش الخاص ب Quake3 تم تصميمه باستخدام OpenGL ,Half-Life تم تصميمه بكلا المحركينOGL و D3D "كل على حده في نفس الوقت " , برامج الجرافيكس المتطورة أمثال 3DStudio Max تم تصميمه أيضا ليدعم كلا المحركين في نفس الوقت .
وهذا موقع باللغه الانجليزية ان شاء الله هتلاقي فيه كل شىء
http://www.opengl.org/
خاتمة :
أرجو أن تكون هذه المقالة قد أفادتك في التعرف على كلا المحركين بشكل أفضل , ليكون لك الخيار في النهاية لاختيار المحرك المناسب .
أخيرا ماكان من صواب في هذه المقالة فمن الله وماكان من خطأ فمني ومن الشيطان
فى رعاية الله ،،،
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.