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

سلسلة دروس OpenGL

رائج
بدأه CompuM4n في 2 يونيو 2004 · 38 رد · 40,834 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كما أشكر إدارة المنتدى على هذه الخطوة الرائعة وبانتظار المزيد بإذن الله.

قبل التطرق بالتفصيل عن OpenGL هناك بعض الأمور يجب معرفتها رغم أنه ليس لها علاقة بالبرمجة لكنها مهمة جداً جداً بالنسبة للرسم.

- تتكون الشاشة من مجموعة من النقاط المضيئة تسمى pixel.

- تقاس دقة الشاشة Resolution بعدد الـPixels الموجودة في الشاشة.

- أغلب الشاشات الموجودة حالياً دقتها 800*600.

- تستخدم شاشات الكمبيوتر نظام الألوان RGB والذي يعتمد على خلط الألوان الأحمر , الأخضر, الأزرق للحصول على اللون المطلوب.

- تستخدم شاشات التلفزيون نظام الألوان YIQ وهنا تأتي وظيفة كرت الشاشة حيث يقوم بعمل معادلات لتحويل الصورة من نظام RGB إلى نظام YIQ حتى تظهر محتويات شاشة الكمبيوتر على شاشة التلفزيون.

كيفية ظهور الصورة على الشاشة:

يوجد ذاكرة مخصصة للشاشة تسمى frame buffer قد تكون موجودة في الذاكرة الرئيسسية أو تكون مستقلة.

تخزن الصورة في هذه الذاكرة كقيم في مصفوفة لكل نقطة.

يأتي بعد ذلك دور كرت الشاشة video controller حيث يقوم بالوصول المباشر لمحتويات ذاكرة الشاشة ثم يقوم بتقسيم الشاشة نقاط توازي تلك الموجودة في الذاكرة ويقوم برسم الصورة على الشاشة.

كروت الشاشة المتطورة التي تستخدم عادة لتسريع عمليات الحركة على الصور nimation تحتوي هذه الكروت على ذاكرتين للشاشة two frame buffer وبذلك تبدو حركة الصورة وكأنها واقعية.

الأشكال الأولية:

الأشكال الأساسية التي تتكون منها الصور هي النقطة والخط المستقيم والمضلع والدائرة والصورة عبارة عن تركيب لهذه الأشكال معاً.

ماهي الـ OpenGL:

نعلم جميعاً بوجود مكتبات رسم مع لغة السي والسي ++ تمكننا من رسم الأشكال ومن أشهرها مكتبة graphics.h الموجودة في البورلاند سي++.

لكن إستخدام هذه المكتبات متعب للغاية وتحتاج لفترة طويلة و مجهود كبير لإنهاء عمل معين.

ولذلك فإن إستخدام المكتبات الجاهزة يعتبر الحل المناسب والتي توفر علينا الكثير من الجهد في العمل ويوجد العديد من هذه المكتبات أذكر منها GKs,PHIGS .

لكن أكثر المكتبات إنتشاراً على الإطلاق هي Open Graphical libraries المعروفة إختصاراً بالـ OpenGL.

تتميز بأنها قياسية بمعنى أنها تعمل على جميع أنظمة التشغيل ومع جميع لغات البرمجة الموجودة.

مالذي نحتاجه لإستخدام الـ OPenGL:

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

إضغط هنا لتحميل المجلد

أين أضع الملفات الثلاث:

1- glut32.dll يتم وضعه في المجلد C:\WINDOWS\system

2- glut.h يتم وضعه في المجلد C:\Program Files\Microsoft Visual Studio\VC98\Include\GL

3- glut32.lib يتم وضعه في المجلد C:\Program Files\Microsoft Visual Studio\VC98\Lib

كما يوجد العديد من الأمثلة في المجلد التالي.

إضغط هنا لتحميل مجلد الأمثلة

سوف أبدأ في المرة القادمة الحديث عن البرمجة بواسطة OpenGL بأبسط صورة ممكنة.

1
#2

السلام عليكم ,,

مشكورين CompuM4n ,, ولدي بعض التعليقات ,,

اقتباس
- أغلب الشاشات الموجودة حالياً دقتها 800*600

نظرا لتوفر شاشات ال 17 بوصة بشكل أكثر هذه الأيام فقد أصبحت الكثافة المفضلة هي ال 1024*768 ,, مع تردد انعاش 85 هيرتز في لكثير من الشاشات ,, ويمكن لشاشات ال 15 بوصة أن تعمل على كثافة ال 1024*768 لكن بتردد انعاش لن يزيد عن ال 60 هيرتز ,, مما يعطي صورة ليست ناعمة ومتعبة للعين ,,

