Dua minggu telah berlalu sejak akhir konferensi WWDC. Sesi telah ditonton, dokumentasi telah dibaca kembali, proyek demo telah dilakukan, yang berarti Anda dapat mengisi semua informasi yang dikumpulkan dalam sebuah artikel.

Dalam versi pertama ARKit, dimungkinkan untuk melacak pergerakan ponsel di ruang angkasa, untuk menentukan jumlah dan kehangatan cahaya di sekitar, dan juga untuk memperoleh informasi tentang bidang horisontal. ARKit 1.5, yang dirilis dengan iOS 11.3, meningkatkan kualitas gambar, menambahkan definisi bidang vertikal, pengenalan gambar 2D statis, dan fokus otomatis. Mari kita lihat apa yang ditambahkan di versi 2.0.
Menyimpan dan mengembalikan kartu AR
Kami diberi kesempatan untuk menyelamatkan peta lingkungan bersama dengan objek spasi dari augmented reality. Memiliki kartu, Anda dapat menginisialisasi menggunakan sesi AR, setelah itu objek yang ditempatkan sebelumnya akan muncul di tempat yang tepat. Kartu yang disimpan juga dapat ditransfer ke server dan digunakan pada perangkat lain.
Diimplementasikan seperti ini: ARSession
memiliki metode getCurrentWorldMapWithCompletionHandler
, yang mengembalikan ARWorldMap
. Informasi tentang titik kontrol disimpan di dalam objek ini, dengan bantuan ARKit yang dapat mengembalikan koordinat nol adegan, serta array ARAnchors
yang objek dapat dilampirkan. ARWorldMap
dapat disimpan atau dikirim ke suatu tempat. Untuk memulihkan peta, Anda perlu mentransfernya ke bidang initialWorldMap
dari ARSessionConfiguration
sebelum memulai sesi. Setelah memulai, status sesi akan beralih ke .limited
dengan alasan .relocalizing
. Segera setelah ARKit mengumpulkan cukup poin untuk pemulihan, koordinat nol akan ditetapkan ke posisi yang benar dan status sesi akan beralih ke .normal
.
Untuk kinerja terbaik, Apple merekomendasikan hal berikut:
- Memindai pemandangan dari sudut yang berbeda. Array poin akan lebih besar dan lebih akurat;
- lingkungan harus statis dan bertekstur dengan baik;
- Array poin harus cukup padat.
Anda tidak perlu memonitor parameter ini ARFrame
, karena sekarang ARFrame
memiliki bidang worldMappingStatus
. Tetapi Anda perlu mempertimbangkannya saat mendesain aplikasi.
Multiplayer Augmented Reality
Mekanisme penghematan peta lingkungan diizinkan untuk menyinkronkan sistem koordinat antara beberapa perangkat. Mengetahui posisi masing-masing perangkat relatif terhadap peta lingkungan, Anda dapat membuat skenario multi-pengguna.
Pada presentasi, permainan SwiftShot ditunjukkan, di mana Anda harus menembak dari ketapel ke ketapel lawan.

Game ini ditulis dalam Swift + SceneKit. Tindakan pengguna disinkronkan menggunakan kerangka kerja MultipeerConnectivity . Sumber aplikasi dapat diunduh di sini .
Refleksi lingkungan
Menambahkan objek logam dari realitas virtual ke dalam adegan, saya ingin melihatnya sebagai refleksi dari objek-objek dari dunia nyata. Untuk melakukan ini, ARWorldTrackingConfiguration
bidang environmentTexturing
. Jika Anda menggunakan SceneKit
sebagai mesin dan menyetel bidang environmentTexturing
ke .automatic
, Anda mendapatkan hasil berikut:

Menerima gambar dari kamera, ARKit membangun peta kubik dengan tekstur lingkungan. Informasi yang tidak termasuk dalam frame dihasilkan menggunakan algoritma pembelajaran mesin.
Lacak Gambar Bergerak 2D
Di ARKit 1.5, hanya pelacakan gambar statis yang muncul. Di versi kedua, batasan dihapus, dan sekarang Anda bisa mendapatkan koordinat gambar bergerak. Fungsionalitas serupa dulu disediakan oleh Vuforia SDK. Pada presentasi, sebagai contoh penggunaan, mereka menunjukkan penggantian foto pada video dalam bingkai foto:

Untuk pelacakan yang lebih baik, Anda perlu menggunakan gambar yang kontras dan bertekstur baik dengan fitur yang berbeda. Xcode akan memperingatkan Anda jika persyaratan ini tidak diikuti.
Untuk melacak gambar, Anda perlu menggunakan ARImageTrackingConfiguration
. Array trackingImages
diteruskan ke konfigurasi dan maximumNumberOfTrackedImages
. Koordinat gambar akan dikembalikan sebagai ARImageAnchor
.
Melacak Objek 3D Statis
Juga menambahkan dukungan untuk pengenalan objek 3D statis. Sebelum pengakuan, objek harus dipindai. Anda dapat melakukan ini menggunakan aplikasi dari Apple . Objek yang akan dipindai harus solid, matte dan bertekstur dengan baik.
Untuk melacak objek, buat ARReferenceObject dari file atau direktori sumber daya dan tambahkan ke ARWorldTrackingConfiguration.detectionObjects
. Informasi tentang objek yang akan Anda terima di ARFrame
.
Sebagai contoh, presentasi menunjukkan tampilan informasi tentang patung di museum dalam augmented reality.
Pelacakan wajah
Dalam versi sebelumnya, dimungkinkan untuk mendapatkan koordinat dan rotasi wajah, mesh poligon wajah dan berbagai campuran (51 emosi dengan kemajuan dari nol ke satu). Dalam versi kedua, kita akan melihat tiga inovasi:
definisi cahaya directional.
ARKit 2 menggunakan gambar wajah sebagai sumber informasi cahaya. Dengannya, Anda dapat menentukan intensitas, suhu, dan arah cahaya. Ini akan membuat topeng lebih realistis;
pelacakan bahasa.
LidahOut ditambahkan ke tongueOut
, yang menunjukkan [0,1] tingkat βtinggiβ bahasa. Dari saya sendiri, saya dapat menambahkan bahwa hampir semua teman saya mencoba menunjukkan bahasa, kepada siapa saya bermain dengan animoji;
pelacakan mata.
ARFaceAnchor memiliki tiga bidang baru: leftEyeTransform
, rightEyeTransform
dan lookAtPoint
. Sudah ada demo di Internet dengan contoh penggunaan:
Perbaikan umum dalam versi baru:
- inisialisasi dan definisi pesawat telah dipercepat;
- pelacakan telepon di ruang dan penentuan pesawat telah menjadi lebih tepat;
- akurasi penentuan batas pesawat dengan perluasan pesawat telah meningkat;
- Dukungan rasio aspek 4: 3 ditambahkan (sekarang format ini akan dipilih secara default).
Semua peningkatan, kecuali transisi ke rasio aspek 4: 3, akan diterapkan ke aplikasi Anda secara otomatis. Untuk yang terakhir, Anda perlu membangun kembali aplikasi dengan SDK baru.
Jika informasi itu berguna bagi Anda, dukung saya dengan panah atas. Dan saya siap menjawab pertanyaan di komentar.