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

في الإصدار الأول من ARKit ، كان من الممكن تتبع حركة الهاتف في الفضاء ، لتحديد كمية الضوء ودفئته حوله ، وكذلك للحصول على معلومات حول الطائرات الأفقية. أضاف ARKit 1.5 ، الذي تم إصداره مع iOS 11.3 ، جودة صورة محسنة ، تعريف الطائرات العمودية ، والتعرف على الصور الثابتة ثنائية الأبعاد ، والتركيز التلقائي. دعنا نرى ما تمت إضافته في الإصدار 2.0.
حفظ واستعادة بطاقة AR
لقد أتيحت لنا الفرصة لحفظ خريطة البيئة مع الأشياء المتباينة للواقع المعزز. باستخدام بطاقة ، يمكنك التهيئة باستخدامها جلسة AR ، وبعد ذلك ستظهر الكائنات الموضوعة مسبقًا في الأماكن الصحيحة. يمكن أيضًا نقل البطاقة المحفوظة إلى الخادم واستخدامها على أجهزة أخرى.
يتم تنفيذها على ARSession
: لقد getCurrentWorldMapWithCompletionHandler
طريقة getCurrentWorldMapWithCompletionHandler
، والتي تُرجع ARWorldMap
. يتم تخزين المعلومات حول نقاط التحكم داخل هذا الكائن ، بمساعدة ARKit التي يمكنها استعادة الإحداثي الصفري للمشهد ، بالإضافة إلى صفيف ARAnchors
الذي يمكن إرفاق الكائنات به. يمكن حفظ ARWorldMap
أو إرسالها إلى مكان ما. لاستعادة الخريطة ، تحتاج إلى نقلها إلى الحقل initialWorldMap
الخاص ARSessionConfiguration
قبل بدء الجلسة. بعد البدء ، ستتحول حالة الجلسة إلى .limited
مع السبب. بمجرد قيام ARKit بتجميع نقاط كافية للاستعادة ، سيتم تعيين الإحداثي الصفري على الموضع الصحيح .normal
حالة .normal
الحالة .normal
.
للحصول على أفضل أداء ، توصي Apple بما يلي:
- امسح المشهد من زوايا مختلفة. ستكون مجموعة النقاط أكبر وأكثر دقة.
- يجب أن تكون البيئة ثابتة ونسيج جيد ؛
- يجب أن تكون مجموعة من النقاط كثيفة إلى حد ما.
لا تحتاج إلى مراقبة هذه المعلمات ARFrame
، نظرًا لأن ARFrame
يحتوي حاليًا على حقل worldMappingStatus
. ولكن عليك أن تأخذها بعين الاعتبار عند تصميم التطبيق.
الواقع المعزز المتعدد
سمحت آلية حفظ خريطة البيئة بمزامنة نظام الإحداثيات بين عدة أجهزة. بمعرفة موضع كل جهاز بالنسبة لخريطة البيئة ، يمكنك بناء سيناريوهات متعددة المستخدمين.
في العرض التقديمي ، تم عرض لعبة SwiftShot ، والتي تحتاج فيها إلى إطلاق النار من مقلاعك على مقلاع الخصم.

اللعبة مكتوبة في Swift + SceneKit. تتم مزامنة إجراءات المستخدم باستخدام إطار عمل MultipeerConnectivity . يمكن تنزيل مصادر التطبيق هنا .
انعكاس بيئي
عند إضافة كائن معدني للواقع الافتراضي إلى المشهد ، أود أن أرى فيه انعكاسًا لأشياء من العالم الحقيقي. للقيام بذلك ، ARWorldTrackingConfiguration
على حقل environmentTexturing
. إذا كنت تستخدم SceneKit
كمحرك وقمت بتعيين حقل .automatic
على .automatic
، فستحصل على النتيجة التالية:

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

للحصول على تتبع أفضل ، تحتاج إلى استخدام صور متناقضة ذات بنية جيدة مع ميزات مميزة. سيحذرك Xcode إذا لم يتم اتباع هذا المطلب.
لتتبع الصور ، تحتاج إلى استخدام ARImageTrackingConfiguration
. يتم تمرير صفيف trackingImages
إلى التكوين maximumNumberOfTrackedImages
. سيتم إرجاع إحداثيات الصورة كـ ARImageAnchor
.
تتبع الأجسام ثلاثية الأبعاد الثابتة
أضاف أيضًا دعمًا للتعرف على الكائنات ثلاثية الأبعاد الثابتة. قبل التعرف ، يجب فحص الكائن. يمكنك القيام بذلك باستخدام تطبيق من Apple . يجب أن يكون الكائن المراد مسحه ضوئيًا صلبًا وغير لامع ومحكم بشكل جيد.
لتتبع الكائنات ، قم بإنشاء ARReferenceObject من دليل ملف أو مورد وإضافته إلى ARWorldTrackingConfiguration.detectionObjects
. معلومات حول الأشياء التي ARFrame
في ARFrame
.
على سبيل المثال ، أظهر العرض التقديمي عرض معلومات حول التمثال الصغير في المتحف في الواقع المعزز.
تتبع الوجه
في الإصدارات السابقة ، كان من الممكن الحصول على إحداثيات وتناوب الوجه ، وشبكة متعددة الأضلاع للوجه ومجموعة من الخلطات (51 عاطفة مع تقدم من صفر إلى واحد). في الإصدار الثاني ، سنرى ثلاثة ابتكارات:
تعريف الضوء الموجه.
يستخدم ARKit 2 صورة وجه كمصدر لمعلومات الضوء. باستخدامه ، يمكنك تحديد شدة الضوء ودرجة حرارته واتجاهه. هذا سيجعل الأقنعة أكثر واقعية ؛
تتبع اللغة.
تمت إضافة اللسان إلى tongueOut
، مما يدل على [0،1] درجة "ارتفاع" اللغة. من نفسي ، يمكنني أن أضيف أن جميع أصدقائي تقريبًا حاولوا إظهار اللغة ، التي لعبت بها لعبة animoji ؛
تتبع العين.
يحتوي ARFaceAnchor على ثلاثة حقول جديدة: leftEyeTransform
و rightEyeTransform
و lookAtPoint
. هناك بالفعل عروض توضيحية على الإنترنت مع أمثلة الاستخدام:
تحسينات عامة في الإصدار الجديد:
- تسريع وتهيئة الطائرات وتعريفها ؛
- أصبح تتبع الهاتف في الفضاء وتحديد الطائرات أكثر دقة ؛
- تحسنت دقة تحديد حدود الطائرات مع توسيع الطائرة ؛
- تمت إضافة دعم نسبة العرض إلى الارتفاع 4: 3 (الآن سيتم تحديد هذا التنسيق افتراضيًا).
سيتم تطبيق جميع التحسينات تلقائيًا ، باستثناء الانتقال إلى نسبة العرض إلى الارتفاع 4: 3. بالنسبة للأخيرة ، تحتاج إلى إعادة إنشاء التطبيق باستخدام SDK الجديد.
إذا كانت المعلومات مفيدة لك ، فدعمني بالسهم لأعلى. وأنا على استعداد للإجابة على الأسئلة في التعليقات.