يكمل
في القسم السابق علمتك كيفية رسم المثلثات والأشكال الرباعية. سيعلمك هذا القسم كيفية إضافة نوعين مختلفين من التظليل إلى المثلثات والأشكال الرباعية. استخدم التلوين المسطح لطلاء الشكل الرباعي بلون ثابت. استخدم التلوين السلس لمزج الألوان المختلفة للقمم الثلاثة للمثلث معًا لإنشاء مزيج جميل من الألوان.
تابع تعديل glDraw في القسم السابق.
PROcedure glDraw();
يبدأ
glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // مسح الشاشة والمخزن المؤقت للعمق
glLoadIdentity(); // إعادة تعيين مصفوفة مراقبة النموذج الحالي
glTranslatef(-1.5, 0.0, -6.0); // انقل إلى اليسار بمقدار 1.5 وحدة وإلى الشاشة 6.0
glBegin(GL_TRIANGLES); // ارسم المثلثات
//glColor3f(r,g,b). المعلمات الثلاث الموجودة بين قوسين هي مكونات اللون الأحمر والأخضر والأزرق بالترتيب.
// يمكن أن يكون نطاق القيمة من 0,0 إلى 1.0. على غرار أمر مسح خلفية الشاشة المذكور سابقًا.
// قمنا بتعيين اللون إلى اللون الأحمر (أحمر نقي، لا أخضر، لا أزرق).
// السطر التالي من الكود يعين الرأس الأول للمثلث (الرأس العلوي للمثلث)،
// واستخدم اللون الحالي (الأحمر) للرسم. من الآن فصاعدا سيتم تلوين جميع الأشياء المرسومة باللون الأحمر،
// حتى نغير اللون الأحمر إلى شيء آخر.
glColor3f(1.0, 0.0, 0.0); // اضبط اللون الحالي على اللون الأحمر
glVertex3f(0.0, 1.0, 0.0); // قمة الرأس
// تم تعيين أول قمة حمراء.
// بعد ذلك قمنا بتعيين الرأس الأخضر الثاني. الجزء السفلي الأيسر من المثلث ملون باللون الأخضر.
glColor3f(0.0, 1.0, 0.0); // اضبط اللون الحالي على اللون الأخضر
glVertex3f(-1.0, -1.0, 0.0); // أسفل اليسار
// الرأس السفلي الأيمن للمثلث. اضبط اللون على اللون الأزرق
// بعد ظهور glEnd()، سيتم ملء المثلث.
// ولكن لأن كل قمة لها لون مختلف، يبدو أن اللون يتدفق من كل زاوية،
// وتجتمع بالضبط في وسط المثلث، وتختلط الألوان الثلاثة مع بعضها البعض. هذا هو التظليل السلس.
glColor3f(0.0, 0.0, 1.0); // اضبط اللون الحالي على اللون الأزرق
glVertex3f(1.0, -1.0, 0.0); // أسفل اليمين
glEnd(); // نهاية رسم المثلث
glTranslatef(3.0, 0.0, 0.0); // إزاحة لليمين بمقدار 3 وحدات
// الآن نرسم مربعًا ملونًا بشكل رتيب - أرجواني.
// أهم شيء يجب أن تتذكره هو أن كل ما يتم رسمه بعد ضبط اللون الحالي هو اللون الحالي.
// كل مشروع تقوم بإنشائه من الآن فصاعدًا سيستخدم اللون.
// حتى عند استخدام تعيين النسيج بالكامل،
لا يزال من الممكن استخدام //glColor3f لضبط درجة لون النسيج.
//انتظر...، فلنتحدث عن ذلك لاحقًا.
//(هاها، الكتاب الأصلي باللون الأزرق، لكني أحب اللون الأرجواني)
glBegin(GL_QUADS); // ارسم مربعًا
glColor3f(0.6, 0.2, 2.0); // اضبط اللون الحالي على اللون الأرجواني
glVertex3f(-1.0, 1.0, 0.0); // أعلى اليسار
glVertex3f(1.0, 1.0, 0.0); // الجزء العلوي الأيمن
glVertex3f(1.0, -1.0, 0.0); // أسفل اليسار
glVertex3f(-1.0, -1.0, 0.0); // أسفل اليمين
glEnd(); // نهاية الرسم المربع
نهاية؛