استخدام تقدير الإضاءة مع نماذج المشاهد

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

تلميحات الإضاءة والمفاهيم

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

يؤدي "تقدير الإضاءة" معظم المهام نيابةً عنك من خلال توفير بيانات مفصّلة تتيح لك محاكاة إشارات إضاءة مختلفة عند عرض عناصر افتراضية. وهذه الإشارات هي الظلال والإضاءة المحيطة والتظليل والتحديدات المنظّمة والانعكاسات.

ويمكننا وصف هذه الإشارات المرئية كما يلي:

  • الإضاءة المحيطة: الضوء المحيط هو الضوء العام المنفصل الذي يأتي من جميع أنحاء البيئة، وهو إضاءة كل شيء.

  • الظلال. غالبًا ما تكون الظلال اتجاهية وتُطلع المشاهدين على مصادر الضوء.

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

  • لمحة عن المشاهدتان: هذه هي وحدات الأسطح اللامعة التي تعكس مصدر الضوء مباشرةً. تُميِّز العناصر عن تغيير عنصر بالنسبة إلى موقع المشاهد في المشهد.

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

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

استخدام أوضاع تقدير الإضاءة لتحسين الواقعية

تحتوي واجهة برمجة تطبيقات Config.LightEstimationMode على أوضاع تقديرية للإضاءة في البيئة المحيطة بدرجات مختلفة من الدقة ودرجة الدقة.

  • وضع HDR البيئي (ENVIRONMENTAL_HDR). يتألف هذا الوضع من واجهة برمجة تطبيقات تتيح تقدير الإضاءة الواقعي للإضاءة الاتجاهية والظلال والنصوص المميّزة المشاهد والانعكاسات.

  • وضع درجة السطوع (AMBIENT_INTENSITY). يحدد هذا الوضع متوسط كثافة وحدة البكسل ولون الإضاءة لصورة معيّنة. فهو عبارة عن إعداد تقريبي مصمّم لحالات الاستخدام التي لا يكون فيها الإضاءة الدقيقة أمرًا بالغ الأهمية، مثل العناصر التي بها إضاءة مدمجة.

  • DISABLED. إيقاف Config.LightEstimationMode إذا كانت الإضاءة غير ملائمة لبيئة محدّدة، ولا تكون ذات صلة بمنظر أو كائن.

باستخدام الوضع ENVIRONMENTAL_HDR

يستخدم وضع ENVIRONMENTAL_HDR تقنية تعلُّم الآلة لتحليل صورة الكاميرا التي يتم إدخالها وتركيب الإضاءة البيئية لعرض كائن افتراضي.

ويجمع هذا الوضع بين الإضاءة الاتجاهية والتوافقات الكروية المحيطة ومكعّب النطاق العالي الديناميكية لجعل الأجسام الافتراضية تبدو وكأنها جزء من مشهد محدد:

  • تحلِّل الإضاءة الاتجاهات مصدر الضوء الذي يظهر في صورة معيَّنة. ويضيف هذا النوع من الإضاءة أضواءً بعدسة محدّدة الموضع على نحو معقول، كما يلتقط الظلال في اتجاه متّسق مع أجسام حقيقية مرئية أخرى.

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

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

توضّح الصورة التالية مثالاً لكائن افتراضي تم وضعه في مشهد مع تفعيل ENVIRONMENTAL_HDR.

ضبط وضع ENVIRONMENTAL_HDR لمنظر مشهد

لاستخدام ENVIRONMENTAL_HDR من خلال مشهد السيناريو، يجب توسيع فئة ARFragment وإلغاء الضبط على النحو التالي:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.ENVIRONMENTAL_HDR);
  return config;
}

للاطّلاع على مثال حول كيفية عمل هذه الأداة، يُرجى الاطّلاع على نموذج النظام الشمسي. (ينفّذ هذا النموذج ENVIRONMENTAL_HDR بدون استخدام ARFragment).

باستخدام الوضع AMBIENT_INTENSITY

يحدّد الوضع AMBIENT_INTENSITY متوسط كثافة وحدة البكسل ومقاييس تصحيح الألوان لصورة معيّنة. فهو عبارة عن إعداد تقريبي مصمّم للاستخدام في الحالات التي لا تكون فيها الإضاءة الدقيقة ضرورية، مثل العناصر التي بها إضاءة مضمّنة.

  • تسجّل كثافة وحدات البكسل متوسط كثافة وحدة الإضاءة في المنظر، وذلك عند تطبيقها على كائن افتراضي بالكامل.

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

ضبط وضع AMBIENT_INTENSITY لمنظر مشهد

لاستخدام AMBIENT_INTENSITY من خلال مشهد السيناريو، يجب توسيع فئة ARfragment وإلغاء الضبط على النحو التالي:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.AMBIENT_INTENSITY);
  return config;
}