مقدمة عن الإضاءة العامة في جودو

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

ما هي الإضاءة العامة؟

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

في المثال التالي، يُضاء المشهد كاملاً من مادة مضيئة (المربع الأبيض في الأعلى). الجدار الخلفي والسقف الأبيض ملونان أخضر وأحمر بالقرب من الجدران، كما أن الضوء المنعكس على الجدران الملونة ينعكس على باقي المشهد.

global illumination example.png


تتكون الإضاءة العامة من عدد من المفاهيم الأساسية:

الإضاءة المنتشرة غير المباشرة

لا تتغير هذه الإضاءة حسب زاوية الكاميرا. هناك مصدران أساسيان للإضاءة المنتشرة غير المباشرة.

  • الضوء المنعكس عن الأسطح. يُضرب هذا الضوء مع لون قاعدي albedo خاص بالمادة. يمكن عكس الضوء المنعكس على الأسطح الأخرى، بدون خفض تأثيره بسبب تخفيف الضوء. ينعكس الضوء الطبيعي عدد لا نهائي من المرات، ولكن لأسباب تتعلق بالأداء وبالتالي لا يمكن محاكاة ذلك في محرك اللعبة. بدلًا عن ذلك، يكون عدد الانعكاسات 1 أو 2 (أو حتى 16 مرة عند تثبيت خرائط الإضاءة). يؤدي زيادة عدد الانعكاسات إلى سقوط ضوء طبيعي في المناطق المظللة على حساب تخفيض الأداء أو أوقات تثبيت أطول.
  • يمكن أن تنشر المواد المضيئة الضوء الذي يمكن أن ينعكس على الأسطح. يعمل ذلك كنوع من إضاءة المساحة. بدلًا من أن يكون هناك نقطة صغيرة جدًا تنشر الضوء باستخدام العقد OmniLight3D أو SpotLight3D يمكن أن تنشر مساحة معينة الضوء باستخدام سطحها.

يتم التعامل مع الإضاءة المنتشرة المباشرة من خلال عقد الإضاءة نفسها، مما يعني أن خوارزميات الإضاءة العامة تمثل الإضاءة غير المباشرة.

تقدم تقنيات الإضاءة العامة المختلفة درجات مختلفة من الدقة لتمثل الإضاءة المنتشرة غير المباشرة. لمزيد من المعلومات راجع جدول المقارنة في نهاية الصفحة.

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

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

الإضاءة المنعكسة

الإضاءة المنعكسة المعروفة أيضًا بالانعكاسات. تغير هذه الإضاءة شدتها اعتمادًا على زاوية الكاميرا. يمكن أن تكون الإضاءة المنعكسة مباشرة أو غير مباشرة.

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

يمكن تفعيل انعكاسات مساحة الشاشة Screen-Space Reflections او اختصارًا SSR في إعدادات البيئة للحصول على انعكاسات أدق للكائنات الصغيرة. لدى SSR تأثير أكبر على الأداء (حتى أكثر من SSAO) لذا تأكد من تعطيله عند استهداف العتاد الضعيف.

أي تقنية إضاءة عامة يجب أن استخدم؟

هناك عدة معايير يجب أخذها بعين الاعتبار عند تحديد تقنية الإضاءة العامة global illumination أو اختصارًا GI.

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

هنا مقارنة عن كل تقنيات الإضاءة العامة المتوفرة في جودو:

الأداء

  • ReflectionProbe:
    • إن ReflectionProbe مع نمط التحديث مضبوط إلى دومًا يؤثر أكثر من المسبار مع نمط التحديث مضبوط إلى مرة واحدة (الافتراضي). هذا يناسب معالجات الرسوميات المدمجة عند استخدام نمط التحديث مرة واحدة ويكون متوفرًا عند استخدام الواجهة الخلفية Forward Mobile. يكون متوفرًا في الواجهة الخلفية Compatibility في الإصدارات اللاحقة.
  • LightmapGI:
    • يمكن تثبيت الأضواء مع الإضاءة غير المباشرة فقط، أو مثبتة بشكل كامل على كل ضوء لتحسين الأداء. يمكن استخدام طرق هجينة (مثل الحصول على ضوء اتجاهي بالوقت الفعلي وضوء مكاني مثبت بشكل كامل). يمكن تفعيل المعلومات الاتجاهية قبل التثبيت لتحسين البصريات على حساب تكلفة أداء صغيرة (على حساب حجم ملفات أكبر). هذا يناسب معالجات الرسوميات المدمجة، ويكون متوفرًا عند استخدام الواجهة الخلفية Forward Mobile. يكون متوفرًا في الواجهة الخلفية Compatibility في الإصدارات اللاحقة.
  • VoxelGI:
    • يمكن تعديل عدد تقسيمات التثبيت للموازنة بين الأداء والنوعية. يمكن تعديل نوعية تصيير VoxelGI في خصائص المشروع. يمكن أن يتم التصيير بنصف الدقة (ويتم التصعيد بشكل خطي) لتحسين الأداء بشكل واضح. غير متوفر عند استخدام الواجهات الخلفية Forward Mobile أو Compatibility
  • إضاءة غير مباشرة لمساحة الشاشة Screen-space indirect lighting أو (SSIL):
    • يمكن تعديل نوعية وعدد مرات مرور الضبابية في خصائص المشروع. يتم التصيير SSIL افتراضيًا بنصف الدقة (ويتم التصعيد بشكل خطي) افتراضيًا لضمان مستوى أداء معقول غير متوفر عند استخدام الواجهات الخلفية Forward Mobile أو Compatibility
  • SDFGI:
    • يمكن تعديل عدد المتتاليات للتوازن بين الأداء والنوعية. يمكن تعديل عدد الأشعة المُسقطة كل إطار في خصائص المشروع. يمكن القيام بالتصيير بنصف الدقة (ويتم التصعيد بشكل خطي) لتحسين الأداء بشكل كبير. غير متوفر عند استخدام الواجهات الخلفية Forward Mobile أو Compatibility

البصريات

التالي هو مشهد ثلاثي البعد بدون استخدام أي خيار إضاءة عامة.

gi none.png


مشهد ثلاثي الأبعاد بدون أي نوع من الإضاءة العامة (فقط إضاءة البيئة الثابتة). إن الصندوق والكرة قرب الكاميرا كلاهما كائنات ديناميكية.

التالي هو مقارنة لتقنيات الإضاءة العامة الخاصة بجودو

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

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

طريقة عمل VoxcelGI
  • SDFGI جيد للانعكاسات والإضاءة غير المباشرة ولكن انتبه من انحراف المتتاليات.
    • تعتمد درجة تفاصيل GI على المسافة بين الكاميرا والسطح.

يمكن تخفيف التسريب بتفعيل خاصية استخدام الحجب. هذا لديه تأثير أداء قليل، ولكنه يقلل من التسريب مقارنة بـ VoxelGI.

يمكن أن يكون انحراف المتتاليات ظاهرًا أكثر عندما تتحرك الكاميرا بسرعة. يمكن تخفيف ذلك عن طريق تعديل حجم المتتالية أو استخدام الضباب.

gi sdfgi.png
  • الإضاءة غير المباشرة لمساحة الشاشة (SSIL)
    • إن SSIL مصمم للاستخدام كمكمل لتقنيات GI الأخرى مثل VoxelGI أو SDFGI أو LightmapGI. تعمل SSIL بشكل أفضل للتفاصيل الصغيرة، إذ لا تستطيع تقديم إضاءة غير مباشرة دقيقة للعناصر الكبيرة لوحدها. تستطيع SSIL تقديم إضاءة غير مباشرة بالوقت الفعلي في الحالات التي لا تستطيع تقنيات GI أن تلتقط التفاصيل الصغيرة أو الكائنات الديناميكية.  بسبب طبيعة مساحة الشاشة الخاصة به ستؤدي إلى بعض التأثيرات البصرية غير المرغوبة، خاصة عندما تدخل أو تخرج الكائنات من الشاشة. تعمل SSIL باستخدام لون أخر إطار (قبل المعالجة اللاحقة) هذا يعني أن الرسوم المضيئة والتظليل الخاص تكون مضمومة (طالما هي موجودة على الشاشة).
طريقة عمل SSIL (بدون أي تقنيات GI أخرى). لاحظ الضوء المنتشر حول الصندوق الأصفر
  • خريطة الضوء GI إضاءة غير مباشرة ممتازة، انعكاسات مقبولة (اختياري)
    • هذه هي الطريقة الوحيدة حيث يمكن زيادة عدد الانعكاسات فوق 2 (حتى 16). عند تفعيل المعلومات الاتجاهية تُستخدم التناغمات الكروية Spherical Harmonics لتقديم انعكاسات ضبابية.
طريقة عمل GI خريطة الضوء. فقط الإضاءة غير المباشرة مثبتة هنا، ولكن يمكن تثبيت الضوء المباشر أيضًا.
  • مسبار الانعكاس انعكاسات جيدة ولكن إضاءة غير مباشرة ضعيفة.
    • يمكن تعطيل الضوء غير المباشر، ضبطه لنشر لون معين خلال المسبار أو القراءة تلقائيًا من بيئة المسبار (وتطبيقه كخريطة مكعبية). يعمل ذلك فعليًا كإضاءة محيطية محلية. تندمج الانعكاسات والإضاءة غير المباشرة مع المسابر القريبة.
