استخدام الإضاءة العامة للفوكسلات في جودو

من موسوعة حسوب
< Godot
مراجعة 20:57، 27 نوفمبر 2023 بواسطة Naser-dakhel (نقاش | مساهمات) (إضافة الصفحة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

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

هام: VoxelGI مدعوم فقط عند استخدام محرك الرسم الخلفي Forward Plus، وليس الخلفيات المحسنة للهواتف المحمولة أو الخلفيات التوافقية. شاهد أيضاً: لست متأكد إذا كان VoxelGI متناسب مع احتياجاتك؟ انظر إلى أي تقنية إضاءة عامة يجب أن أستخدم؟ للمقارنة بين تقنيات GI المتوفرة في Godot4.

المقارنة البصرية

دون وجود VoxelGI
مع وجود VoxelGI

ضبط تشغيل VoxelGI

  1. تأكد أن مستوى الهندسة الثابتة لديك مستوردة بخيار التثبيت الخفيف Light Baking مضبوط إلى Static أو Static Lightmap في الشريط الجانبي للإستيراد. بالنسبة لعقد MeshInstance3D المضافة يدويًا، تأكد أن خاصية Global Illumination > Mode مضبوطة  إلى Static في لوحة الخصائص.
  2. أنشئ عقدة VoxelGI في شريط Scene tree
  3. انقل عقدة VoxelGI إلى مركز المنطقة التي تريد تغطيتها عن طريق سحب وسيلة التلاعب في بوابة الرؤية الثلاثية الأبعاد. ثم اضبط مدى الـ VoxelGI عن طريق سحب النقاط الحمراء في بوابة الرؤية الثلاثية الأبعاد (أو إدخال القيم في لوحة الخصائص). تأكد من أن مدى الـ VoxelGI ليس كبيرًا بشكل مبالغ به لأن ذلك سيؤثر على الجودة.
  4. حدد عقدة VoxelGI وانقر على Bake في أعلى شريط أدوات محرر بوابة الرؤية ثلاثية الأبعاد. سيستغرق هذا على الأقل بضع ثوانٍ للاكتمال (اعتمادًا على عدد تقسيمات الـ VoxelGI وتعقيد المشهد).

إذا كان لديك ما لا يقل عن شبكة واحدة موجودة ضمن مدى الـ VoxelGI وكانت طريقة الإضاءة العامة الخاصة بها مُعينة على "Static"، يجب أن ترى الإضاءة غير المباشرة تظهر داخل المشهد.

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

خصائص عقدة VoxelGI

الخصائص التالية يمكن ضبطها في مستعرض عقدة VoxelGI قبل عملية التثبيت:

  • Subdiv: القيم الأعلى تؤدي إلى إنتاج ضوء دقيق وغير مباشر ما يؤدي إلى أداء أقل ووقت تثبيت أطول ومتطلبات تخزين متزايدة.
  • المدى Extensts: يمثل حجم الصندوق الذي يجب تثبيت الإضاءة غير المباشرة فيه. يتم توسيط المدى حول منشأ العقدة VoxelGI."

الخصائص التالية يمكن ضبطها في مورد VoxelGIData الذي يكون ضمن عقدة VoxelGI بعد إتمام عملية التثبيت:

  • النطاق الديناميكي Dynamic Range: أقصى سطوع يمكن تمثيله في الإضاءة الغير مباشرة. القيم العالية تؤدي إلى إمكانية تمثيل إضاءة غير مباشرة أكثر سطوعًا، على حساب دقة أقل (والتي يمكن أن تؤدي إلى ظهور تدرجات ظاهرة). إذا كنت في حيرة من أمرك، لا تقم بأي تعديل.
  • الطاقة Energy: طاقة الإضاءة غير المباشرة الشاملة. هذا يؤثر أيضًا على طاقة الإضاءة المباشرة التي تنبعث من الشبكات ذات المواد الإشعاعية.
  • الانحياز Bias: انحياز اختياري مضاف إلى البحث في الخريطة الحجرية عند التشغيل. وذلك يساعد في تجنب ظواهر الاحتكاك الذاتي.
  • الانحياز العادي Normal Bias: يشبه الانحياز ولكنه يحول البحث في الخريطة الحجرية عن طريق سطح الطبقة. هذا يساعد أيضًا في تجنب ظواهر الاحتكاك الذاتي. القيم العالية تقلل الانعكاسات الذاتية المرئية في المواد غير الخشنة، على حساب تسرب الضوء المرئي واستخدام أضواء غير مباشرة تبدو أكثر سطحية. لإعطاء أولوية  لإخفاء الانعكاسات الذاتية عن جودة الإضاءة، اضبط الانحياز إالى0.0 والانحياز العادي على قيمة تتراوح بين 1.0 و 2.0.
  • الانتشار Propagation: عامل الطاقة المستخدم للإضاءة المرتدّة غير المباشرة. القيم العالية تؤدي إلى إضاءة أكثر سطوعًا وتشتتًا (وقد تبدو مسطحة جدًا). عند تفعيل استخدام ارتدادين، قد ترغب في خفض قيمة الانتشار لتعويض الإضاءة الغير مباشرة الأكثر سطوعًا عموما.
  • استخدام ارتدادين Use Two Bounces: عند تفعيله، سيتم ارتداد الإضاءة مرتين بدلاً من مرة واحدة. يؤدي ذلك إلى حصول إضاءة غير مباشرة تبدو أكثر واقعية، كما يجعل الإضاءة غير المباشرة مرئية في الانعكاسات أيضًا. عادةً ما لا يكون لتفعيل هذا كلفة أداء ملحوظة
  • الداخلي Interior: إذا تم تفعيله فإن الإضاءة السماوية للبيئة لن تؤخذ في الاعتبار من قبل VoxelGI. يجب تفعيله في البيئات الداخلية لتجنب تسرب الضوء من البيئة.

تداخل VoxelGI مع الإضاءة والعناصر

لضمان الرؤية الصحيحة عند استخدام VoxelGI ، عليك تكوين خصائص الإضاءة العامة للشبكات والأضواء وفقًا لغرضها في المشهد (ثابتة أو ديناميكية).

يوجد ثلاثة أنماط متوفرة للإضاءة العامة للشبكات:

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

إضافةًإلى ذلك، يوجد ثلاثة أنماط للتثبيت متوفرة للأضواء (DirectionalLight3D، OmniLight3D، SpotLight3D):

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

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

ضبط أداء وجودة VoxelGI

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

في إعدادات ضبط المشروع في قسم Rendering > Global Illumination، يمكن أن يتم ضبط جودة VoxelGI بطريقتين:

  • Voxel Gi > Quality:  إذا تم ضبطه على منخفض بدلاً من مرتفع سيستخدم تتبع مخروط Voxel أربع نقرات فقط بدلاً من 6، مما يعزز سرعة العرض على حساب أقل إظهار لتظليل الظل الداخلي.
  • Gi > Use Half Resolution: إذا تم تفعيله، سيتم عرض كل من VoxelGI وSDFGI بنصف دقة الوضوح. على سبيل المثال، عند العرض بدقة 3840 × 2160، سيتم حساب مخزن GI بدقة 1920 × 1080. تفعيل هذا الخيار يوفر الكثير من وقت وحدة المعالجة الرسومية، ولكن قد يؤدي إلى ظهور اختصارات حول التفاصيل الرفيعة.

من الضروري ملاحظة أنه يجب تفعيل خيار المتقدم في مربع حوار إعدادات المشروع لرؤية الإعدادات المذكورة أعلاه.

بالإضافة إلى أنه يمكن تعطيل VoxelGI بشكل كامل عن طريق إخفاء عقدة VoxelGI. يمكن استخدام هذا الخيار لأغراض المقارنة أو لتحسين الأداء على الأنظمة ذات المواصفات المنخفضة.

تقليل تسريب الضوء والفنيات في VoxelGI

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

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

لمكافحة الفنيات التي يمكن أن تظهر على الأسطح العاكسة، جرب زيادة Bias و/أو Normal Bias في مورد VoxelGIData كما هو موضح أعلاه. لا تزد هذه القيم كثيرًا، وإلا سيصبح تسريب الضوء أكثر وضوحًا.

مصادر