اقتباس
تستخدم شاشات الكمبيوتر نظام الألوان RGB والذي يعتمد على خلط الألوان الأحمر , الأخضر, الأزرق للحصول على اللون المطلوب.

نظام الألوان RGB يعطينا ألوان حقيقية True Color وهي ال 24 بت وتقابل 16 مليون لون تقريبا ,, وهي ماتستطيع عين الانسان تمييزه ,,

وبالطبع توجد أنظمة ألوان ال 32 بت ,, وهي ال RGBA حيث ال A الأخيرة هي ماتسمى ب ألفا ,, أو معامل المزج ,, بين المصدر والوجهه ,, وتتحكم بمستوى الشفافية للألوان ,,

توجد أنظمة ألوان اأخرى ,, لكن كلها معالجة والألوان الأصليه هي ال RGB ,,

اقتباس
كروت الشاشة المتطورة التي تستخدم عادة لتسريع عمليات الحركة على الصور nimation تحتوي هذه الكروت على ذاكرتين للشاشة two frame buffer وبذلك تبدو حركة الصورة وكأنها واقعية

وهي ماتسمى بالمكدس الأمامي والمكدس الخلفي ,, "المكدس هو ال Buffer :) " ,, عملية الانتقال من السطح الأمامي الى السطح الخلفي تسمى عملية قلب الأسطح ,, وكما قلت أنت فهي مهمة جدا في تسريع العرض ,, ويمكن أن تختار برمجيا أن تعمل على سطحين أو 3 ان اردت لتكون الحركة أنعم ,, لكن ستبذر المزيد من الذاكرة في المقابل ,,

في انتظار القادم CompuM4n :)

1

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

.. بارك الله فيك أخي الكريم .. بداية جميلة :) ..

كما أريد أن أكون .. بأمر الله أكون

#4

أهلين أخي HGB

والله العظيم بدأت أشكك في عروبتك.

معقول يوجد بين العرب أشخاص مثلك ويكون وضع الأمة بهذا السوء الذي نعيشه.

على العموم سيأتي اليوم الذي يندم فيه الغرب على إعطاءنا بعض أسرار التقنية التي يملكها ظناً منهم أننا لن نستفيد منها.

وسيندمون أشد الندم على ترك مصرف Visual C++ بين يديك.regular_smile.gif

بالنسبة لتعليقاتك فلك مني جزيل الشكر وفعلاً معلومات مهمة.

لكن للأسف باب الـComputer Graphics باب كبير ولا يمكن شرحه هنا ولقد بحثت عن شرح له في منتدى الجرافيكس دون فائدة فهم لا يتحدثون إلا عن برامج الرسم الجاهزة.

لذلك قررت سرد بعض المعلومات السريعة والتي نحتاجها في البرمجة.

النحلة النشيطة Welcome Back

نور المنتدى ومن طول الغيبات جاب الغنايم.

أتمنى تساعديني في هذا الموضوع لأنه فعلاً يفقد الواحد الرغبة في طرح الدروس عندما لا يجد التفاعل من الآخرين.

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

الدرس الثاني يطبخ على نار هادئة وينتظر المتلهفين لأكلهregular_smile.gif

#5

موضوع شيق وجميل واسلوب شرح ولا اروع حتى هذه اللحظة. نشكرك اخي CompuM4n على ماتبذله من مجهود وماجورين باذن الله.

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#6

بعد تحميل الملفات الثلاث والتأكد من وضعها في الأماكن المحددة لكلاً منها نبدأ الحديث عن الرسم بواسطة مكتبات OpenGL.

كما ذكرت سابقاً فالأشكال الرئيسية هي النقطة والخط المستقيم والمضلع والدائرة.

وسأتحدث عن أبسط برنامج ممكن بواسطة OpenGL مع رسم أبسط شكل وهو النقطة Point.

سيكون لدينا دالتين إحداهما دالة العرض والأخرى بالتأكيد main.

وهذا هو أبسط برنامج بواسطة OpenGL:

#include<GL/glut.h> 
void display()
{
	glClear(GL_COLOR_BUFFER_BIT);

	glBegin(GL_POINTS);
	glVertex2f(0.0,0.0);

	glEnd();
	glFlush();
}

int main(int argc, char** argv)
{
	glutInit(&argc,argv);
	glutCreateWindow("Draw Point;");
	glutDisplayFunc(display);
	glutMainLoop();
	return 0;
}

