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

استفسار عن قيم الالوان ..

بدأه ahla elm في 30 يناير 2010 · 3 رد · 1,095 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي اسئله عن الالوان في الاوبن جي ال ...

س1/ لماذا قيم الالوان في مكتبة OpenGL محصوره بين 0 و 1 ؟؟

س2/ هل يطلق مسمى على قيم الألوان في OpenGL التي تكون محصوره في المدى ( 0,1) ؟؟

س3/ وهل يطلق ايضا مسمى على الالوان المحصوره بين المدى 255 و 0 ؟؟

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

وجزاكم الله عنا كل خير

شكرا

تم تعديل هذه المشاركة بواسطة ahla elm في 30 يناير 2010 في 20:41

#2

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

سأجيب بطريقة غير أكاديمية ،

يمكنك تعيين لون في OpenGL بأكثر من طريقة حسب نوع المتغيّر المطلوب variable type ، في الأخير كلها ستتحوّل إلى نوع واحد ( لست متأكد من هذا النوع ولكن أظنه float 32-bits ) .

اذا كان نوع المتغيّر هو:

  • float فالقيم ستكون محصورة بين 0 و 1 حيث الصفر يمثل أدنى قيمة لونية للقناة و 1 يمثل أقصى قيمة لونية للقناة .هناك كثير من التطبيقات تحتاج مدى أكبر ، حتى لا تتعب كثيراً في عملية التحجيم scaling ( تكبيراً أو تصغيراً ) ، لذلك نستخدم byte كامل لتمثيل كل قناة لونية .
  • unsigned byte : توفر مدى لوني يبدأ من الصفر وينتهي بـ 255 ( بايت واحد ) .
  • وهناك الكثير من الأنواع ولكن المستخدم بشكل كبير النوعين السابقين .

مع العلم أنك تستطيعين مثلاً تحويل قيمة لونية لأي نوع ، مثال :

r = 1

g = 0.5

b = 0.5

يمكن أن نحول هذا النظام المكتوب باستخدام النوع float الى unsigned byte بالضرب في 255 .

r = 255

g = 128

b = 128

ويمكن العودة للقيم الأصلية بالقسمة على 255 .

بالنسبة للسؤال الأول : لماذا OpenGL وفّرت قيم من نوع float لتمثيل الألوان ، مع أن unsigned byte أفضل وأسهل في التعامل لخلوه من الكسور مثلاً ، فلا أعلم .

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

مشكور مشرفنا الرائع والمميز الشمري

الله يعطيك العافيه .. ويوفقك يارب

جزاك الله عنا كل خير

#4

بالامكان استخدام هذه الداله لاي لون من الالوان

مثال

اللون الابيض

glColor3ub(255,255,255)

اللون الاسود

glColor3ub(0,0,0)

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