Bagikan melalui


Pengambilan realitas campuran untuk pengembang (DirectX)

Catatan

Lihat Render dari kamera PV di bawah ini untuk panduan tentang kemampuan MRC baru untuk HoloLens 2.

Sebelum memulai di sini, kami sarankan Anda melihat artikel gambaran umum pengambilan realitas campuran kami.

Render dari kamera PV (keikutsertaan)

HoloLens 2 menambahkan kemampuan untuk aplikasi imersif untuk dirender dari kamera PV saat pengambilan realitas campuran berjalan. Untuk memastikan aplikasi mendukung render tambahan dengan benar, aplikasi harus ikut serta dalam fungsionalitas ini.

Render dari kamera PV menawarkan peningkatan berikut atas pengalaman MRC default:

  • Penyelarasan hologram ke lingkungan fisik dan tangan Anda untuk interaksi dekat harus akurat di semua jarak. Hindari memiliki offset pada jarak selain titik fokus seperti yang mungkin Anda lihat di MRC default.
  • Mata kanan dalam headset tidak akan disusupi, karena tidak akan digunakan untuk merender hologram untuk output MRC.

Ada tiga langkah untuk mengaktifkan penyajian dari kamera PV:

  1. Mengaktifkan PhotoVideoCamera HolographicViewConfiguration
  2. Menangani render HolographicCamera tambahan
  3. Verifikasi shader dan kode Anda render dengan benar dari HolographicCamera tambahan ini
Mengaktifkan PhotoVideoCamera HolographicViewConfiguration di DirectX

Untuk ikut serta dalam penyajian dari Kamera PV, aplikasi hanya mengaktifkan HolographicViewConfiguration PhotoVideoCamera:

var display = Windows.Graphics.Holographic.HolographicDisplay.GetDefault();
var view = display.TryGetViewConfiguration(Windows.Graphics.Holographic.HolographicViewConfigurationKind.PhotoVideoCamera);
if (view != null)
{
    view.IsEnabled = true;
}
Menangani render HolographicCamera tambahan di DirectX

Ketika aplikasi memiliki keikutsertaan untuk dirender dari kamera PV dan pengambilan realitas campuran dimulai:

  1. Peristiwa CameraAdded HolographicSpace akan diaktifkan. Kejadian ini dapat ditangguhkan jika aplikasi tidak dapat menangani kamera saat ini.
  2. Setelah peristiwa selesai tanpa penundaan yang luar biasa, HolographicCamera akan muncul dalam daftar AddedCameras HolographicFrame berikutnya.

Ketika pengambilan realitas campuran berhenti (atau jika aplikasi menonaktifkan konfigurasi tampilan saat pengambilan realitas campuran berjalan): HolographicCamera akan muncul di daftar RemovedCameras HolographicFrame berikutnya dan peristiwa CameraRemoved HolographicSpace akan diaktifkan.

Properti ViewConfiguration telah ditambahkan ke HolographicCamera untuk membantu mengidentifikasi konfigurasi milik kamera.

Memverifikasi shader dan kode mendukung kamera tambahan

Jalankan pengambilan realitas campuran dan periksa perataan yang tidak biasa, konten yang hilang, atau masalah performa. Perbarui shader dan kode yang sesuai.

Jika ada adegan tertentu yang tidak dapat mendukung penyajian ke kamera tambahan, Anda dapat menonaktifkan HolographicViewConfiguration PhotoVideoCamera.

Menonaktifkan MRC di aplikasi Anda

Aplikasi 2D

Aplikasi 2D dapat memilih untuk mengaburkan konten visual mereka saat pengambilan realitas campuran berjalan dengan:

Aplikasi imersif

Aplikasi imersif dapat memilih untuk mengecualikan konten visual mereka dari pengambilan realitas campuran dengan:

Keyboard Kata Sandi

Dengan Pembaruan Windows 10 Mei 2019, konten visual secara otomatis dikecualikan dari pengambilan realitas campuran saat kata sandi atau papan ketik pin terlihat.

