مرحبا يا هبر! أقدم لكم ترجمة مقال
"التعرض المحلي الديناميكي" للمخرج جون تشابمان.
في هذه المقالة ، سوف أقدم بعض الأفكار حول التعرض المحلي الديناميكي في عرض HDR. يحتوي Bart Wronsky بالفعل
على مقال ممتاز حول هذا الموضوع وأوصي بشدة بقراءته على الفور إذا لم تكن بالفعل ؛ الأفكار هنا ، إلى حد كبير ، تستند إلى مقالته. في النهاية ، قمت بتضمين بعض الروابط الرائعة الأخرى.
منخفضة / عالية المدى الديناميكي
في الأيام الخوالي (التسعينيات) ، تم عرض الألعاب مباشرةً بتنسيق
LDR (النطاق الديناميكي الضيق) المعروض (مساحة جاما ، 8 بت). كانت بسيطة ورخيصة ، ولكن ، من ناحية أخرى ، تتداخل بشكل كبير مع إنشاء صورة واقعية حقيقية.
حاليًا ، خاصةً مع ظهور
PBR (العرض القائم فعليًا) ، يتم تقديم الألعاب بنطاق ديناميكي ضخم في الفضاء الخطي بدقة أعلى. مع هذه الحركة ، تكمن المشكلة الحقيقية في الواقعية: كيف يمكننا عرض صورة
HDR في
LDR ؟
التعرض العالمي للسيارات
تتمثل الطريقة القياسية للتحكم التلقائي في التعرض في قياس السطوع المتوسط (أو المتوسط اللوغاريتمي) للمشهد ، اختياريًا مع وظيفة
الوزن التي تفضل القيم القريبة من مركز الصورة. يمكن القيام بذلك بكفاءة عالية عن طريق استخدام الاختزال المتوازي أو
الاختزال المتكرر في خريطة
mip لخزن مؤقت النصوع . النهج الأخير له بعض المزايا التي سأناقشها في القسم التالي.
بعد ذلك يتم تحويل متوسط السطوع إلى قيمة التعريض ، على سبيل المثال ، عن طريق حساب المعاملة التبادلية للسطوع الأقصى المسموح به للمشهد:
float Lavg = exp(textureLod(txLuminance, uv, 99.0).x); float ev100 = log2(Lavg * 100.0 / 12.5); ev100 -= uExposureCompensation;
تم الحصول عليها من معيار ISO لحساب السرعة بناءً على التشبع ؛ للحصول على شرح كامل ، انظر (3)نظرًا لأن متوسط السطوع المحتمل غير مستقر في ظل الظروف الديناميكية ، فإنه يتم تنعيمه عادة بمرور الوقت باستخدام وظيفة التباطؤ الأسي
(2) :
Lavg = Lavg + (Lnew - Lavg) * (1.0 - exp(uDeltaTime * -uRate));
تعليق المترجميجب أن يتم تطبيق هذه الوظيفة في سطوع نسيج اختزال التظليل وفقط أثناء حساب مستوى mip الأخير (1 × 1). علاوة على ذلك ، سيتم كتابته حول هذا الموضوع ، لكن في رأيي من السهل التغاضي عنه.
نظرًا لطبيعتها العالمية ، تعاني هذه الطريقة من التظليل الشديد أو النقاط البارزة لمناطق الصورة التي يوجد بها انحراف عن متوسط السطوع:

