Bagikan melalui


OpenXR

Logo OpenXR

OpenXR adalah standar API bebas royalti terbuka dari Khronos, menyediakan mesin dengan akses asli ke berbagai perangkat di seluruh spektrum realitas campuran.

Anda dapat mengembangkan menggunakan OpenXR pada headset VR imersif HoloLens 2 atau Windows Mixed Reality di desktop. Jika Anda tidak memiliki akses ke headset, Anda dapat menggunakan Emulator HoloLens 2 atau Simulator Windows Mixed Reality sebagai gantinya.

Mengapa OpenXR?

Dengan OpenXR, Anda dapat membangun mesin yang menargetkan kedua perangkat holografik, seperti HoloLens 2, dan perangkat VR imersif, seperti headset Windows Mixed Reality untuk PC desktop. OpenXR memungkinkan Anda menulis kode setelah itu portabel di berbagai platform perangkat keras.

OpenXR API menggunakan loader untuk menghubungkan aplikasi Anda langsung ke dukungan platform asli headset Anda. Pengguna akhir mendapatkan performa maksimum dan latensi minimum, baik mereka menggunakan Windows Mixed Reality atau headset lainnya.

Apa itu OpenXR?

OpenXR API menyediakan prediksi pose inti, waktu bingkai, dan fungsionalitas input spasial yang Anda butuhkan untuk membangun mesin yang dapat menargetkan perangkat holografik dan imersif.

Untuk mempelajari tentang OpenXR API, lihat spesifikasi OpenXR 1.0, referensi API, dan panduan referensi cepat. Untuk informasi selengkapnya, lihat halaman Khronos OpenXR.

Untuk menargetkan kumpulan fitur lengkap HoloLens 2, Anda juga menggunakan ekstensi OpenXR lintas vendor dan vendor khusus vendor. Ini memungkinkan fitur seperti pelacakan tangan artikulasi, pelacakan mata, pemetaan spasial, dan jangkar spasial. Untuk informasi selengkapnya, lihat bagian Peta jalan pada ekstensi yang akan datang akhir tahun ini.

OpenXR bukan mesin realitas campuran. Sebagai gantinya, OpenXR memungkinkan mesin seperti Unity dan Unreal untuk menulis kode portabel sekali yang kemudian dapat mengakses fitur platform asli perangkat holografik atau imersif pengguna, vendor apa pun yang membangun platform tersebut.

Peta Strategi

Spesifikasi OpenXR mendefinisikan mekanisme ekstensi yang memungkinkan pelaksana runtime mengekspos fungsionalitas lain di luar fitur inti yang ditentukan dalam spesifikasi OpenXR 1.0 dasar.

Ada tiga jenis ekstensi OpenXR:

  • Ekstensi vendor (misalnya, XR_MSFT_...): Memungkinkan inovasi per vendor dalam fitur perangkat keras atau perangkat lunak. Setiap vendor runtime dapat memperkenalkan dan mengirim ekstensi vendor kapan saja.
  • Ekstensi vendor eksperimental (misalnya, XR_MSFTX_...): Ekstensi vendor eksperimental sedang dipratinjau untuk mengumpulkan umpan balik. XR_MSFTX_... ekstensi hanya untuk perangkat pengembang dan dihapus saat ekstensi nyata dikirim. Untuk bereksperimen dengannya, Anda dapat mengaktifkan ekstensi pratinjau di perangkat pengembang Anda.
  • Ekstensi lintas vendor EXT : Ekstensi lintas vendor yang didefinisikan dan diterapkan oleh beberapa perusahaan. Grup perusahaan yang tertarik dapat memperkenalkan ekstensi EXT kapan saja.
  • Ekstensi resmi KHR : Ekstensi Khronos resmi disahkan sebagai bagian dari rilis spesifikasi inti. Ekstensi KHR dicakup oleh lisensi yang sama dengan spesifikasi inti itu sendiri.

