
مرحبا يا هبر! أقدم لكم ترجمة المقال
"خرائط الظل العاكسة" للمخرج إريك بولمان.
خرائط الظل العاكسة (RSM) عبارة عن خوارزمية تمد
خريطة الظل "البسيطة". تأخذ الخوارزمية في الاعتبار الضوء المتناثر بعد الضربة الأولى على السطح (
منتشر ). هذا يعني أنه بالإضافة إلى الإضاءة المباشرة ، يمكنك الحصول على إضاءة غير مباشرة. في هذه المقالة ، سأقوم بتحليل الخوارزمية من
مقالة رسمية لشرحها إنسانيًا. سأتحدث أيضًا باختصار عن
تعيين الظل .
رسم الخرائط الظل
تعيين الظل (SM) هو خوارزمية توليد الظل. وفقًا للخوارزمية ، نقوم بتخزين المسافة من مصدر الضوء إلى الكائن في خريطة العمق. يوضح
الشكل 1 مثال لخريطة العمق. يخزن المسافة (العمق) لكل بكسل.
الشكل 1: هذه الصورة توضح خريطة العمق. كلما اقترب بكسل ، وأكثر إشراقا هو.وبالتالي ، عندما يكون لديك خريطة عمق من حيث مصدر الضوء ، فإنك ترسم المشهد من حيث الكاميرا. لتحديد ما إذا كان الكائن مضاءًا ، يمكنك التحقق من المسافة من مصدر الضوء إلى الكائن. إذا كانت المسافة إلى الكائن أكبر من القيمة المخزنة في
خريطة الظل (العمق) ، يكون الكائن في الظل. هذا يعني أنه لا ينبغي إضاءة الموضوع. يوضح
الشكل 2 مثال. تفعل هذه الشيكات لكل بكسل.
الشكل 2: المسافة من مصدر الضوء إلى البكسل في الظل أكبر من المسافة المخزنة في خريطة الظل.رسم الخرائط الظل العاكس
الآن بعد أن أدركت المفهوم الأساسي لـ
Shadow Mapping ، سنواصل مع
Ref الظل Shadow Mapping (RSM). تعمل هذه الخوارزمية على توسيع وظائف
خرائط الظل "البسيطة". بالإضافة إلى بيانات
العمق ، يمكنك أيضًا تخزين موضع مساحة العالم (في نظام الإحداثيات العالمي) ،
ومعيار مساحة الفضاء العالمي
والتدفق (إخراج الضوء). ساوضح لماذا تحتاج هذه البيانات.
البيانات
موقع الفضاء العالمي
في
RSM world-space ، يجب تخزين الموضع لتحديد المسافة بين البيكسلات. هذا مفيد لحساب توهين الضوء. يتلاشى الضوء (يصبح أقل تركيزًا) عندما تمر مسافة معينة. يتم استخدام المسافة بين نقطتين في الفضاء لحساب شدة الضوء.
عادي
تستخدم القواعد (الفضاء-العالم) لحساب انعكاس الضوء من السطح. في حالة
RSM ، يتم استخدامها أيضًا لتحديد ما إذا كان البيكسل المعطى مصدرًا للبكسل آخر. إذا تزامنت الحالتان العمليتان ، فلن يعطيا بعضهما البعض الضوء المنعكس.
التدفق الضوئي (التدفق الضوئي)
التدفق هو شدة الضوء لمصدر الضوء. وحدة القياس الخاصة به هي
لومن ، وهو المصطلح الذي يمكنك رؤيته حاليًا على عبوات المصباح الكهربائي. تقوم الخوارزمية بتخزين
التدفق لكل بكسل أثناء رسم خريطة الظل.
يتم حساب
التدفق من خلال ضرب شدة الضوء بمعامل الانعكاس.
للضوء الاتجاهي ، تحصل على صورة مضاءة بشكل موحد. بالنسبة
للضوء الموضعي ، يمكنك أيضًا مراعاة زاوية الإصابة. لا يؤخذ التوهين وجيب التمام المتلقي (بين المتجه العادي والناقل الضوئي) في الاعتبار ، حيث يتم أخذ ذلك في الاعتبار عند التفكير في الإضاءة غير المباشرة. هذه المادة لن تغطي التفاصيل.
ويبين الشكل 3 القوام
لضوء بقعة من مقال رسمي.
الشكل 3: تم تصوير البطاقات الأربع الموجودة في RSM . من اليسار إلى اليمين: خريطة العمق ، موقع الفضاء العالمي ، مساحة العالم العادية ، التدفق.تطبيق البيانات
الآن وبعد إنشاء البيانات (نظريًا) ، حان الوقت لتطبيقها على الصورة النهائية. عندما تقوم برسم الصورة النهائية ، تقوم بحساب تأثير كل مصدر للضوء على كل بكسل. بالإضافة إلى إضاءة وحدات البكسل ببساطة باستخدام مصادر الإضاءة ، يمكنك الآن استخدام
خريطة الظل العاكسة .
تتمثل الطريقة الساذجة لحساب مساهمة الإضاءة في المرور عبر جميع الأجزاء الموجودة في
RSM . يمكنك التحقق لمعرفة ما إذا كان الضوء من texel في
RSM يضرب البيكسل الذي تقوم بحسابه. يتم ذلك باستخدام المواقف العالمية للفضاء والعالم الطبيعي للفضاء. يمكنك حساب الاتجاه من موضع مساحة العالم في texel
RSM إلى بكسل. ثم تقوم بمقارنته بالعادة باستخدام المنتج القياسي للناقلات. أي قيمة موجبة تعني أنه يجب إضاءة البيكسل باستخدام
التدفق ، الذي يتم تخزينه في
RSM . يوضح
الشكل 4 هذه الخوارزمية.
الشكل 4: توضيح لمساهمة الإضاءة غير المباشرة بناءً على مواقع الفضاء العالمية والقواعد الطبيعية.تكون خرائط الظل (و
RSM ) كبيرة بطبيعتها (512 × 512 = 262144 بكسل) ، لذلك فإن التحقق من كل texel بعيد عن المستوى الأمثل. بدلاً من ذلك ، من الأفضل عمل عدد معين من العينات من الخريطة. يعتمد عدد العينات على مدى قوة جهازك. يمكن لعدد غير كاف من العينات إنتاج قطع أثرية مثل المشارب أو وميض.
الأقمشة التي ستؤثر بشكل كبير على نتيجة الإضاءة هي الأقرب إلى البيكسل المحسوبة. سوف تعطي طريقة أخذ العينات ، التي تجمع معظم العينات بالقرب من إحداثيات البكسل ، نتائج أفضل. وتسمى هذه الطريقة
"أخذ العينات أهمية" . توضح المقالة الرسمية أن كثافة أخذ العينات تتناقص مع مربع المسافة من البكسل الذي نحسبه.
نحتاج أيضًا إلى قياس شدة العينات مع مراعاة عامل يعتمد على المسافة. ويرجع ذلك إلى حقيقة أن texels تقع أبعد ، على الرغم من أنها يتم أخذ عينات أقل في كثير من الأحيان ، في الواقع ، فإنها تؤثر على نفس كمية التدفق. لذلك ، في وحدات البكسل البعيدة ، تحتاج إلى زيادة الكثافة لتخفيف عدم المساواة ، مع الحفاظ على عدد صغير من العينات. يوضح
الشكل 5 كيف يعمل هذا.
الشكل 5: أخذ العينات أهمية. يتم أخذ المزيد من العينات من المركز ويتم قياس العينات بواسطة عامل بناءً على المسافة من نقطة المركز. مقتبس من مقال عن RSM .اختيارييتم أخذ إسقاط البكسل الحالي على خريطة الظل كنقطة (نقاط ، ر). ويتم حساب إحداثيات أخذ العينات بالنسبة لـ (s، t) مقدمًا ونقلها إلى التظليل كصفيف.
يجب أن تعامل العينة كمصدر للإضاءة. يمكنك استخدام قيمة
التدفق بلون فاتح وفقط تلك مصادر الضوء المقابلة للبكسل.
الخاتمة
يناقش
المقال الرسمي بمزيد من التفاصيل حول التحسينات الأخرى لهذه الخوارزمية ، لكنني سأتطرق إلى ذلك. يصف قسم
الاستيفاء على الشاشة - الفضاء كيف يمكنك زيادة الإنتاجية ، لكنني أعتقد أن
أخذ العينات من الأهمية سيكون كافيًا للبدء.
الجزء الثاني يعرض تنفيذ
RSM .