الشرح:

#include<GL/glut.h>

يحتوي هذا الملف الرأسي header file على كل ما نحتاجه للعمل بالـOpenGL لذلك فإننا سنضيفه في كل البرامج القادمة.

لنتحدث الآن عن دالة main:

glutInit(&argc,argv);

تستخدم هذه الدالة لتهيئة GLUT وهي إختصار OpenGL Utility Toolkit وهي مكتبة من الدوال لإعداد النافذة وبالتالي يجب أن تكون موجودة قبل أي دالة OpenGL.

glutCreateWindow("Draw Point");

تقوم هذه الدالة بإنشاء النافذة ويمرر لها بارامتر واحد وهو الكلمات التي تظهر في شريط العنوان.

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

glutDisplayFunc(display);

يتم إستدعاء دالة العرض وقد يكون لها أي إسم.

glutMainLoop();

يدخل البرنامج في دائرة التكرار وبالتالي يجب أن تكون هذه الدالة هي آخر دالة في البرنامج.

دالة العرض display:

glClear(GL_COLOR_BUFFER_BIT);

تستخدم هذه الدالة لمسح محتوى الـbuffer قبل بدء عملية الرسم.

glBegin(GL_POINTS);

دالة بداية رسم الشكل ويمرر لها نوع الشكل المراد رسمه وهو هنا النقطة.

glVertex2f(0.0,0.0);

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

2 هنا تعني ذات بعدين أما f فتعني float وبالتالي تكون الإحداثيات بالعلامة العشرية وأما ما بين القوسين فهي إحاثيات النقطة x,y.

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

OpenGL_default.JPG

glEnd();

بعد وضع النقاط المطلوبة يجب وضع هذه الدالة كنهاية لسلسلة النقاط.

glFlush();

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

التنفيذ:

point.JPG

ملاحظات:

- هذا هو الوضع الإفتراضي default حيث حجم الشاشة 300*300 Pixel وتظهر الشاشة في الركن العلوي الأيسر.

- لون الشاشة الإفتراضي هو الأسود ولون الشكل المرسوم داخله هو الأبيض.

- الوضع الإفتراضي للإحداثيات هو الموجود في الأعلى.

- يمكن رسم خط مستقيم بنفس البرنامج بتغيير GL_POINTS في دالة بداية الرسم إلى GL_LINES مع العلم أن الخط المستقيم يرسم بمعلومية نقطتين.

- يمكن كذلك رسم مضلع بواسطة GL_POLYGON.

- يمكن كذلك رسم مثلث بواسطة GL_TRIANGLES مع وضع ثلاث رؤوس له.

في المرة القادمة سنتعرف على كيفية تغيير هذا الوضع الإفتراضي وسنقوم بتغيير:

حجم النافذة , مكانها , لون الخلفية , لون الشكل .

تحياتي للجميع.

#7

الله يبارك فيك يا CompuM4n ,, سأقرأ الكود غدا وسجلني حاضر اليوم في سجل الطلاب :lol: ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#8

الف الف شكر اخي CompuM4n

(جوزيت خيرا وزوجت بكرا :) :) )

موضوع روعــــه وانا من المتلهفين للقادم

وسجلني بعد حاضر

تحياتي

#9

شكرا جزيلا أخ CompuM4n، وجعله في ميزان حسناتك يوم القيامة.

بعض بطاقات الشاشة ، وخصوصا القديمة ، لا تستطيع تشغيل البرامج المكتوبة باستعمال مكتبة OpenGL.

من البطاقات التي لا تستطيع تشغيلها: SIS 620،

كانت لدي هذه البطاقة ، وحاولت من قبل كتابة برنامج يستفيد من مكتبة OpenGL ، ولم يفلح في العمل عليها، أيضا لم تستطع اللعبة المشهورة Quake3 حتى الإقلاع (من المعروف أن محركها مكتوب بواسطة OpenGL).

فهل يوجد لديكم حل لهذا الإشكال؟

تم تعديل هذه المشاركة بواسطة walcom في 6 يونيو 2004 في 20:38

فكر بطريقة أخرى

#10

بعد أن تعلمنا رسم الأشكال المختلفة وفق الوضع الإفتراضي والذي تم تحديده في الدرس السابق.

سنقوم اليوم بتغيير هذا الوضع الإفتراضي حسب حاجتنا.

سنعمل على برنامج بسيط يقوم برسم مضلع رباعي وهذا هو الكود:

