خريطة الإضاءة

مكعب مع خريطة إضاءة بسيطة (موضحة على اليمين).

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

تاريخ

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

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

القيود

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

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

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

الخلق

عند إنشاء خرائط الإضاءة، يمكن استخدام أي نموذج إضاءة، لأن الإضاءة تُحسب مسبقًا بالكامل، ولا يُعد الأداء الفوري ضروريًا دائمًا. تُستخدم عادةً تقنيات متنوعة، منها التظليل المحيطي ، والإضاءة المباشرة مع حواف الظل المُعينة، وحلول الإضاءة المرتدة بتقنية الإشعاع الكامل [ 4 ] . تتضمن حزم البرامج ثلاثية الأبعاد الحديثة إضافات خاصة لتطبيق إحداثيات UV لخرائط الإضاءة، ودمج أسطح متعددة في صفائح نسيجية واحدة، وعرض الخرائط نفسها. بدلاً من ذلك، قد تتضمن مسارات محركات الألعاب أدوات مخصصة لإنشاء خرائط الإضاءة. ومن الاعتبارات الإضافية استخدام نسيج DXT المضغوط ، والذي قد يُسبب تشوهات في الصورة - يجب ألا تتصادم الأسطح الفردية على أجزاء 4x4 بكسل للحصول على أفضل النتائج.

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

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

يمكن استخدام رسم خرائط الفوتونات لحساب الإضاءة العالمية لخرائط الضوء.

البدائل

إضاءة فيرتكس

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

رسم خرائط الانقطاعات

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

انظر أيضاً

مراجع

  1. أبرش، مايكل. "نموذج إضاءة لعبة Quake: التخزين المؤقت للسطح" . أخبار بلوز . تم الاسترجاع في 7 سبتمبر 2015 .
  2. تشانا، كيشاف (21 يوليو 2003). "فليب كود - رسم الخرائط الضوئية - النظرية والتطبيق" . www.flipcode.com . تاريخ الاسترجاع: 7 سبتمبر 2015 .
  3. "ورقة بيضاء حول تجميع القوام" (ملف PDF) . nvidia.com . NVIDIA . 2004-07-07 . تم الاطلاع عليه بتاريخ 2015-09-07 .
  4. جيسون ميتشل، غاري ماكتاغارت، كريس غرين، التظليل في محرك سورس من شركة فالف . ( ملف PDF ) تم الاطلاع عليه في 7 يونيو 2019.
  5. ١٦ نوفمبر ٢٠٠٣. خرائط الإضاءة الديناميكية في OpenGL . Joshbeam.com. تم الاطلاع عليه في ٧ يوليو ٢٠١٤.