Windows Mixed Reality OpenXR Runtime mendukung serangkaian MSFT ekstensi dan EXT yang menghadirkan serangkaian lengkap fitur HoloLens 2 ke aplikasi OpenXR:

Area fitur Ketersediaan ekstensi
Sistem + sesi Spesifikasi inti OpenXR 1.0:
XrInstance, , XrSystemIdXrSession
Ruang referensi (tampilan, lokal, tahap) Spesifikasi inti OpenXR 1.0:
XrSpace
Melihat konfigurasi (mono, stereo) Spesifikasi inti OpenXR 1.0:
XrView...
Pengaturan waktu bingkai swapchains + Spesifikasi inti OpenXR 1.0:
XrSwapchain... + xrWaitFrame
Lapisan komposisi
(proyeksi, quad)
Spesifikasi inti OpenXR 1.0:
XrCompositionLayer... + xrEndFrame
Input dan haptik Spesifikasi inti OpenXR 1.0:
XrAction...
Integrasi Direct3D 11/12 Ekstensi resmi KHR dirilis:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Ruang referensi tidak terbatas
(pengalaman berskala dunia)
MSFT ekstensi dirilis:
XR_MSFT_unbounded_reference_space
Jangkar spasial

MSFT ekstensi dirilis:
XR_MSFT_spatial_anchor

MSFT ekstensi dirilis dalam runtime 108: (hanya HoloLens 2)
XR_MSFT_spatial_anchor_persistence

Interaksi tangan
(genggaman/bidik pose, ketuk udara, genggaman)

Hanya HoloLens 2

MSFT ekstensi dirilis:
XR_MSFT_hand_interaction
Artikulasi tangan + jala tangan

Hanya HoloLens 2

EXT ekstensi dirilis:
XR_EXT_hand_tracking

MSFT ekstensi dirilis:
XR_MSFT_hand_tracking_mesh

Tatapan mata

Hanya HoloLens 2

EXT ekstensi dirilis:
XR_EXT_eye_gaze_interaction
Pengambilan Realitas Campuran
(render ketiga dari kamera PV)

Hanya HoloLens 2

MSFT ekstensi dirilis:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Profil interaksi pengontrol gerakan
(Samsung Odyssey dan HP Reverb G2)
MSFT ekstensi yang dirilis dalam runtime 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Model render pengontrol gerakan MSFT ekstensi dirilis dalam runtime 104:
XR_MSFT_controller_model
Pemahaman adegan (bidang, jala)

Hanya HoloLens 2

MSFT ekstensi dirilis dalam runtime 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Penanda adegan (Kode QR)

Hanya HoloLens 2

MSFT ekstensi dirilis dalam runtime 113:
XR_MSFT_scene_marker
Mode reproyeksi lapisan komposisi
(proyeksi ulang planar otomatis atau orientasi-saja)
MSFT ekstensi dirilis dalam runtime 106:
XR_MSFT_composition_layer_reprojection
Interop dengan SDK Mixed Reality lainnya
(misalnya, QR)
MSFT ekstensi dirilis:
XR_MSFT_spatial_graph_bridge
Interop dengan UWP CoreWindow API
(misalnya, untuk keyboard/mouse)
MSFT ekstensi dirilis dalam runtime 103:
XR_MSFT_holographic_window_attachment
Interop dengan API Mixed Reality WinRT warisan
(misalnya, SpatialAnchorTransferManager))

MSFT ekstensi dirilis dalam runtime 105:
XR_MSFT_perception_anchor_interop

Ekstensi lintas vendor lainnya

Ekstensi resmi KHR dirilis:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT ekstensi dirilis:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Meskipun beberapa ekstensi ini dapat dimulai sebagai ekstensi khusus MSFT vendor, Microsoft dan vendor runtime OpenXR lainnya bekerja sama untuk merancang lintas vendor EXT atau KHR ekstensi untuk banyak area fitur ini. Ekstensi lintas vendor membuat kode yang Anda tulis untuk fitur tersebut portabel di seluruh vendor runtime, seperti halnya spesifikasi inti.

