باختصار
- Virtual Shadow Maps طريقة للظلال صُممت لتناسب هندسة Nanite والإضاءة الديناميكية.
- تكون الميزة مفعّلة افتراضيًا في المشاريع الجديدة، لكن يجب تفعيلها يدويًا في المشاريع التي أُنشئت قبل Unreal Engine 5.0.
- عندما يكون مستوى جودة Shadows مضبوطًا على Epic، يكون العدد الافتراضي للأشعة ثمانية للأضواء الموضعية والاتجاهية.
- يؤثر Source Radius في الأضواء الموضعية، بينما يؤثر Source Angle في Directional Light، على نعومة الظلال.
تُعد Virtual Shadow Maps (VSM) طريقة لإنتاج ظلال عالية الدقة في Unreal Engine 5، وقد صُممت للعمل مع Nanite. وتوضح الوثائق الرسمية لـ Epic Games كيفية إعداد VSM، خصوصًا في المشاهد التي تضم هندسة تفصيلية وإضاءة ديناميكية. يتناول هذا الدليل إعدادات المشاريع ومعلمات الإضاءة والموازنة بين الجودة والأداء الواردة في وثائق Unreal Engine 5، من منظور سير عمل التصور المعماري.
ما المشاهد المناسبة لـ Virtual Shadow Maps؟
تهدف VSM إلى إنشاء ظلال عالية الدقة عبر معالجة خرائط الظلال وفق احتياجات وحدات البكسل الظاهرة على الشاشة. تبلغ دقة الخرائط افتراضيًا 16K × 16K، وهي مقسمة إلى صفحات بحجم 128 × 128 بكسلًا. تُخصّص الصفحات المطلوبة وتُعالج، ثم تُخزّن الصفحات المتاحة مؤقتًا بين الإطارات. وقد تُعالج الصفحات مجددًا إذا أصبحت غير صالحة بسبب حركة الأجسام أو الأضواء.
صُممت هذه الطريقة للمشاريع المتوافقة مع Nanite. ولا يُدعم استخدام shadow map التقليدي مع هندسة Nanite وأضواء Stationary؛ لذا يُنصح في المشاريع التي تستخدم Nanite باختيار Movable Light أو VSM. وقد لا تكون VSM مناسبة لمشروع لا يستخدم Nanite أو لمنصة مستهدفة معينة. عند اختيار طريقة الظلال، قيّم هندسة المشهد وحركة الأضواء معًا.
1. تحقّق من طريقة الظلال في المشروع
افتح قسم Shadows ضمن Engine > Rendering في إعدادات المشروع. من خيار Shadow Map Method، اختر Virtual Shadow Maps أو طريقة Shadow Maps التقليدية. تكون VSM مفعّلة افتراضيًا في المشاريع الجديدة. أما المشاريع التي أُنشئت قبل Unreal Engine 5.0، فيجب تفعيل الميزة من إعدادات المشروع أو عبر متغير وحدة التحكم r.Shadow.Virtual.Enable.
عند تفعيل VSM، تحل محل بعض طرق الظلال، ومنها الظلال المحسوبة مسبقًا لأضواء Stationary، وpre-shadow، والظلال لكل جسم، وCascaded Shadow Maps. ومع ذلك، في الحالات التي لا تستخدم Lumen، تظل الظلال المخبوزة بالكامل للأضواء Static تعمل عبر خرائط الإضاءة. وفي أضواء Stationary، قد تأتي الإضاءة غير المباشرة من خرائط الإضاءة المخبوزة، بينما تُحسب الإضاءة المباشرة والظلال ديناميكيًا.
2. اضبط حجم مصدر الضوء وفقًا للمشهد
تستخدم تقنية Shadow Map Ray Tracing (SMRT) أخذ العينات مع VSM لإنتاج نعومة للظلال وتأثير تماسّها مع الأسطح. في الأضواء الموضعية، يؤثر Source Radius، وفي Directional Light، تؤثر Source Angle، على توزيع الأشعة نسبةً إلى مصدر الضوء. وقد يؤدي اختيار حجم مصدر مناسب إلى ظلال أنعم، بحسب نوع الضوء.
| الإعداد | القيمة المقترحة | التأثير |
|---|---|---|
Source Radius للأضواء الموضعية | قيمة معقولة تناسب المشهد؛ المثال الوارد في الوثائق هو 10 | يدعم الظلال الناعمة وتأثير التماس مع الأسطح باستخدام SMRT. |
Source Angle في Directional Light | قيمة تناسب المشهد؛ المثال الوارد في الوثائق هو 5,0 | يؤثر على نعومة الظلال الناتجة عن الضوء الاتجاهي. |
SamplesPerRayLocal وSamplesPerRayDirectional | من 4 إلى 8 عينات | يضبط عينات الظلال لكل شعاع؛ ويحد خفض عدد العينات من مدى النعومة الممكنة. |
RayCountLocal وRayCountDirectional | ثمانية أشعة افتراضيًا عندما يكون مستوى جودة Shadows مضبوطًا على Epic | يؤثر عدد الأشعة على التشويش في منطقة penumbra. |
ينبغي اعتبار الأرقام في الجدول نقطة بداية؛ فالإعداد نفسه لا يعطي النتيجة ذاتها في جميع المشاهد. وتشير وثائق Epic إلى أن القيم الكبيرة جدًا لـ Source Radius أو Source Angle قد تزيد الحمل على الأداء، وقد تسبب تشوهات بصرية في منطقة penumbra عند اقتراب الكاميرا من الظل. لذلك، تحقّق من النتيجة عند مواضع مختلفة للكاميرا بعد زيادة حجم الضوء.
3. وازن بين جودة أخذ العينات والأداء
يضبط عدد أشعة الأضواء الموضعية المتغير r.Shadow.Virtual.SMRT.RayCountLocal، بينما يضبط عدد أشعة الأضواء الاتجاهية المتغير r.Shadow.Virtual.SMRT.RayCountDirectional. أما عدد العينات لكل شعاع، فيُضبط باستخدام r.Shadow.Virtual.SMRT.SamplesPerRayLocal وr.Shadow.Virtual.SMRT.SamplesPerRayDirectional. قد يؤدي تقليل عينات الظلال إلى خفض تكلفة المعالجة، لكنه يحد أيضًا من نعومة penumbra الممكنة. وتشير Epic إلى أن استخدام 4–8 عينات لكل شعاع يعطي نتائج جيدة.
يؤدي ضبط المتغير الذي يتحكم في عدد الأشعة على صفر إلى تعطيل SMRT والعودة إلى ظلال حادة بعينة واحدة. وعندما يكون مستوى جودة Shadows مضبوطًا على Epic، يكون عدد الأشعة الافتراضي ثمانية للأضواء الموضعية والاتجاهية. عند تغيير الإعدادات، راقب تشويش الظلال ونعومتها وأداء المشهد معًا.
تكون ذاكرة VSM المؤقتة مفعّلة افتراضيًا. وإذا كشفت حركة الكاميرا مناطق لم تكن ظاهرة من قبل، فقد تُعالج صفحات ظلال جديدة. لذلك، لا يكفي قياس أداء لقطة ثابتة وحدها؛ اختبر المشاهد التي تتحرك فيها الكاميرا أيضًا. يعطّل المتغير r.Shadow.Virtual.Cache 0 الذاكرة المؤقتة لأغراض تصحيح الأخطاء؛ أما في الاستخدام المعتاد، فتوصي الوثائق بترك السلوك الافتراضي، أي إبقاء الذاكرة المؤقتة مفعّلة.
4. ما الذي ينبغي الانتباه إليه في سير عمل التصور المعماري؟
تهدف VSM في المشاهد المعمارية التي تستخدم هندسة Nanite وأضواء ديناميكية إلى توفير ظلال عالية الدقة بإعداد أبسط. في المساحات الداخلية، ينبغي ضبط حجم مصدر الأضواء الموضعية، وفي المساحات الخارجية ينبغي اختيار قيمة Source Angle لـ Directional Light وفق طابع الإضاءة في المشهد. ولا يعني تكبير مصدر الضوء دائمًا الحصول على نتيجة أفضل؛ إذ يجب تقييم النعومة والتشويش والأداء معًا.
ابدأ بالتحقق من إصدار Unreal Engine في المشروع، واستخدام Nanite، وطريقة الظلال. ثم غيّر إعدادات الإضاءة بخطوات صغيرة، وتحقق من النتيجة في الصور الثابتة وأثناء حركة الكاميرا. لا تحدد الوثائق متطلبات عتاد بعينها أو قيمة أداء واحدة صالحة لكل مشروع. لذا من المهم قياس الإعدادات على المشهد المستهدف، ولا سيما في المشاريع ذات الهندسة الكثيفة والإضاءة الديناميكية.
أخطاء شائعة
افتراض أن VSM مفعّلة تلقائيًا في المشاريع التي أُنشئت قبل Unreal Engine 5.0. تحقّق من إعداد المشروع ومن متغير وحدة التحكم عند الحاجة.
استخدام طريقة shadow map التقليدية لأضواء Stationary مع Nanite. تشير الوثائق إلى أن هذا التوافق غير مدعوم؛ لذا قيّم استخدام Movable Light أو VSM.
زيادة قيمة
Source RadiusأوSource Angleأكثر من اللازم. فقد يؤثر ذلك على الأداء ويسبب تشوهات في منطقة penumbra.تجاهل أن خفض عدد العينات يحد أيضًا من نعومة الظلال.
اختبار صورة من كاميرا ثابتة فقط. فقد تؤدي حركة الكاميرا إلى معالجة صفحات ظلال لم تكن ظاهرة من قبل.
المصادر
2 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
بالنسبة إلى مكاتب التصور المعماري في تركيا، تتمثل الفائدة العملية لـ VSM في تسهيل إعداد ظلال عالية الدقة للمشاهد الديناميكية التي تستخدم Nanite. لكن تفعيل الميزة وحده لا يكفي؛ إذ ينبغي اختبار حجم مصدر الضوء وإعدادات أخذ العينات على مشهد فعلي، بما في ذلك حركة الكاميرا.
على الفرق ذات ميزانية العتاد أو وقت التصيير المحدود قياس الفائدة البصرية قبل زيادة عدد العينات. ولأن الوثائق الرسمية لا تحدد متطلبات عتاد بعينها، ينبغي تقييم الأداء بحسب المشروع. كما أن التحقق من حالة التفعيل في المشاريع القديمة ومن توافق Nanite مع أضواء Stationary يساعد على تقليل التجربة والخطأ غير الضروريين.
الأسئلة الشائعة
كيف يمكن تفعيل Virtual Shadow Maps في Unreal Engine 5؟
اختر `Shadow Map Method` من قسم `Shadows` ضمن `Engine > Rendering` في إعدادات المشروع. ويجب تفعيل VSM أيضًا في المشاريع التي أُنشئت قبل Unreal Engine 5.0.
هل يمكن استخدام Virtual Shadow Maps مع Nanite؟
صُممت VSM للاستخدام مع Nanite. ولا يُدعم استخدام shadow map التقليدي لأضواء Stationary مع Nanite؛ ويمكن اختيار Movable Light أو VSM في هذه المشاريع.
ما الإعدادات التي تتحكم في نعومة الظلال في VSM؟
يؤثر `Source Radius` في الأضواء الموضعية، و`Source Angle` في Directional Light، على نعومة الظلال. كما يحدد عدد أشعة SMRT والعينات التوازن بين الجودة وتكلفة المعالجة.