#include<GL/glut.h> 

void myInit()
{
	glClearColor(0.3,0.8,1.0,0.0);
	glColor3f(1.0,1.0,0.5);
	glPointSize(2.0);
	glMatrixMode(GL_PROJECTION);

	gluOrtho2D(0.0,640.0,0.0,480.0);
}

void display()
{
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_POLYGON);
	glVertex2i(100,100);
	glVertex2i(100,300);
	glVertex2i(300,300);
	glVertex2i(300,100);

	glEnd();
	glFlush();
}

int main(int argc, char** argv)
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE |GLUT_RGB);
	glutInitWindowSize(400,400);
	glutInitWindowPosition(50,50);
	glutCreateWindow("Draw Polygon");
	myInit();
	glutDisplayFunc(display);
	glutMainLoop();
	return 0;
}

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

دالة main:

glutInitDisplayMode(GLUT_SINGLE |GLUT_RGB);

لندع هذه الدالة جانباً فأنا لم أفهم عملها بالضبط ولكنها هنا تحدد نظام الألوان المستخدم وهو هنا RGB وكذلك يحدد طريقة إستخدام buffer

وهي هنا SINGLE.

glutInitWindowSize(400,400);

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

glutInitWindowPosition(50,50);

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

position.jpg

myInit();

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

دالة myInit:

glClearColor(0.3,0.8,1.0,0.0);

هذه الدالة تحدد لون الخلفية ويمرر لها أربع قيم لأننا نستخدم نظام الألوان RGBA وفي هذا النظام كما ذكرنا سابقاً اللون الناتج يكون خليط للألوان الأحمر والأخضر والأزرق.

والقيم الممرة للدالة هي:

القيمة الأولى: عدد عشري من 0.0 إلى 1.0 يمثل درجة اللون الأحمر.

القيمة الثانية: عدد عشري من 0.0 إلى 1.0 يمثل درجة اللون الأخضر.

القيمة الثالثة: عدد عشري من 0.0 إلى 1.0 يمثل درجة اللون الأزرق.

القيمة الرابعة: وتسمى معامل alpha وهو عدد عشري من 0.0 إلى 1.0 يمثل درجة شفافية اللون الناتج فإذا كانت القيمة 0.0 فاللون يكون شفاف وإذا كانت 1.0 يكون غير شفاف ولكننا لن نستخدمه حالياً.

أمثلة على بعض الألوان:

-الأسود: (0.0,0.0,0.0)

-الأبيض: (1.0,1.0,1.0)

-الأزرق: (0.0,0.0,1.0)

-الأصفر الغامق: (0.5,0.5,0.0)

glColor3f(1.0,1.0,0.5);

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

glPointSize(2.0);

بما أننا نتعامل مع النقاط هذه الدالة تحدد حجم النقطة ونمرر لها الحجم وهو في مثالنا هذا 2 وبذلك نرسم النقطة الواحدة بنقطتين ونستفيد من هذه الدالة في زيادة سمك خط مثلاً.

ولنترك الدالتين الأخيرتين لوقت لاحق إذا عدنا لفتح الموضوع مرة أخرى.

التنفيذ:

change_default.jpg

وبنهاية هذا الدرس نكون قد إنتهينا من عملية تغيير الوضع الإفتراضي.

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

رغم أن ما دفعني إلى فتح هذا الموضوع هو رغبة البعض في تعلم الرسم في السي++.

كنت خائف من هذه النهاية ولكن ما باليد حيلة فالعالم العربي لن يتطور مهما عملنا.

وعلى العرب الســــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــلام.

