الشبكة العربية لمطوري الألعاب

محترف  انس مشاركة 1

السلام عليكم .

قرات عن بعض التاثيرات الشهيرة المطبقة في الالعاب لكنني لم استوعب التاثيرين التالين :


Stippling Effects
Glenzing

فهل يمكنكم تبسيط مفهوم التاثير من فضلكم ؟

شكرا جزيلا لكم .
سلام .

خبير مدير وسام البهنسي مشاركة 2

وعليكم السلام،
 
شكراً على طرحك هذا التساؤل أخي أنس. الأسلوبين الذين طرحتهما يستخدمان بكثرة في التلوين في التطبيقات ذات العدد المحدود من الألوان.
 
بالنسبة لتأثير الترقيط stippling فهو تلوين المساحات بطريقة "مرقطة" باستخدام "تطريزة" معينة. مثلاً:



هذه لقطة من برنامج سوفت إيماج، يظهر فيها استخدام الترقيط لتعبئة مساحة لونية تعبر عن المضلعات التي اختارها المستخدم. لقد قمتُ بتكبير جزء من الصورة (في المربع الأحمر) كي يظهر لك الترقيط بوضوح. التطريزة المستخدمة هنا هي من نمط بكسل-مليء-بكسل-فارغ. لكنك تستطيع تحديد أي تطريزة أخرى. لاحظ أن هذه الميزة مدعومة مباشرة في أوبن جي إل، ولا يوجد مقابل لها في دايركت ثري دي دون برمجتها بنفسك.
 
هذه الطريقة تستخدم في بعض الألعاب لإعطاء الإيحاء بالشفافية. مثلاً، في مورتال كومبات 3، يمكنك رؤية هذا التأثير مستخدماً لشفافية أشرطة الطاقة في أعلى الصفحة (المساحة الحمراء من شريط الطاقة):
 

 
 
 
أما تأثير الـ glenzing، والذي سأدعوه جلنزة بالعربية (الكلمة لا معنى لها بالإنجليزية كذلك)، فهو حيلة تستخدم لتطبيق الشفافية ضمن بيئة لونية تعتمد على جدول ألوان (palette). في جدول الألوان يتم ترتيب القيم اللونية بحذر، بحيث يكون اللون المقابل لحاصل جمع رقم خانتي أي لونين في الجدول هو دمج لهذين اللونين.
 
مثلاً، تخيل معي جدول ألوان به لون أزرق في الخانة السادسة، ولوناً أحمر في الخانة السابعة. كي نستطيع استخدام الجلنزة مع هذا الجدول يجب وضع اللون البنفسجي (دمج الأزرق مع الأحمر) في الخانة الثالثة عشرة.  الآن لو كان لدينا خلفية زرقاء، ورسمنا عليها جسماً شفافاً أحمر، فإننا نقوم بجمع رقم خانة اللون الأزرق من الخلفية مع رقم خانة اللون الأحمر من الجسم المرسوم، لنحصل على الرقم 13، والذي يمثل لوناً بنفسجياً في جدول الألوان.
 
كما ترى، هذه الطريقة تحتاج إلى حذر شديد في تعبئة جدول الألوان، كما أنك لن تستطيع استخدام كافة خانات الجدول في تلوين الأجسام، فالعديد من الخانات سيتم حجزها للجلنزة فقط وسيتم اعتبارها غير موجودة ضمن الجدول الأساسي.
 
لست متأكداً بصراحة إن كان هناك أي جهاز عصري يدعم الجلنزة (أو الدمج عموماً) في بيئة تعتمد على جدول ألوان. لكنك تستطيع استخدام الترقيط ببساطة على أي جهاز رسم يدعم الشفافية الكاملة.

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

محترف  انس مشاركة 3

السلام عليكم .

اود ان اشكرك استاذ وسام على هذا الشرح الجميل جدا لقد اتضحت الامور بشكل كبير .

عندي بعض الاسئلة لترسيخ الفكرة نهائيا :

1- قرات في كتاب Core Techniques and Algorithms in Game Programming - Daniel Sanchez-Crespo Dalmau 
ان stippling يستعمل ايضا في تاثير الظل ( العاب ثنائية البعد )

 the shadow of the character will effectively look as if it is blended with the background: Some areas will 
look darker than others, and so on

و ايضا تاثير الضباب :
There are many other uses for stippling. For example, you can implement varying-density fog by using several 
stippling patterns (with different densities). 

فهل من توضيح بسيط ؟ لانني لا استطيع استيعاب استخدام هذه التقنية مثل ما شرحها الاستاذ وسام و تطبيقاتها .