Mengetahui kapan MRC aktif

Kelas AppCapture dapat digunakan oleh aplikasi untuk mengetahui kapan pengambilan realitas campuran sistem berjalan (untuk audio atau video).

Catatan

GetForCurrentView API AppCapture dapat mengembalikan null jika pengambilan realitas campuran tidak tersedia di perangkat. Penting juga untuk membatalkan pendaftaran peristiwa CapturingChanged saat aplikasi Anda ditangguhkan, jika tidak, MRC dapat masuk ke status diblokir.

Mengintegrasikan fungsionalitas MRC dari dalam aplikasi Anda

Aplikasi realitas campuran Anda dapat memulai pengambilan foto atau video MRC dari dalam aplikasi, dan konten yang diambil tersedia untuk aplikasi Anda tanpa disimpan ke "Rol kamera" perangkat. Anda dapat membuat perekam MRC kustom atau memanfaatkan UI pengambilan kamera bawaan.

MRC dengan UI kamera bawaan

Pengembang dapat menggunakan CAMERA Capture UI API untuk mendapatkan foto atau video realitas campuran yang diambil pengguna hanya dengan beberapa baris kode.

API ini meluncurkan antarmuka pengguna kamera MRC bawaan tempat pengguna dapat mengambil foto atau video dan mengembalikan pengambilan yang dihasilkan ke aplikasi Anda. Anda dapat membuat perekam Mixed Reality Capture kustom jika Anda perlu menambahkan UI kamera Anda sendiri atau akses tingkat bawah untuk mengambil aliran.

MRC dengan tangkapan layar

Dengan pembaruan HoloLens 2 Mei 2021 (Windows Holographic, versi 21H1 build 20346.1002), pengembang dapat menggunakan Screen capture API untuk meminta aliran bingkai video realitas campuran.

Membuat perekam MRC kustom

Meskipun pengguna selalu dapat memicu foto atau video menggunakan layanan pengambilan MRC sistem, aplikasi mungkin ingin membangun aplikasi kamera kustom yang menyertakan hologram dalam aliran kamera seperti MRC. Ini memungkinkan aplikasi untuk memulai pengambilan dari input pengguna, membangun UI rekaman kustom, atau menyesuaikan pengaturan MRC untuk memberi nama beberapa contoh.

HoloStudio menambahkan kamera MRC kustom menggunakan efek MRC

HoloStudio menambahkan kamera MRC kustom menggunakan efek MRC

Aplikasi lain dapat melakukan ini dengan menggunakan WINDOWS Media Capture API untuk mengontrol Kamera dan menambahkan efek Video dan Audio MRC untuk menyertakan hologram virtual dan audio aplikasi diam dan video.

Aplikasi memiliki dua opsi untuk menambahkan efek:

Catatan

Namespace Windows.Media.MixedRealityCapture tidak akan dikenali oleh Visual Studio, tetapi string masih valid.

Efek Video MRC (Windows.Media.MixedRealityCapture.MixedRealityCaptureVideoEffect)

