Aplikasi Anda dapat mengambil informasi kedalaman melalui ARCore untuk Jetpack XR guna menentukan seberapa dekat objek fisik dengan perangkat.
Membuat sesi ARCore untuk Jetpack XR
Mendapatkan informasi postur kepala melalui sesi ARCore untuk Jetpack XR.
Lihat Memahami siklus proses Sesi untuk mendapatkan
Session
.
Mengonfigurasi sesi
Pengambilan peta kedalaman tidak diaktifkan secara default pada sesi XR. Untuk mengaktifkan pengambilan peta kedalaman, konfigurasikan sesi dan tetapkan
DepthEstimationMode
:
val newConfig = session.config.copy( depthEstimation = Config.DepthEstimationMode.SMOOTH_ONLY, ) when (val result = session.configure(newConfig)) { is SessionConfigureSuccess -> TODO(/* Success! */) is SessionConfigureConfigurationNotSupported -> TODO(/* Some combinations of configurations are not valid. Handle this failure case. */) else -> TODO(/* The session could not be configured. See SessionConfigureResult for possible causes. */) }
Nilai DepthEstimationMode
berikut tersedia:
DISABLED
: Tidak ada informasi tentang kedalaman adegan.RAW_ONLY
: Estimasi kedalaman diaktifkan dengan nilai kedalaman mentah dan keyakinan.SMOOTH_ONLY
: Estimasi kedalaman diaktifkan dengan nilai kedalaman dan keyakinan yang lancar.SMOOTH_AND_RAW
: Estimasi kedalaman diaktifkan dengan nilai kedalaman dan keyakinan mentah dan halus.
Peta kedalaman mentah memberikan estimasi kedalaman dengan akurasi yang lebih tinggi, tetapi gambar kedalaman mentah mungkin tidak menyertakan estimasi kedalaman untuk semua piksel dalam gambar kamera. Sebaliknya, peta kedalaman halus memberikan perkiraan kedalaman untuk setiap piksel, tetapi data kedalaman per piksel mungkin kurang akurat karena penghalusan dan interpolasi perkiraan kedalaman.
Mengambil data kedalaman
Untuk mendapatkan data kedalaman untuk kamera tertentu, gunakan DepthMap
:
val depthMap = DepthMap.left(session) ?: return
Perangkat yang berbeda memiliki kemampuan yang berbeda. Perangkat dengan konfigurasi kamera stereo menampilkan peta kedalaman non-null untuk kamera left
dan right
.
Demikian pula, perangkat dengan kamera tunggal menampilkan peta kedalaman non-null menggunakan
mono
.
Menghitung nilai kedalaman
Anda dapat memperoleh nilai kedalaman dan keyakinan dari peta kedalaman yang dihasilkan:
val depthMap = DepthMap.left(session) ?: return
Bergantung pada setelan konfigurasi yang digunakan, akses peta kedalaman yang sesuai
menggunakan smoothDepthMap
atau rawDepthMap
. Pengukuran yang terdapat dalam peta ini dinyatakan dalam meter. Anda juga dapat mengakses nilai keyakinan menggunakan
smoothConfidenceMap
dan rawConfidenceMap
. Nilai ini berkisar dari 0 hingga 255,
dengan 255 mewakili tingkat keyakinan tertinggi.
Untuk merender peta kedalaman untuk tujuan debug atau visualisasi, lihat Bagian kedalaman aplikasi pengujian ARCore.