وفي 29 ابريل 2009 06:22 ص، قال وسام البهنسي متحمساً:

مثلاً، تخيل معي جدول ألوان به لون أزرق في الخانة السادسة، ولوناً أحمر في الخانة السابعة. كي نستطيع استخدام الجلنزة مع هذا الجدول يجب وضع اللون البنفسجي (دمج الأزرق مع الأحمر) في الخانة الثالثة عشرة.  الآن لو كان لدينا خلفية زرقاء، ورسمنا عليها جسماً شفافاً أحمر، فإننا نقوم بجمع رقم خانة اللون الأزرق من الخلفية مع رقم خانة اللون الأحمر من الجسم المرسوم، لنحصل على الرقم 13، والذي يمثل لوناً بنفسجياً في جدول الألوان.
اذا فهمت الفكرة فاظن ان هذا التاثير قد تم تعويضه بتاثير Alpah Blending ، صحيح ؟

ملاحظة : اذا كان الاقتباس من الكتب ممنوعا فانا اعتذر و لن يتكرر ذلك مجددا . شكرا

سلام .

خبير مدير وسام البهنسي مشاركة 4

أما في 29 ابريل 2009 11:49 ص، فقد تنهد انس بارتياح وهو يرد:

- قرات في كتاب Core Techniques and Algorithms in Game Programming - Daniel Sanchez-Crespo Dalmau 
ان stippling يستعمل ايضا في تاثير الظل ( العاب ثنائية البعد )

 the shadow of the character will effectively look as if it is blended with the background: Some areas will 
look darker than others, and so on

و ايضا تاثير الضباب :
There are many other uses for stippling. For example, you can implement varying-density fog by using several 
stippling patterns (with different densities). 

فهل من توضيح بسيط ؟ لانني لا استطيع استيعاب استخدام هذه التقنية مثل ما شرحها الاستاذ وسام و تطبيقاتها .

نعم. كما قلت، يُستخدم هذا التأثير في إعطاء الإيحاء بالشفافية. وما الظلال أو الضباب إلا تطبيقان من التطبيقات التي تحتاج إلى الشفافية في رسمها.
فلو أردت مثلاً رسم ظلال لشخصية ما، فإنني أولاً أرسم الخلفية، ثم أرسم بقعة سوداء باستخدام تأثير الترقيط، وأخيراً أرسم الشخصية. انظر هذا المثال معي من لعبة كوميكس زون (Comix Zone) على جهاز سيجا جينيسز:
 

 
 
 
هنا تطريزة الترقيط المستخدمة لظلال الشخصيات هي تطريزة عمودية. في الصورة الأولى تم استخدام الترقيط أيضاً لتظليل الأرضية الخشبية.
 
لاحظ أن شاشة التلفاز (خاصة القديمة منها) تعاني من تشويش للصورة، مما يتسبب بدمج الألوان فتصبح الصورة أكثر نعومة، وتصعب ملاحظة عيوب تأثير الترقيط.
 
بالنسبة للضباب، فالوضع مشابه جداً للظلال، إلا أن الفرق الوحيد هو أنك تغير ترتيب الرسم ليصبح: ارسم الخلفية، ارسم الشخصية، ارسم الضباب بلون رمادي وبتأثير الترقيط.  يذكر الكتاب أنك تستطيع استخدام تطريزات مختلفة للتحكم بإيحاء كثافة الضباب، فكلما احتوت التطريزة على بكسلات رمادية أكثر، زادت كثافة الضباب.
 


في 29 ابريل 2009 11:49 ص، غمغم انس باستغراب قائلاً:

 
اذا فهمت الفكرة فاظن ان هذا التاثير قد تم تعويضه بتاثير Alpah Blending ، صحيح ؟

نعم. كلاهما يحقق نفس النتيجة، لكنك تستخدم الجلنزة في المشاهد المرسومة بجدول الألوان، وتستخدم الدمج اللوني المباشر في المشاهد المرسومة بقيم لونية مباشرة.


بتاريخ 29 ابريل 2009 11:49 ص، قطب انس حاجبيه بشدة وهو يقول:

ملاحظة : اذا كان الاقتباس من الكتب ممنوعا فانا اعتذر و لن يتكرر ذلك مجددا . شكرا

الاقتباس ليس ممنوعاً، فأنت لا تقوم بوضع جزء كبير من الكتاب بهدف القرصنة وتعويضنا عن الحصول على الكتاب الأصلي لقراءته بأكمله. ☺   خذ راحتك 😄

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

محترف  انس مشاركة 5

اتضحت الفكرة الان 😄   شكرا جزيلا على مساعدتك استاذ وسام .