Nama Properti Jenis Nilai Default Deskripsi
StreamType UINT32 (MediaStreamType) 1 (VideoRecord) Jelaskan aliran tangkapan mana yang digunakan oleh efek ini. Audio tidak tersedia.
HologramCompositionEnabled Boolean BENAR Bendera untuk mengaktifkan atau menonaktifkan hologram dalam pengambilan video.
RecordingIndicatorEnabled Boolean BENAR Bendera untuk mengaktifkan atau menonaktifkan indikator perekaman pada layar selama pengambilan hologram.
VideoStabilizationEnabled Boolean SALAH Bendera untuk mengaktifkan atau menonaktifkan stabilisasi video yang didukung oleh pelacak HoloLens.
VideoStabilizationBufferLength UINT32 0 Atur berapa banyak bingkai historis yang digunakan untuk stabilisasi video. 0 adalah latensi 0 dan hampir "bebas" dari perspektif kekuatan dan performa. 15 direkomendasikan untuk kualitas tertinggi (dengan biaya 15 bingkai latensi dan memori).
GlobalOpacityCoefficient float 0.9 (HoloLens) 1.0 (Headset imersif) Atur koefisien opasitas global hologram dalam kisaran 0,0 (transparan sepenuhnya) hingga 1,0 (buram sepenuhnya).
BlankOnProtectedContent Boolean SALAH Bendera untuk mengaktifkan atau menonaktifkan pengembalian bingkai kosong jika ada aplikasi UWP 2d yang menampilkan konten yang dilindungi. Jika bendera ini salah dan aplikasi UWP 2d menampilkan konten yang dilindungi, aplikasi UWP 2d akan digantikan oleh tekstur konten yang dilindungi di headset dan dalam pengambilan realitas campuran.
TampilkanHiddenMesh Boolean SALAH Bendera untuk mengaktifkan atau menonaktifkan memperlihatkan jala area tersembunyi kamera holografik dan konten tetangga.
OutputSize Ukuran 0, 0 Atur ukuran output yang diinginkan setelah pemotongan untuk stabilisasi video. Ukuran pemangkasan default dipilih jika 0 atau ukuran output yang tidak valid ditentukan.
OutputSubtype String Nv12 Atur subjenis output yang diinginkan setelah komposisi hologram dan/atau stabilisasi video. Mendukung Nv12 dan Argb32 MediaEncodingSubtypes.
PreferredHologramPerspective UINT32 Merender dari pengaturan Kamera di Portal Perangkat Windows Enum digunakan untuk menunjukkan konfigurasi tampilan kamera holografik mana yang harus diambil: 0 (Tampilan) berarti bahwa aplikasi tidak akan diminta untuk merender dari kamera foto/video, 1 (PhotoVideoCamera) akan meminta aplikasi untuk merender dari kamera foto/video (jika aplikasi mendukungnya). Hanya didukung di HoloLens 2

Catatan

Anda dapat mengubah nilai default PreferredHologramPerspective di Portal Perangkat Windows dengan masuk ke halaman Mixed Reality Capture dan menghapus centang Render dari Kamera. Pengaturan default ke 1 (PhotoVideoCamera), tetapi dapat tidak dicentang untuk mengaturnya ke 0 (Tampilan).

Nilai default PreferredHologramPerspective adalah 0 (Tampilan) sebelum pembaruan Juni 2020 (Windows Holographic, versi 2004 build 19041.1106 dan Windows Holographic, versi 1903 build 18362.1064).

Dukungan untuk OutputSubtype ditambahkan dengan pembaruan Mei 2021 (Windows Holographic, versi 21H1 build 20346.1002).

Efek Audio MRC (Windows.Media.MixedRealityCapture.MixedRealityCaptureAudioEffect)

Nama Properti Jenis Nilai Default Deskripsi
MixerMode UINT32 2 (Audio Mikrofon dan Sistem) Enum digunakan untuk menunjukkan sumber audio mana yang harus digunakan: 0 (Audio mikrofon saja), 1 (Audio sistem saja), 2 (Audio mikrofon dan sistem)
LoopbackGain float Pengaturan Penguatan Audio Aplikasi di Portal Perangkat Windows Peroleh untuk diterapkan ke volume audio sistem. Berkisar antara 0,0 hingga 5,0. Hanya didukung di HoloLens 2
MikrofonGain float Pengaturan Penguatan Audio Mikrofon di Portal Perangkat Windows Peroleh untuk diterapkan ke volume mikrofon. Berkisar antara 0,0 hingga 5,0. Hanya didukung di HoloLens 2

Catatan