Di mana Anda dapat menggunakan OpenXR?

Cuplikan layar Minecraft yang dimainkan oleh pengguna yang mengenakan headset realitas campuran

Mesin RenderDragon baru Minecraft telah membangun dukungan VR desktopnya menggunakan OpenXR!

Microsoft telah bekerja sama dengan Unity dan Epic Games untuk memastikan masa depan realitas campuran terbuka, bukan hanya untuk HoloLens 2, tetapi di seluruh luas PC VR, termasuk headset Reverb G2 baru HP. OpenXR mendukung dukungan VR lintas vendor untuk pengiriman judul utama hari ini, seperti Minecraft dan Microsoft Flight Simulator! Untuk informasi selengkapnya tentang pengembangan untuk HoloLens (generasi ke-1 ), lihat catatan rilis.

Untuk mempelajari bagaimana Anda dapat memulai dengan OpenXR di Unity, Unreal Engine atau mesin Anda sendiri, baca terus!

OpenXR di Unity

Konfigurasi Unity yang direkomendasikan Microsoft saat ini untuk pengembangan HoloLens 2 dan Windows Mixed Reality adalah Unity 2020.3 LTS dengan plugin Mixed Reality OpenXR. Plugin ini mencakup dukungan untuk ekstensi OpenXR yang menerangi kemampuan penuh headset HoloLens 2 dan Windows Mixed Reality, termasuk pelacakan tangan/mata, jangkar spasial, dan pengontrol HP Reverb G2. MRTK-Unity mendukung OpenXR per MRTK 2.7. Untuk informasi selengkapnya tentang memulai Unity 2020 dan OpenXR, lihat Memilih versi Unity dan plugin XR.

Jika Anda mengembangkan untuk HoloLens (generasi ke-1), Anda perlu terus menggunakan Unity 2019.4 LTS dengan backend WINRT API warisan. Jika Anda menargetkan pengontrol HP Reverb G2 baru di aplikasi Unity 2019, lihat dokumen input HP Reverb G2 kami.

Mulai unity 2021.3 LTS, OpenXR adalah satu-satunya backend Unity yang didukung untuk menargetkan headset HoloLens 2 dan Windows Mixed Reality.

OpenXR di Mesin Tidak Nyata

Unreal Engine 4.23 adalah rilis mesin game utama pertama yang mengirimkan dukungan pratinjau untuk OpenXR 1.0! Sekarang di Unreal Engine 4.26, dukungan untuk HoloLens 2, Windows Mixed Reality, dan headset VR desktop lainnya tersedia melalui dukungan OpenXR bawaan Unreal Engine. Unreal Engine 4.26 juga mendukung plugin ekstensi OpenXR Microsoft. Ini memungkinkan interaksi tangan dan dukungan pengontrol HP Reverb G2, menerangi set fitur lengkap headset HoloLens 2 dan Windows Mixed Reality. Unreal Engine 4.26 tersedia hari ini di Epic Games Launcher, dengan MRTK-Unreal 0.12 mendukung proyek OpenXR.

OpenXR untuk pengembangan asli

Anda dapat mengembangkan menggunakan OpenXR pada headset VR imersif HoloLens 2 atau Windows Mixed Reality di desktop. Jika Anda tidak memiliki akses ke headset, Anda dapat menggunakan Emulator HoloLens 2 atau Simulator Windows Mixed Reality sebagai gantinya.

Untuk mulai mengembangkan aplikasi OpenXR untuk headset VR HoloLens 2 atau Windows Mixed Reality, lihat cara memulai pengembangan OpenXR.

Untuk tur melalui semua komponen utama OpenXR API, bersama dengan contoh aplikasi dunia nyata menggunakan OpenXR hari ini, lihat video panduan 60 menit ini:

Lihat juga