على الرغم من أن هذا يتوافق مع قدرة العين على التكيف مع التغيرات في مستويات الضوء ، إلا أن التأثير الكلي بعيد تمامًا عما نراه في العالم الواقعي.
AE المحلية
إذا أنشأنا سطوعًا متوسطًا باستخدام
الاختزال ، فيمكننا الوصول إلى مستويات mip أقل من
المخزن المؤقت للإضاءة (4) للحصول على متوسط سطوع محلي.
float Lavg = exp(textureLod(txLuminance, uv, uLuminanceLod).x;
يرجى ملاحظة أنه لكي ينجح ذلك ، يجب تطبيق التباطؤ في الخطوة الأخيرة فقط (عند تسجيل مستوى 1x1 mip) ، وإلا ستكون هناك قطع أثرية.من الناحية النظرية ، هذه فكرة رائعة: يمكن أن يكون لكل مساحة في الصورة عرض جيد ، بينما تتناقض مع المناطق المجاورة. ومع ذلك ، في الممارسة العملية ، يتم الحصول على نتيجة مثيرة للاشمئزاز:

الأكثر غير سارة هي كتل "الهالات" الموجودة في المناطق ذات التباين العالي:

ومع ذلك ، يمكن تلطيفها إما عن طريق التصفية المسبقة لمخزن
الإضاءة النصفي ، أو ببساطة باستخدام أخذ العينات ثنائية التكافؤ:

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

ومع ذلك ، فإن تجانس الظلال لا يكفي. النتيجة ليست طبيعية على الإطلاق. يشبه أسلوب "HDR photo" المتطرف ، على عكس ما يراه الشخص. ومع ذلك ، بخلط القيم العالمية والمحلية ، يمكننا الحصول على أفضل ما في العالمين:
float Llocal = exp(textureLod(txLuminance, uv, uLuminanceLod).x; float Lglobal = exp(textureLod(txLuminance, uv, 99.0).x; float L = mix(Lglobal, Llocal, uLocalExposureRatio);

عن طريق تغيير عامل الخلط ، يمكنك ضبط التعرض المحلي بحيث يؤدي إلى تقليل الآثار إلى الحد الأدنى وزيادة الواقعية المتصورة إلى الحد الأقصى:

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

بدون التعرض المحلي ، يتم فقد لون السماء. في هذه الحالة ، أود
نسبة خلط كبيرة:

الآن ، فكر في الصورة أدناه ، والتي لها نطاق ديناميكي صغير بشكل رئيسي ذات قيمة سطوع عالية:

في هذه الحالة ، يقلل تطبيق التعرض المحلي من سطوع المناطق "الزاهية" بدرجة كبيرة:

تُلمح بيانات المراقبة إلى طريقة بسيطة لخلط القيم
المحلية والعالمية : إذا كان الفرق بين متوسط وأقصى سطوع المشهد أكبر ، فيجب أن يكون معامل الخلط للتعرض المحلي أكبر. يمكن تحقيق
أقصى درجات سطوع المشهد بشكل بسيط أثناء حساب السطوع ، وذلك باستخدام التباطؤ لتنعيم النتيجة بنفس الطريقة بالنسبة إلى القيمة المتوسطة. لذلك ، يمكننا توسيع جزء الكود السابق كما يلي:
float Llocal = exp(textureLod(txLuminance, uv, uLuminanceLod).x; float Lglobal = exp(textureLod(txLuminance, uv, 99.0).x;
يرجى ملاحظة أن uLocalExposureMax ظهر على مدخلاتنا للتحكم في أقصى درجة مطلقة من تأثير التعرض المحلي. حصلت على نتيجة جيدة uLocalExposureMax <0.3 .الرمز النهائي float Llocal = exp(textureLod(txLuminance, uv, uLuminanceLod).x; float Lglobal = exp(textureLod(txLuminance, uv, 99.0).x;
الخاتمة
يفرض النهج الموضح أعلاه بعض القيود على عندما يكون من الضروري قياس سطوع المشهد. عادةً ما يتم إجراء القياس فور مرور الإضاءة لتجنب
تكاثر تأثيرات
الجسيمات ،
ازهر ، إلخ. ومع ذلك ، عند استخدام السطوع المحلي ، من المهم أن يتم تقديم القيمة الحقيقية التي تشارك في التعرض في
خريطة النصوع . هذا يعني أن قياس السطوع يجب أن يتم مباشرة قبل تطبيق التعرض. إذا كان هذا غير مقبول ، فالحل هو توليد سطوع محلي بشكل منفصل عن القيم المتوسطة والحد الأقصى.
على الرغم من أنني أعتقد أن استخدام السطوع المحلي والعالمي للمشهد معًا هو النهج "الصحيح" لإنشاء صورة متوازنة ذات مظهر طبيعي ، إلا أن جودة النتيجة ذاتية بشكل واضح. ما إذا كانت هذه الطريقة مناسبة للعبة معينة تعتمد كليًا على المحتوى والأسلوب المرئي المرغوب. سأكون مهتمًا لسماع أفكار أخرى في هذا الصدد.
المراجع
- Tonemapping المترجمة (بارت Wronski)
- تطبيق كاميرا بدنية (Padraic Hennessy)
- نقل Frostbite إلى PBR (Sébastien Lagarde ، وآخرون)
- نظرة فاحصة على Tonemapping (مات بيتينو)
- أهمية الوجود الخطي (لاري غريتز وآخرون)
- التقنيات المتقدمة وتحسين خطوط أنابيب HDR / VDR بالألوان (تيموثي لوتيس)
صور HDR مأخوذة من أرشيف sIBL .