التعمق يزيد من الواقعية

الأدلة الخاصة بالمنصة

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

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

حالات استخدام التطوير باستخدام Depth API

يمكن أن توفّر Depth API ميزة حجب الأجسام وتحسين تجربة الغمر والتفاعلات الجديدة التي تُحسّن من واقعية تجارب الواقع المعزّز. في ما يلي بعض الطرق التي يمكنك من خلالها استخدامها في مشاريعك الخاصة. للحصول على أمثلة على استخدام ميزة "العمق"، استكشِف عيّنات المشاهد في ARCore Depth Lab، التي توضّح طرقًا مختلفة للوصول إلى بيانات العمق. تطبيق Unity هذا مفتوح المصدر على GitHub.

تفعيل ميزة حجب المحتوى

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

تحويل مشهد

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

المسافة وعمق الحقل

هل تريد إظهار أنّ هناك شيئًا بعيدًا؟ يمكنك استخدام قياس المسافة وإضافة تأثيرات عمق المجال، مثل تمويه خلفية أو مقدمة المشهد، باستخدام Depth API.

السماح للمستخدمين بالتفاعل مع عناصر الواقع المعزّز

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

تحسين اختبارات النتائج

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

في المثال التالي، تمثّل شخصيات Andy الخضراء اختبارات الاصطدام العادية على مستوى الطائرة، بينما تمثّل شخصيات Andy الحمراء اختبارات الاصطدام في العمق.

توافق الجهاز

لا تتوفّر واجهة برمجة التطبيقات Depth API إلا على الأجهزة التي تتضمّن قدرة معالجة تتيح استخدام ميزة عمق الصورة، ويجب تفعيلها يدويًا في ARCore، كما هو موضّح في مقالة تفعيل ميزة "العمق".

قد توفّر بعض الأجهزة أيضًا أداة استشعار للكشف عن العمق، مثل أداة استشعار مدّة الطيران (ToF). يُرجى الرجوع إلى صفحة الأجهزة المتوافقة مع ARCore للحصول على قائمة محدّثة بالأجهزة المتوافقة مع Depth API وقائمة بالأجهزة التي تحتوي على أداة استشعار عمق متوافقة، مثل أداة استشعار ToF.

الصور المفصّلة

تستخدِم واجهة برمجة التطبيقات Depth API خوارزمية "العمق من خلال الحركة" لإنشاء صور ذات عمق، ما يوفّر عرضًا ثلاثي الأبعاد للعالم. يرتبط كل بكسل في صورة ذات عمق بقياس المسافة بين المشهد والكاميرا. تلتقط هذه الخوارزمية صورًا متعددة للجهاز من زوايا مختلفة وتقارنها لتقدير المسافة إلى كل بكسل عندما يحرك المستخدم هاتفه. وتستخدم هذه الميزة تقنية تعلُّم الآلة بشكل انتقائي لزيادة معالجة العمق، حتى مع أقل حركة من المستخدم. ويستفيد أيضًا من أي أجهزة إضافية قد يمتلكها جهاز المستخدم. إذا كان الجهاز مزوّدًا بجهاز استشعار مخصّص للعمق، مثل جهاز استشعار الوقت إلى الارتداد (ToF)، تدمج الخوارزمية البيانات تلقائيًا من جميع المصادر المتاحة. ويؤدي ذلك إلى تحسين صورة العمق الحالية وتوفيرها حتى عندما تكون الكاميرا ثابتة. وتوفّر هذه الميزة أيضًا عمقًا أفضل على الأسطح التي تحتوي على ميزات قليلة أو لا تحتوي على أي ميزات، مثل الجدران البيضاء، أو في المشاهد الديناميكية التي تتضمّن أشخاصًا أو أجسامًا متحرّكة.

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

التقاط العمق من خلال الحركة

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

الحصول على صور ذات عمق

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

الخطوات التالية

  • اطّلِع على ARCore Depth Lab الذي يعرض طرقًا مختلفة للوصول إلى بيانات العمق.