Archive

برمجة الألوان : دورة OpenGL لغة c++ الدرس الثالث عشر

برمجة الألوان هي إحدى صفات ملفات GLSL التي يمكن استخدامها وتضمينها في مشاريع OpenGL. في هذا الدرس سوف نقوم بشرح برمجة الألوان ومدى تأثيرها على مشهد العرض ، بالتالي ندخل في مسائل تتعلق في مصفوفات الإضاءة.[1] في العالم الحقيقي يمكن ملاحظة الألوان ونسبها إلى أقرب لون معلوم بشكل جزئي.[1] لكن في العالم الإفتراضي سوف نحتاج… Read More

كاميرا اوبن جل : دورة OpenGL لغة c++ الدرس الثاني عشر

كاميرا اوبن جل هي مجموعة من المصفوفات التي تتم عن طريق منظور إسقاط يساعد كثيرًا في تكوين مشهد العرض.[1] وتعتبر كاميرا اوبن جل جزء أساسي من مراحل الرسم ، بالتالي لا يمكن الاستغناء عنها لطالما أردنا الخوض في أعمال ومشاريع أكثر حرفية.[1] في هذا الدرس سوف نناقش مزيدا من الأعمال المتعلقة بضبط الكاميرا في مكتبة… Read More

نظام الإحداثيات : دورة OpenGL لغة c++ الدرس الحادي عشر

نظام الإحداثيات هو أحد أجزاء الرسم المتعلقة بــ 3D ، ويعبر OpenGL عن جميع النقاط التي يمكن رؤيتها وفقًا إلى ما يتم تعيينه من إحداثيات. ولا شك بأن جميع إحداثيات XYZ هي بالأساس واقعة بين النقطتين -1 و 1 من المجال (العمق Z).[1] على سبيل المثال ، فإن أي من النقاط التي خارج هذا المدى… Read More

خاصية التحويل : دورة OpenGL لغة c++ الدرس العاشر

خاصية التحويل هي إحدى المهام التي تستند عليها مكتبة OpenGL في الوصول إلى مشاهد عرض متعددة وغنية عن التعريف. لقد تمكننا في الدروس السابقة من إضافة كائنات وتعديل الألوان مع تمكين بعض خصائص المظهر على البرامج وهذا أمر جيد.[1] لكن لا تزال بعض المهام تفتقر إلى التفاعل مع بعضها البعض نظرا للمتغيرات الثابتة.[1]   خاصية… Read More

تفعيل texture : دورة OpenGL لغة c++ الدرس التاسع

تفعيل texture يساعد في تعبئة النماذج الخاصة بالرسم 2D و 3D يمكن تفعيل texture ليعمل على جميع تقنيات الرسم ، حيث أن أفضل مثال على استدعائه هو نموذج منزل 3D. لا شك بأنه يظهر أمام الكاميرا على أنه منزل حقيقي مليئ بقطع الرسم التي يتم تركيبها بواسطة الأنسجة Textures. يقوم النسيج على تكرار حجارة ذلك… Read More

ملف GLSL : دورة OpenGL لغة c++ الدرس الثامن

ملف GLSL يزداد حجمه عند تخصيص بعض المتجهات بحسب ما يستدعي من وظائف uniforms. حيث أن ذلك من شأنه أن يعيق فهم وقراءة الشيفرة كلما ازداد استخدام ظلال GLSL. وبالتالي يتعين علينا بناء ملف GLSL لكل من Vertex Shader و Fragment Shader لتنظيم قراءة الشيفرة. على سبيل المثال ، فقد قمنا بتخصيص بضعًا من الدوال… Read More

يونيفورم OpenGL : دورة OpenGL لغة c++ الدرس السابع

يونيفورم OpenGL هي طريقة أخرى لتمرير البيانات من المشروع إلى وحدة CPU ومن ثم إلى وحدة معالجة الرسومات GPU.[1] مع  ذلك قد يختلف يونيفورم OpenGL قليلاً عند المقارنة مع سمات Vertex. حيث تعبر يونيفورم OpenGL عن متغيرات عامة ما يعني أنها متغيرات فريدة من نوعها لكل ظل من ظلال GLSL يجري استخدامه.[1] تعمل متغيرات يونيفورم… Read More

ظلال GLSL : دورة OpenGL لغة c++ الدرس السادس

غالبًا ما تشير ظلال GLSL إلى بعض مهام GPU التي تفسرها بطريقة أكثر منها استغلال للموارد. فهي ليست سوى برامج كود تقوم باستخدام خصائص التحويل بين المدخلات والمخرجات عبر أنابيب الرسم (Pipeline).[1] وإحدى صفات ظلال GLSL الخاصة هو أنه لا يمكن التواصل معها بشكل دائم ، بالتالي فهي برامج معزولة لا تتمكن حتى من التفاعل مع… Read More

رسم مربع بواسطة OpenGL : دورة OpenGL لغة c++ الدرس الخامس

رسم مربع بواسطة OpenGL يتطلب الإلمام ببعض المهام الرئيسية في المثلثات حيث لا تختلف الطريقة كثيرا عنها. كما تتطلب عملية الاستدعاء زيادة في عدد الإحداثيات التي ستتضح فيما بعد أنها عبارة عن مثلثين بــ6 أضلاع. وكذلك الأمر بالنسبة لمكونات EBO (Element buffer object).[1]. حيث يمكن رسم مربع بواسطة OpenGL عن طريق دمج مثلثين من الإحداثيات…. Read More

رسم مثلث : دورة OpenGL لغة c++ الدرس الرابع

يمكن رسم مثلث عبر وظائف مكتبة OpenGL لكن يتطلب الإدراك بأن الشاشة التي نعمل عليها هي ثنائية البعد.[1] وعلى الرغم من أن وظائف OpenGL هي دائمة العمل بالرسم 3D إلا أن ما يحدث هو خداع بصري عن طريق خصائص التحويل والجبر الخطي في البرمجة.[1] على سبيل المثال عند رسم مثلث 2D فإن خصائص بعض الوظائف… Read More