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

خبير  أحمد عزالدين مشاركة 1

السلام عليكم

كل من تعامل مع اسلوب ال rendering في اي مكتبة رسومية مثل ال Direct3D يعرف أن أسلوب الرسم باستخدام المثلث
كوحدة أساسية للمجسمات لان المثلث يمكنه تمثيل اصغر شكل هندسى مغلق فى عدد أضلاعه مما يعطى دقة أكثر فى
حالة حسابات ال normals ولكن الرسم بهذا الاسلوب قد يسبب نتوءات حادة تسمى jaggies وهذه النتوءات تشوه قليلا
شكل الصور الناتجة من عملية ال rendering

هنا يأتي أسلوب ال AntiAliasing كما شرح الاستاذ وسام بأنه مع تكنيك يسمى ال Multi-Sample Anti-Aliasing (MSAA)
لتقليل هذا التشوهات والنتوءات الحادة وقد قرأت مقالة فى موقع GamasUtra وعنوانها هو
http://www.gamasutra.com/view/feature/3591/resolve_your_resolves.php
وهذه المقالة تشرح بعض اساليب الرسم تسمي post-processing techniques مثل ال motion-blur وغيرها

بصراحة أنا لم أفهم بصورة كاملة ما تحاول أت تعنيه المقالة بكلمة resolve
وأيضا المقالة تقول ان مبرمجى الالعاب الذين يشاركون فى عمل أخر الالعاب الحديثة هذه الايام يحاولون تقليل ال resolve count
ايضا ماذا يعنى كتابة ال resolution بهذا الشكل 1280x1024@4xAA

عموما أتمنى من أساتذتنا فى المنتدى بشرح مبسط لما تحاول المقالة توصيله وكما ذكر أن هدفها هو
The goal of this article is to describe how to minimize the resolve count in the
rendering pipeline without compromising the quality of post-processing effects
or deferred shading techniques.

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

أحمد عزالدين
طالب دراسات عليا
جامعة كالجري

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

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

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

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

في 29 مارس 2008 06:45 م، عقد وسام البهنسي حاجبيه بتفكير وقال:

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

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

حالياً معظم برامج الـ 3D التي تحوي نسخ حديثة من مينتال راي توظف هذا المفهوم لمعالجة الكثير من المؤثرات الهامة بطريقة رخيصة من ناحية الأداء، على سبيل المثال يتم معالجة  تأثير الـ sub-surface scatering من خلال توظيف الـ light map shaders بطريقة سريعة وفعالة بدل من محاكاتها بشكل فيزيائي دقيق عن طريق تتبع الأشعة (ray tracing).
 
أعتذر إن خرجت قليلاً عن الموضوع الأساسي!
 
مثال لمجسم مطبق عليه مظلل sub-surface scatering



خبير  أحمد عزالدين مشاركة 4

السلام عليكم

عذرا على تأخر الرد
جزاك الله خيرا تقريبا وضحت الفكرة

وشكرا أستاذ همام أيضا على التنويه ولكن هل يمكن أن توضح أكثر المقصود بمفهوم ال sub-surface scatering

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

أحمد عزالدين
طالب دراسات عليا
جامعة كالجري

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

نظراً لكون النقاش خرج نسبياً عن الموضوع الأساسي للمشاركة، فضلت استكماله في مشاركة منفصلة على الرابط التالي:
http://www.agdn-online.com/communities.aspx?view=posts&threadid=353