طريقة عمل مسبار الانعكاس (بدون أي تقنية GI أخرى). لاحظ الكرة المنعكسة.

قابلية العمل في الوقت الفعلي

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

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

  • SDFGI: قابل للعمل جزئيًا في الوقت الفعلي
    • يتم إنشاء المتتاليات في الوقت الفعلي، مما يجعل SDFGI مفيدًا في المراحل المنشأة إجرائيًا (حتى عند إنشاء الهياكل وقت اللعب).

يمكن أن تستقبل الكائنات الديناميكية GI ولكن لا تساهم بها. يُحدَّث الضوء فقط عندما يدخل الكائن متتالية، لذا يمكن أن يعمل مع الكائنات بطيئة الحركة

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

الحاجة لعمل المستخدم

  • VoxelGI: يجب إنشاء وتثبيت عقدة VoxelGI أو أكثر
    • تعديل الحدود بشكل صحيح هو أمر مطلوب للحصول على نتائج جيدة. تدوير العقد وتثبيتها مجددًا يساعد لمحاربة التسريب والمشاكل البصرية في بعض الحالات. وقت التثبيت سريع – عادة أقل من 10 ثواني لمشهد متوسط التعقيد
  • SDFGI: قليل جدًا
    • إن SDFGI تلقائي كليًا، يحتاج فقط لتفعيله في مورد البيئة. لا يوجد حاجة لإنشاء عقدة أو تثبيت
  • الإضاءة غير المباشرة لمساحة الشاشة (SSIL): قليل جدًا
    • إن SSIL تلقائي كليًا، يحتاج فقط لتفعيله في مورد البيئة. العمل اليدوي الوحيد هو ضبط نمط التثبيت لـ MeshIsnatnce بشكل صحيح. لا يوجد حاجة لإنشاء عقدة أو تثبيت
  • GI خريطة الضوء: تحتاج ضبط UV2 وتثبيت
    • يجب إعادة استيراد الشبكات الثابتة باستخدام UV2 وتفعيل إنشاء خريطة ضوء. أوقات التثبيت سريعة نسبيًا على معالجات الرسوميات المنفصلة بسبب خاصية التثبيت المعتمدة على معالج الرسوميات عادة أقل من دقيقة لمشهد متوسط التعقيد
  • مسبار الانعكاس: توضع يدويًا من المستخدم

خلاصة

  • بالنسبة لألعاب الحاسوب، من الأفضل البدء بـ SDFGI أولًا لأنها تحتاج أقل وقت ضبط، والانتقال لتقنيات GI إذا دعت الحاجة. لتحسين الأداء على المعالجات الرسومية الضعيفة والمدمجة، قم بإضافة خيار لتعطيل SDFGI أو VoxelGI في خيارات اللعبة. يمكن تعطيل SDFGI في مورد البيئة، ويمكن تعطيل VoxelGI عن طريق إخفاء عقد VoxelGI. لتحسين الرسوميات أكثر في الأجهزة الأقوى، قم بإضافة خيار تفعيل SSIL في خيارات اللعبة
  • بالنسبة لألعاب الحاسوب، الخيارات المدعومة الوحيدة هي LightmapGI وReflectionProbes. راجع أيضًا بدائل لتقنيات GI.

انظر أيضًا: يمكن مقارنة تقنيات الإضاءة العامة باستخدام مشروع الإضاءة العامة التجريبي.

أي نوع إضاءة عامة يجب استخدامه على الشبكات والأضواء؟

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

  • استخدم نمط الإضاءة العام ثابت (الافتراضي) من أجل الأشكال الهندسية الثابتة.
  • استخدم نمط الإضاءة العامة معطل من أجل الأشكال الهندسية الديناميكية. لا تساهم الأشكال الهندسية الديناميكية الصغيرة بشكل كبير في الإضاءة غير المباشرة بسبب كون الأشكال الهندسية أصغر من voxel. يمكن محاكاة الإضاءة غير المباشرة للكائنات الصغيرة إذا احتجت ذلك باستخدام عقد OmniLight3D أو SpotLight3D مقرونة كأب للكائن.
  • استخدم نمط الإضاءة العامة ديناميكي من أجل الأشكال الهندسية الديناميكية الكبيرة (مثل قطار متحرك). لاحظ أن هذا لديه تأثير مع VoxelGI، لأن SDFGI وGI خريطة الضوء لا تدعم الإضاءة العامة مع الكائنات الديناميكية.

هذه بعض النصائح لأنماط تثبيت الضوء

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

بدائل لتقنيات GI

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

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

مصادر