Anda dapat mengubah nilai default LoopbackGain atau MicrophoneGain di Portal Perangkat Windows dengan masuk ke halaman Mixed Reality Capture dan menyesuaikan penggeser di samping pengaturan masing-masing. Kedua pengaturan default ke 1.0, tetapi dapat diatur ke nilai apa pun antara 0,0 dan 5,0.

Menggunakan Portal Perangkat Windows untuk mengonfigurasi nilai keuntungan default ditambahkan dengan pembaruan Juni 2020 (Windows Holographic, versi 2004 build 19041.1106 dan Windows Holographic, versi 1903 build 18362.1064).

Batasan MRC simultan

Anda perlu mengetahui batasan tertentu saat beberapa aplikasi mengakses MRC secara bersamaan.

Akses kamera foto/video

Di HoloLens 1, MRC akan gagal mengambil foto atau mengambil video saat proses merekam video atau mengambil foto. Sebaliknya juga benar: jika MRC berjalan, aplikasi akan gagal mendapatkan akses ke kamera.

Dengan HoloLens 2, Anda dapat berbagi akses ke kamera. Jika Anda tidak memerlukan kontrol langsung atas resolusi atau kecepatan bingkai, Anda dapat menginisialisasi MediaCapture menggunakan properti SharedMode dengan SharedReadOnly.

Akses foto dan kamera video MRC bawaan

Fungsionalitas MRC yang disertakan dalam Windows 10 (melalui Cortana, Menu Mulai, pintasan perangkat keras, Miracast, Portal Perangkat Windows):

  • Akan berjalan dengan ExclusiveControl secara default

Namun, dukungan telah ditambahkan ke subsistem MRC untuk beroperasi dalam mode bersama:

  • Jika aplikasi meminta akses ExclusiveControl ke kamera foto/video, MRC bawaan akan secara otomatis berhenti menggunakan kamera foto/video sehingga permintaan aplikasi akan berhasil
  • Jika MRC bawaan dimulai saat aplikasi memiliki ExclusiveControl, MRC bawaan akan berjalan dalam mode SharedReadOnly

Fungsionalitas mode bersama ini memiliki batasan tertentu:

  • Foto melalui Cortana, pintasan perangkat keras, atau Menu Mulai: Memerlukan Pembaruan Windows 10 April 2018 (atau yang lebih baru)
  • Video melalui Cortana, pintasan perangkat keras, atau Menu Mulai: Memerlukan Pembaruan Windows 10 April 2018 (atau yang lebih baru)
  • Streaming MRC melalui Miracast: Memerlukan Pembaruan Windows 10 Oktober 2018 (atau yang lebih baru)
  • Streaming MRC melalui Portal Perangkat Windows atau melalui aplikasi pendamping HoloLens: Memerlukan HoloLens 2

Catatan

Resolusi dan kecepatan bingkai UI kamera MRC bawaan mungkin dikurangi dari nilai normalnya ketika aplikasi lain menggunakan kamera foto/video.

Akses MRC untuk pengembang

Sebaiknya Anda selalu meminta Kontrol eksklusif untuk kamera saat menggunakan MRC. Ini akan memastikan aplikasi Anda memiliki kontrol penuh atas pengaturan untuk kamera selama Anda mengetahui batasan yang tercantum di atas.

Perhatian

Pastikan untuk membaca dengan cermat komentar SharingMode sebelum melanjutkan.

  • Siapkan kamera sesuai keinginan Anda
  • Mulai aplikasi, ambil bingkai video dengan API mulai, lalu aktifkan MRC

Perhatian

Jika Anda memulai MRC sebelum memulai aplikasi, kami tidak dapat menjamin fitur akan berfungsi seperti yang diharapkan.

Anda dapat menemukan sampel lengkap proses di atas dalam sampel pelacakan wajah holografik.

Catatan

Sebelum Pembaruan Windows 10 April 2018, perekam MRC kustom aplikasi saling eksklusif dengan MRC sistem (menangkap foto, menangkap video, atau streaming dari Portal Perangkat Windows).

Lihat juga