السلام عليكم :
اولا عندي شيء احب اقوله :
1- المعلومات التي ساذكرها ان شاء الله .. استفدتها من عدد من المذكرات والكتب .. يعني تستطيع الرجوع الى تلك المذكرات والاستفادة منها بشكل افضل .. اذا كانت لغتك الانقليزية جيدة .
2- الموضوع كله محاولات .. يعني قاعد اتعلم .. وانا اكتب هذا الموضوع . . . اعتبروا هذا الموضوع ( مسودة عمل) :rolleyes:
==========-
من المواضيع الجميلة في OPENGL موضوع Blending ,,, مزج الالوان ..
ماذا سنستفيد من Blending ,,
لو لم يكن هناك فائدة الا الشفافية لكان كافيا ..
اذا اردت ان تعرف تطبيقات الBlending فما عليك الا تشغيل برنامج الفوتوشوب ..
وقم بصنع طبقتين two layers .. وغير في ال Blenging للطبقة العلوية ولاحظ التأثيرات
الدالة التي سنستخدمها هي glBlendFunc
* القناة الفا ... هي الشفافية ... اذا كانت قيمتها 1 .. هذا يعني لا يوجد شفافية .
* يجب تفعيل الBlending عن طريق
glEnable(GL_BLEND)
* اذا اردنا استخدام الblending فامامنا مهمتان :
الاولى : تحديد نوع المزج(ان صح التعبير) للبيكسل المخزن .. المخزن حاليا في البفر
وتسمى destination pixel
الثانية : تحديد نوع المزج .. للبيكسل الهدف .. الذي نريد مزجه مع البيكسل الاساسي source pixel
بالتالي سينتج لدينا بيكسل مهجن .. :rolleyes: ,, من بيكسلين ...
لاحظ الدالة التالية
void glBlendFunc( GLenum sfactor, GLenum dfactor );
البارمترين يأخذان احد الثوابت التالية :
GL_ZERO GL_ONE GL_SRC_COLOR GL_ONE_MINUS_SRC_COLOR GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA GL_DST_ALPHA GL_ONE_MINUS_DST_ALPHA GL_DST_COLOR GL_ONE_MINUS_DST_COLOR GL_SRC_ALPHA_SATURATE
اختصارا للوقت وحتى يكون هناك استيعاب اكثر ,,,
في المرفقات مثل شامل لهذا الموضوع اعتقد انك ستفهمه بكل تأكيد ..
التحكم :
الاسهم .
المثال بالWIN API وليس glut

