الأدلة الخاصة بالأنظمة الأساسية
Android (Kotlin/Java)
Android NDK (C)
الانسجام (AR Foundation)
Unreal Engine
وبصفتك مطوّر تطبيقات الواقع المعزّز، عليك أن تمزج بسلاسة بين الواقع الافتراضي والواقعي للمستخدمين. عندما يضع المستخدم عنصرًا افتراضيًا في المشهد، يريد أن يبدو كما لو كان ينتمي إلى العالم الواقعي. إذا كنت بصدد إنشاء تطبيق يتيح للمستخدمين التسوّق لشراء الأثاث، عليك أن تمنحهم الثقة بأنّ الكرسي المخصّص للاسترخاء الذي هم على وشك شرائه سيناسب مساحتهم.
تساعد واجهة برمجة التطبيقات Depth API كاميرا الجهاز في فهم حجم الأجسام الحقيقية وشكلها في المشهد. وهي تُنشئ صورًا ثلاثية الأبعاد أو خرائط ثلاثية الأبعاد، ما يضيف لمسة واقعية إلى تطبيقاتك. يمكنك استخدام المعلومات المقدّمة في صورة العمق لتقديم تجارب مستخدم غامرة وواقعية.
حالات الاستخدام لتطوير التطبيقات باستخدام Depth API
يمكن لواجهة Depth API تعزيز تظليل العناصر وتحسين الانغماس في التفاصيل والتفاعلات الجديدة التي تعزّز واقعية تجارب الواقع المعزّز. في ما يلي بعض الطرق التي يمكنك من خلالها استخدامها في مشاريعك الخاصة. للحصول على أمثلة على استخدام ميزة "العمق"، استكشِف عيّنات المشاهد في ARCore Depth Lab، التي توضّح طرقًا مختلفة للوصول إلى بيانات العمق. تطبيق Unity هذا مفتوح المصدر على GitHub.
تفعيل التظليل
لضمان تجربة غامرة باستخدام تقنية الواقع المعزّز، لا بد من توفّر خلفية أو كائن افتراضي خلف أجسام حقيقية بدقة. لنفترض أنّ هناك مستخدمًا يريد وضع شخصية Andy الافتراضية في مشهد يحتوي على صندوق بجانب باب. يتم عرضه بدون انسداد، سيتداخل آندي بشكل غير واقعي مع حافة الجذع. إذا كنت تستخدم عمق المشهد وكنت على دراية بالمسافة التي يبعدها "أندي" الافتراضي عن الأجسام المحيطة به، مثل الجذع الخشبي، يمكنك عرض "أندي" بدقة باستخدام حجب الأجسام، ما يجعله يبدو أكثر واقعية في محيطه.
تحويل مشهد
يمكنك نقل المستخدم إلى عالم جديد وغامض من خلال عرض رقاقات ثلجية افتراضية تستقر على أذرع الأرائك ووسائدها، أو من خلال بث ضباب كثيف في غرفة المعيشة. استخدِم ميزة "العمق" لإنشاء مشهد تتفاعل فيه الأضواء الافتراضية وتختبئ خلفه وتُعيد إضاءة العناصر الحقيقية.
المسافة وعمق الحقل
هل تريد إظهار أنّ هناك شيئًا بعيدًا؟ يمكنك استخدام قياس المسافة وإضافة تأثيرات عمق المجال، مثل تمويه الخلفية أو المقدّمة في المشهد، باستخدام Depth API.
السماح للمستخدمين بالتفاعل مع عناصر الواقع المعزّز
اسمح للمستخدمين بـ "لمس" العالم من خلال تطبيقك من خلال السماح للمحتوى الافتراضي بالتفاعل مع العالم الواقعي من خلال الاصطدام والقوانين الفيزيائية. اجعل الكائنات الافتراضية تتخطى عقبات حقيقية، أو وجّه كرات الطلاء الافتراضية إلى شجرة حقيقية. عند الجمع بين تصادم الأجسام المستند إلى العمق وقوانين الفيزياء في الألعاب، يمكنك إضفاء الحيوية على تجربة المستخدم.
تحسين اختبارات النتائج
يمكن استخدام العمق لتحسين نتائج اختبار الارتطام. لا تعمل اختبارات الاصطدام بالمستوى إلا على الأسطح المستوية التي تحتوي على نسيج، في حين أنّ اختبارات الاصطدام بالعمق أكثر تفصيلاً وتعمل حتى على المناطق غير المستوية وتلك التي تحتوي على نسيج منخفض. ويعود السبب في ذلك إلى أنّ اختبارات الارتطام بالعناصر في العمق تستخدِم معلومات العمق من المشهد لتحديد العمق الصحيح واتجاه النقطة.
في المثال التالي، تمثّل النقاط الخضراء اختبارات الاصطدام العادية للمستوى، بينما تمثّل النقاط الحمراء اختبارات الاصطدام في العمق.
توافق الجهاز
لا تتوفّر واجهة برمجة التطبيقات Depth API إلا على الأجهزة التي تتضمّن قدرة معالجة تتيح استخدام ميزة عمق الصورة، ويجب تفعيلها يدويًا في ARCore، كما هو موضّح في مقالة تفعيل ميزة "العمق".
قد توفّر بعض الأجهزة أيضًا أداة استشعار للكشف عن العمق، مثل أداة استشعار مدّة الطيران (ToF). يُرجى الرجوع إلى صفحة الأجهزة المتوافقة مع ARCore للحصول على قائمة محدّثة بالأجهزة المتوافقة مع Depth API وقائمة بالأجهزة التي تتضمّن أداة استشعار عمق متوافقة، مثل أداة استشعار ToF.
الصور المفصّلة
تستخدِم واجهة برمجة التطبيقات Depth API خوارزمية "العمق من خلال الحركة" لإنشاء صور ذات عمق، ما يوفّر عرضًا ثلاثي الأبعاد للعالم. ترتبط كل وحدة بكسل في صورة عمق بقياس لمدى بُعد المنظر عن الكاميرا. تلتقط هذه الخوارزمية صورًا متعددة للجهاز من زوايا مختلفة وتقارنها لتقدير المسافة إلى كل بكسل عندما يحرك المستخدم هاتفه. ويتم فيها استخدام تكنولوجيا تعلُّم الآلة بشكل انتقائي لزيادة المعالجة العميقة، حتى بأقل حركة للمستخدم. ويستفيد أيضًا من أي أجهزة إضافية قد يمتلكها جهاز المستخدم. إذا كان الجهاز مزوّدًا بجهاز استشعار مخصّص للعمق، مثل جهاز استشعار الوقت إلى الارتداد (ToF)، تدمج الخوارزمية البيانات تلقائيًا من جميع المصادر المتاحة. ويؤدي ذلك إلى تحسين صورة العمق الحالية وتوفيرها حتى عندما تكون الكاميرا ثابتة. وتوفّر هذه الميزة أيضًا عمقًا أفضل على الأسطح التي تحتوي على ميزات قليلة أو لا تحتوي على أي ميزات، مثل الجدران البيضاء، أو في المشاهد الديناميكية التي تظهر فيها أشخاص أو أجسام متحرّكة.
تعرض الصور التالية صورة كاميرا لمدخل مع دراجة على الحائط، وتصور لصورة العمق التي تم إنشاؤها من صور الكاميرا. المناطق باللون الأحمر أقرب إلى الكاميرا، والمناطق باللون الأزرق أبعد.
التقاط العمق من خلال الحركة
تصبح بيانات العمق متاحة عندما يحرك المستخدم جهازه. يمكن أن تحصل الخوارزمية على تقديرات دقيقة وفعّالة للعمق من 0 إلى 65 مترًا. تظهر النتائج الأكثر دقة عندما يكون الجهاز على بُعد نصف متر إلى خمسة أمتار تقريبًا من المشهد الواقعي. ستؤدي التجارب التي تشجع المستخدم على تحريك جهازه أكثر إلى تحقيق نتائج أفضل.
الحصول على صور ذات عمق
باستخدام Depth API، يمكنك استرداد صور العمق التي تتطابق مع كل إطار من الكاميرا. تحتوي الصورة ذات العمق المكتسب على الطابع الزمني وعنصرَي الرؤية نفسيهما مثل الكاميرا. لا تتوفّر بيانات العمق الصالحة إلا بعد أن يبدأ المستخدم في تحريك جهازه، لأنّه يتم الحصول على بيانات العمق من خلال الحركة. وسيتم ربط الأسطح التي تحتوي على عناصر قليلة أو لا تحتوي على أي عناصر، مثل الجدران البيضاء، بالعمق غير الدقيق.
الخطوات التالية
- اطّلِع على ARCore Depth Lab الذي يعرض طرقًا مختلفة للوصول إلى بيانات العمق.