:'(:'(:'(:'(:'(

1
#11

اخي CompuM4n لماااااااااااذا تتوقف والله انا متحمس للموضوع وغيري كثير

ياأخي حتى لو لم يرد عليك احد والله سوف يستفيد الكثير منه في المستقبل

فأنا عندما كنت جديد في المنتدى فإني بحثت عن المواضيع المتميزة القديمة

أنا اعلم ان الوضع محبط الانسان يتعب واخر شي لايجد تفاعل من الاعضاء؟؟؟؟؟؟؟؟؟؟

ولكن اخيرا الامر يعود لك واذا كنت مصرّ على التوقف فعلى الاقل لو تزيد موضوع او موضوعين

وفقك الله وجزاك الف خير

تحياتي

#12

السلام عليكم ,,.

هدي أعصابك يا CompuM4n واصبر ,, اذا لم يستفد أحد من الموضوع الآن سيستفيد منه شخص لا محاله في القريب العاجل ,, وربما أصبح هذا الموضوع من أحد روابط البحث في جووجل الخاصة بال OpenGl وباللغة العربية مثلا ,,

لماذا لاتحاول أن تكمل الموضوع لتنشيء كتاب لاحقا ؟ تكون في الطريق قد زدت من مهارتك في ال OpenGL ,, وفي نفس الوقت أفدت المئات ممن سيفهم ماهو ال OpenGL لاحقا ,,

أنا شخصيا كنت متابع للموضوع ,, لكن حصلت لي ظروف ولاأستطيع أن أدخل للانترنت كما في سابق العهد ,, بالطبع مؤقتا فقط وربما لمدة شهر ونصف ,, سأدخل من مقهى انترنت ولا أستطيع المكوث أكثر من ساعتين في اليوم ,,

لاأستطيع تصريف البرامج لأن ملفات التصريف ليست موجودة ,, لكن سأنزلها وسأحاول أن أعمل بنفس الجهاز في المقهى كل مرة !!

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

وأقول لك فقط اصبر واحتسب ذلك عند الله ,, وسترى النتيجة باذن الله ,,

أخي Walcom :

اقتباس
من البطاقات التي لا تستطيع تشغيلها: SIS 620،

كانت لدي هذه البطاقة ، وحاولت من قبل كتابة برنامج يستفيد من مكتبة OpenGL ، ولم يفلح في العمل عليها، أيضا لم تستطع اللعبة المشهورة Quake3 حتى الإقلاع (من المعروف أن محركها مكتوب بواسطة OpenGL).

فهل يوجد لديكم حل لهذا الإشكال؟

كما في البطاقات القديمة فمنها ما لايدعم بعض الوظائف المتقدمة في DirectX حتى ,, ويعود السبب لذلك أن مصنعي العتاد يضيفون وظائف عتادية Instructions لتعمل مقابل بعض وظائف ال OpenGL وا ل DirectX ,,

عموما وظائف ال Extentions في ال OpenGL أغلبها لن يعمل مع الكثير من بطاقات الرسوميات وهذا مايجعل ال OpenGL أحد خيارات محترفي التصميم ممن يملك المال الكافي لشراء بطاقات الرسوميات الباهظة المصممة للعمل مع نسخ Extionsions من ال OpenGL ,,

هذا بالنسبة لل Extintions فقط وهي قوية جدا جدا وتفيد محترفي الرسوميات كثيرا "أكثر من ال Direct3D في هذه النقطة " ,, لكن بقية الوظائف تعمل غالبا وبنسبة كبيرة في الكثير من البطاقات الرسومية .. لكن بالطبع توجد وظائف قوية كال AntiAliasing و ال Point Sprit وغيرها تحتاج لبطاقة رسوميات أفضل ولن تعمل مع الكثير من بطاقات الرسوميات القديمة ,, والأمر مشترك في ذلك بين ال OpenGL وال DirecTX ,,

بالنسبة لحل المشكلة ,, فلو كرت الشاشة لايدعم الوظائفية ,, فأعتقد أن لاسبيل هناك لتعمل ,, "ربما كرت الشاشة في جهازك قديم نسبيا بحيث لايستطيع تشغيل Instructions أصبحت رئيسية للعبة ك Quake3 ".. لكن ماأعرفه أن صناع الألعاب يكتبون اللعبة وبتدرجية كبيرة لتعمل لعدة مستويات من قوة العتاد وحتى لو كان كما كرت الشاشة الذي ذكرته !!

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#13

السلام عليكم

مشكور على جهدك اخCompuM4n وارجو ان لا تتوقف فانا متحمسة جدا للموضوع ولكني مشغولة بالامتحانات في هذا الوقت وسانتهي قريبا واتابع الموضوع اول بأول ان شاء الله

#14

تحياتي إليكم جميعاً.

حبيت أعتذر عن الكلام اللي كتبته في المرة السابقة.

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

وهذا رأي نحلة نشيطة أقتبسه:

اقتباس
لم أتوقف بداعي التوقف بل لأنه لم يكن هناك متابع فأصابني الاحباط من جهة و قلت لنفسي لربما لا يوجد هناك مهتم بالموضوع بالرغم من تشجيع أخي الكريم HGB

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

سأكمل وأجري وأجركم على الله ;);)

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

على العموم الله يساعدك وتنتهي هذه الظروف على خير لكن بعد شهر ونصف راح نتحاسب ;);)

