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

Glsl و Opengl

بدأه hbate_allah في 25 ديسمبر 2009 · 3 رد · 903 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي كود ب c++ و opengl بحيث يظهر لي مجسمات و ما الى ذلك عملت له texture

اريد الان ان اوظف خاصية glsl فيه لكني لا اعرف حتى من اين ابدا

لذا من يعرف كيف ارجو ان يفيدني

هل يجب ان ابدل مثلا في كود الرسم و كود الكساء ام اضيف فقط اكواد

ثانيا هل يعمل مع جميع كروت الشاشة اي glsl

#2

عليكم السلام ،

GLSL قصة اخرى ، هي ليست مجرد تأثيرات تضاف ، بل هي لغة مستقلة ، يجب تعلمها بشكل منفرد ،

في الحقيقة ، لا أعرف عنها الكثير ، مجرد رؤوس أقلام ،

ولكن ستقوم بما تريد من تأثيرات ،

لذلك ، السؤال ، ماهو نوع التأثير الذي تريد ؟

بكل الأحول ، تحتاج لتتعلمها من الصفر ، حيث القصة تكمن في التالي :

1- تكتب Vertex shader ( في ملف مثلا ) ،

2- تكتب fragment shader ( في ملف اخر مثلا) .

3- تستورد الملفين ( التظليل ) داخل برنامجك عبر آلية ثابتة معروفة لاتتغير كثيراً .

لذلك عملية استيراد التظليل وتطبيقه على مجسم في تطبيقك ، أمر سهل وبسيط ،

ولكن تطوير التظليل وكتابته ، يحتاج لفهم واستيعاب للغة GLSL و برمجة الرسوميات بشكل عام ،

في هذا القسم ، لايوجد مقالات عن GLSL ،

يمكنني أن أكتب مقال Hello World ، ولكن مالفائدة ، اذا كنت لا أستطيع أن أكتب شيء اكبر من Hello World ، لا أحب أن اصبح في موضوع محرج :wink:

لذلك سأوجهك إلى أحد الروابط ، لتبدأ منه :

http://www.lighthous...om/opengl/glsl/

وأبسط مثال :

http://www.lighthous...utglsl5_2.0.zip

http://www.opengl.or...ls/TyphoonLabs/

المشكلة في المظللات في OpenGL أنها تغيرت كثيراً ،

1- بدأت كامتدادات ARB Extension في النسخة 1.5 ، وهي الان طريقة مهجورة لايجب أن تتعلمها .

2- أصبحت قياسية في OpenGL 2.0 ، وهي الطريقة المعتمدة الان .

3- تم ادخال تعديلات واضافات في النسخة الاخير OpenGL 3.2 ، شيء يطلقون عليه اسم geometry shader

الان ، أغلب المواقع والتطبيقات تعتمد على الاصدارة OpenGL 2.0 و مابعدها ،

على العموم ، لو كان هناك أسئلة محددة ، يمكن أن تطرحها ..

فهناك بعض الاعضاء في المنتدى متميزين في هذا المجال .. ماشاء الله .

اضافة :

يبدو اني نسيت سؤالك :D ،

اقتباس
ثانيا هل يعمل مع جميع كروت الشاشة اي glsl

أستطيع أقول نعم ،

أغلب كروت الشاشة الان ، تدعم GLSL ،

بشرط أن تكون برمجيات كرت الشاشة - Driver - محدثة ..

اذا كان OpenGL 2.0 مدعوم في جهازك .. فهذا يعني قدرتك على التعامل مع GLSL ( ولو بشكل مبدئي ) ،

يمكنك استخدام هذا البرنامج لتعرف مدى دعم كرت الشاشة لديك لـ OpenGL 2.0 :

http://www.realtech-vr.com/glview/

تم تعديل هذه المشاركة بواسطة الشمري في 25 ديسمبر 2009 في 21:47

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

السلام عليكم

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

لكن حسبما فهمت الان من كلامك ان الكود الذي كتبته في البداية و الذي يقوم بالرسم و الاكساء سيتغير كليا باستعمال GLSL

اي لن احتاج GLVERTEX للرسم و GLTEXTURE لعمل الاكساء

#4

بالنسبة للرسم ، ستحتاج طبعاً للرسم .. بأي طريقة .. مثل glVertex

ولكن vertex shader سيؤثر على الرؤوس - vertices- ( يغير مسارها مثلاً ) ،

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

يعني هناك الكثير من الأمور الجاهزة سابقة - كانت تسمّى fixed pipeline - تقوم ببعض التاثيرات .. خذ مثلاً .. الدالة glAlphaTest التي ستزيل خلفية سوداء من الصورة مثلاً ، باستعمال قناة ألفا ..

يمكنك الان كتابتها باستخدام fragment shader .. و يمكنك أن تتحكم بها تحكم شامل كامل .. والكمال لله ..

الان ، جعلوا كثير من الامور ديناميكية .. بحيث انت من تحدد طريقة ظهورها .

ولكن الأمور الأساسية ، مثل الرسم - تطبيق اكساء معين - وأمور أخرى .. لازالت تتم من خلال OpenGL .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

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