وتحية خاصة إلى MLN4EVER و مبرمجة فلسطينية والمهم أن يتم تحميل الملفات المطلوبة وتجربة الأمثلة الموجودة حتى تتم الفائدة.

ربما نلتقي غداً.

#15

ايوا كده Compum4n الذي أعرفه :)

ولاتضغط نفسك ,, فأحب الأعمال الى الله أدومها وان قل ,, وانا أقول أحب الأعمال أيضا أدومها ولو على فترات متباعدة ,, "أنا أيضا أحاول تطبيق هذه النظرية لذا سأنفض الغبار عن بعض المواضيع التي توقفت منذ مدة لعدد من الأسباب بحول الله بعد الامتحانات ,, شهر ونصف من الآن :( "

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#16

جزاك الله الف خير على الدروس الرائعة

و ننتظر المزيد منك

طالب مستجد

#17

هذا برنامج يعرض البنية العامة للرسم في الحاسب مع الشرح

و المثال هنا رسم نقطة ............

point.rar

#18

اكمل يا اخي فانت لا تكتب من اجل الاشعار ...

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

لا تياس ولا تهتم ... فان لم ياتي شخص ليهتم اليوم سياتي اليوم الذي سيكون المئات يبحثون عن هذه المواضيع فبهذا انت تكون قد خدمتهم

وشكرا ......

#19

السلام عليكم ورحمة الله وبركاتة

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

وحبيت اسال كيف يمكن نحدد مقياس زاوية معينة لرسم خط مستقيم

#20

السلام عليكم

لا اعرف اذا كان صاحب الموضوع لا يزال يزور المنتدى, و لكن ان كان يقرأ هذه الكلمات فاقول له اكمل ما بدأت به و الا أمرت الحرس بجلدك ثمانين جلدة :D

على فكرة, شفت بروفايلك .. اخر زيارة كانت اليوم! فلا تروح يمنة و يسرة ..

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

توكل على الله و استكمل ما بدأته قبل عام.

و لقد استفدت من هذه الدروس و أرجو ان تكمل فأنا بانتظارك :)

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 2 يوليو 2005 في 00:48

1
#21

نتظرك واتمنى تكمل الشرح

ومشكووووووووووووور لانه بالفعل نتظر تكمل الشرح

واسئل الله ان يجعله في ميزان حسناتك

#22

هل يمكن ان اعمل على الوبن جيل على الفجول بيسك دوت نت (( هل هناك اصدار لذلك ))؟

وكيف يتم اعدادها لذلك ؟

<_<

تم تعديل هذه المشاركة بواسطة Sndan في 8 يوليو 2005 في 15:29

#23

مشكوووووووووووووووور اخوي على المعلومات القيمه من جد افادتني لاني انا في هذا الترم ادرس هذه الماده امنى لك نجاح باهر وجزاك الله خير

#24

جزاكم الله خير على الدروس السلسه

وان شالله راح اطبقها وماالاقي اي مشكله

ليس من العيب ان تعترف بجهلك في امر ما ولكن العيب الا تحرص على تعلمه

#25

-09

ألسلام عليكم

يبدو إنك قرأت موضوع ( حاجة تكسف) الذي كتبته :( .....

انا أعتذر الي الأن إن كان هذا هو السبب فا أنت تحاول مساعدتنا وكل ما كنت أنتقده هو اللامبالاة من المشرفين ولكن وجدت أن ألفاظي قاسية وأعتذر ثانية عن هذه الأسائة :( ....

كان هدفي إنعاش الموقع بما يثير المحترفين وربما نجحت بشكل ما (سيئ) مني ولكن كدت أخسر كل من في المنتدي وشعرت بسخافتي وأنانيتي في طلباتي دون مراعاة لظروف أحد .

ولكن كل ما أنا متمسك به حتي الأن هو ان " أحب الأعمل الي الله أنفعها للناس " وقول رسولنا الكريم صلي الله عليه و سلم " إثنان لا يشبعان طــــالــــب عـــــلــم وطالب مال "

صدق رسول الله .

بالله عليك حباً في الله ورسوله أكمل أخي الكريم فقد بدئنا للتو فهل تبخل علينا بوليمة كهذه :lol: .

-waf

أخوكم في الله

NubiaPrince

أحمد زايد

' و على الله فليتوكل المؤمنون '

* فريق الجرافيك الحاسوبي العربي الإسلامي * the Arabic-Islamic Computer Graphics - A I C G

イスラム教は平和を意味する

이슬람교는 평화를 의미한다

Ислам означает мир

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