Pengaturan yang direkomendasikan untuk Unity
Unity menyediakan serangkaian opsi default yang umumnya merupakan kasus rata-rata untuk semua platform. Namun, Unity menawarkan beberapa perilaku khusus untuk realitas campuran yang dapat diubah melalui pengaturan proyek.
Penyetelan lingkungan berkinerja
Pengaturan berkualitas rendah
Penting untuk memodifikasi pengaturan Unity Quality menjadi Sangat Rendah sehingga aplikasi Anda berjalan dan berkinerja baik pada framerate yang sesuai, terutama untuk pengembangan HoloLens. Untuk pengembangan pada headset imersif, tergantung pada spesifikasi desktop yang mendukung pengalaman VR, seseorang masih dapat mencapai framerate tanpa parameter kualitas terendah.
Di Unity 2019 LTS+, Anda dapat mengatur tingkat kualitas proyek dengan masuk ke Edit>Project Pengaturan> Quality dan mengatur Default dengan mengklik panah ke bawah ke **Tingkat kualitas Sangat Rendah.
Pengaturan pencahayaan
Mirip dengan pengaturan adegan Kualitas, penting untuk mengatur pengaturan Pencahayaan optimal untuk aplikasi Mixed Reality Anda. Di Unity, pengaturan Pencahayaan yang biasanya akan memiliki dampak performa terbesar pada adegan Anda adalah Iluminasi Global Realtime. Anda dapat menonaktifkan Iluminasi Global dengan masuk ke Pencahayaan Rendering>Jendela>Pengaturan> Penerangan Global Realtime.
Ada pengaturan pencahayaan lain, Baked Global Illumination. Pengaturan ini dapat memberikan hasil yang berkinerja dan mencolok secara visual pada headset imersif tetapi tidak berlaku untuk pengembangan HoloLens. Baked Global Illumination hanya dihitung untuk GameObjects statis, yang tidak ditemukan di adegan HoloLens karena sifat lingkungan yang tidak diketahui dan berubah.
Baca Iluminasi Global dari Unity untuk informasi selengkapnya.
Catatan
Iluminasi Global Realtime diatur per adegan dan dengan demikian pengembang harus menyimpan properti ini untuk setiap adegan Unity dalam proyek mereka.
Jalur penyajian instancing pass tunggal
Dalam aplikasi Mixed Reality, adegan dirender dua kali: sekali untuk setiap mata. Dibandingkan dengan pengembangan 3D tradisional, ini secara efektif menggandakan jumlah pekerjaan yang perlu dihitung. Penting untuk memilih jalur penyajian yang paling efisien di Unity untuk menghemat waktu CPU dan GPU. Penyajian instans pass tunggal mengoptimalkan alur penyajian Unity untuk aplikasi realitas campuran; kami menyarankan agar Anda mengaktifkan pengaturan ini secara default untuk setiap proyek.
Untuk mengaktifkan fitur ini di Proyek Unity Anda
- Buka Pengaturan OpenXR (buka Edit>Project Pengaturan> XR Plugin Management>OpenXR).
- Pilih Instans Single Pass dari menu drop-down Mode Render.
Baca artikel berikut dari Unity untuk detail selengkapnya dengan pendekatan penyajian ini.
- Cara memaksimalkan performa AR dan VR dengan penyajian stereo tingkat lanjut
- Instancing Akses Tunggal
Catatan
Satu masalah umum dengan Single Pass Instanced Rendering terjadi jika pengembang sudah memiliki shader kustom yang ada yang tidak ditulis untuk instancing. Setelah mengaktifkan fitur ini, pengembang mungkin melihat beberapa GameObjects hanya dirender dalam satu mata. Ini karena shader kustom terkait tidak memiliki properti yang sesuai untuk instancing.
Aktifkan berbagi buffer kedalaman
Untuk mencapai stabilitas hologram yang lebih baik dari persepsi pengguna, disarankan untuk mengaktifkan properti Berbagi Buffer Kedalaman di Unity. Dengan mengaktifkan ini, Unity akan berbagi peta kedalaman yang dihasilkan oleh aplikasi Anda dengan platform Windows Mixed Reality. Platform kemudian dapat dengan lebih baik mengoptimalkan stabilitas hologram khusus untuk adegan Anda untuk bingkai tertentu yang dirender oleh aplikasi Anda.
Untuk mengaktifkan fitur ini di Proyek Unity Anda
- Buka Pengaturan OpenXR (buka Edit>Project Pengaturan> XR Plugin Management>OpenXR).
- Pilih Kedalaman 16 Bit dari menu drop-down Mode Pengiriman Kedalaman.
Pengaturan buffer kedalaman 16-bit sangat direkomendasikan untuk pengembangan HoloLens. Memilih 16-bit dibandingkan dengan 24-bit akan secara signifikan mengurangi persyaratan bandwidth karena lebih sedikit data yang perlu dipindahkan/diproses. Yang mengatakan, pengoptimalan datang dengan biaya tertentu. Pastikan Anda memahami implikasi yang disebutkan dalam kotak Penting di bawah ini.
Agar platform Windows Mixed Reality dapat mengoptimalkan stabilitas hologram, platform ini bergantung pada buffer kedalaman agar akurat dan cocok dengan hologram yang dirender di layar. Dengan demikian, dengan berbagi buffer kedalaman, penting ketika merender warna untuk juga merender kedalaman. Di Unity, sebagian besar bahan Opaque atau TransparentCutout akan merender kedalaman secara default tetapi objek transparan dan teks tidak akan merender kedalaman, meskipun ini tergantung pada shader dan faktor lainnya.
Jika menggunakan shader Standar Mixed Reality Toolkit, untuk merender kedalaman untuk objek transparan:
- Pilih bahan transparan yang menggunakan shader MRTK Standard dan buka jendela editor Inspektur
- Pilih tombol Perbaiki Sekarang dalam peringatan berbagi buffer kedalaman. Ini juga dapat dilakukan secara manual dengan mengatur Mode Penyajian ke Kustom; lalu mengatur Mode ke Transparan dan akhirnya mengatur Tulis Kedalaman ke Aktif
Penting
Pengembang harus waspada terhadap Z-fighting saat mengubah nilai-nilai ini bersama dengan pengaturan bidang dekat/jauh kamera. Z-Fighting terjadi ketika dua gameobject mencoba merender ke piksel yang sama dan karena keterbatasan keakuratan buffer kedalaman (yaitu kedalaman z), Unity tidak dapat membedakan objek mana yang ada di depan yang lain. Pengembang akan mencatat kedipan antara dua objek game saat mereka bertarung untuk nilai kedalaman z yang sama. Ini dapat diselesaikan dengan beralih ke format kedalaman 24-bit karena akan ada rentang nilai yang lebih besar untuk setiap objek untuk dihitung untuk kedalaman z mereka dari kamera.
Namun, disarankan, terutama untuk pengembangan HoloLens, untuk memodifikasi bidang dekat dan jauh kamera ke rentang yang lebih kecil dan mempertahankan format kedalaman 16-bit. Kedalaman z dipetakan secara tidak linier ke rentang nilai di sepanjang bidang kamera dekat dan jauh. Ini dapat dimodifikasi dengan memilih Kamera Utama di adegan Anda dan di bawah Pemeriksa, ubah nilai Bidang Kliping Dekat & Jauh untuk mengurangi rentangnya (yaitu dari 1000m menjadi 100m atau nilai x lainnya, dll.)
Penting
Unity tidak membuat buffer stensil saat menggunakan format kedalaman 16-bit. Dengan demikian, beberapa efek UI Unity dan efek lain yang diperlukan stensil tidak akan berfungsi kecuali format kedalaman 24-bit dipilih yang akan membuat buffer stensil 8-bit.
Membangun untuk IL2CPP
Unity telah menghentikan dukungan untuk backend skrip .NET dan dengan demikian merekomendasikan agar pengembang menggunakan IL2CPP untuk build studio visual UWP mereka. Meskipun ini membawa berbagai keuntungan, membangun solusi visual studio Anda dari Unity untuk IL2CPP bisa lebih lambat dari metode .NET lama. Dengan demikian, sangat disarankan untuk mengikuti praktik terbaik untuk membangun IL2CPP untuk menghemat waktu iterasi pengembangan.
- Manfaatkan bangunan inkremental dengan membangun proyek Anda ke direktori yang sama setiap kali, menggunakan kembali file bawaan di sana
- Menonaktifkan pemindaian perangkat lunak anti-malware untuk folder proyek &build Anda
- Buka Virus & perlindungan ancaman di bawah aplikasi pengaturan Windows 10 Anda
- Pilih Kelola Pengaturan di bawah Pengaturan perlindungan virus & ancaman
- Pilih Tambahkan atau hapus pengecualian di bawah bagian Pengecualian
- Pilih Tambahkan pengecualian dan pilih folder yang berisi kode proyek Unity dan output build Anda
- Menggunakan SSD untuk membangun
Baca Mengoptimalkan Waktu Build untuk IL2CPP untuk informasi selengkapnya.
Catatan
Selain itu, mungkin bermanfaat untuk menyiapkan Cache Server, terutama untuk proyek Unity dengan sejumlah besar aset (tidak termasuk file skrip) atau terus mengubah adegan/aset. Saat membuka proyek, Unity menyimpan aset yang memenuhi syarat ke dalam format cache internal pada komputer pengembang. Item harus diimpor ulang dan diproses ulang saat dimodifikasi. Proses ini dapat dilakukan sekali dan disimpan di Cache Server dan akibatnya dibagikan dengan pengembang lain untuk menghemat waktu, alih-alih setiap pengembang memproses kembali impor perubahan baru secara lokal.
Properti penerbitan
Layar percikan Holografik
HoloLens memiliki CPU dan GPU kelas seluler, yang berarti aplikasi mungkin membutuhkan waktu sedikit lebih lama untuk dimuat. Saat aplikasi dimuat, pengguna hanya akan melihat hitam, sehingga mereka mungkin bertanya-tanya apa yang terjadi. Untuk meyakinkannya selama pemuatan, Anda dapat menambahkan layar percikan holografik.
Untuk mengalihkan layar percikan holografik:
- Buka halaman Edit>Project Pengaturan> Player
- Pilih tab Bursa Windows dan buka bagian Citra Splash
- Terapkan gambar Anda di bawah properti Gambar Splash Holografik > Windows.
- Mengalihkan opsi Tampilkan Layar Splash Unity akan mengaktifkan atau menonaktifkan layar percikan bermerek Unity. Jika Anda tidak memiliki lisensi Unity Pro, layar splash bermerek Unity akan selalu ditampilkan.
- Jika Gambar Percikan Holografik diterapkan, gambar akan selalu ditampilkan apakah kotak centang Tampilkan Layar Percikan Unity diaktifkan atau dinonaktifkan. Menentukan gambar percikan holografik kustom hanya tersedia untuk pengembang dengan lisensi Unity Pro.
Perlihatkan Layar Percikan Unity | Gambar Percikan Holografik | Perilaku |
---|---|---|
Aktif | Tidak | Tampilkan layar splash Unity default selama 5 detik atau hingga aplikasi dimuat, mana saja yang lebih lama. |
Aktif | Kustom | Tampilkan layar Percikan kustom selama 5 detik atau hingga aplikasi dimuat, mana saja yang lebih panjang. |
Nonaktif | Tidak | Tampilkan hitam transparan (tidak ada) hingga aplikasi dimuat. |
Nonaktif | Kustom | Tampilkan layar Percikan kustom selama 5 detik atau hingga aplikasi dimuat, mana saja yang lebih panjang. |
Baca dokumentasi Layar Splash Unity untuk informasi selengkapnya.
Kehilangan pelacakan
Headset realitas campuran tergantung pada melihat lingkungan di sekitarnya untuk membangun sistem koordinat yang terkunci di dunia, yang memungkinkan hologram untuk tetap berada di posisi. Ketika headset tidak dapat menemukan dirinya sendiri di dunia, headset dikatakan telah kehilangan pelacakan. Dalam kasus ini, fungsionalitas tergantung pada sistem koordinat yang dikunci dunia, seperti tahap spasial, jangkar spasial, dan pemetaan spasial, tidak berfungsi.
Jika hilangnya pelacakan terjadi, perilaku default Unity adalah berhenti merender hologram, menjeda perulangan game, dan menampilkan pemberitahuan pelacakan yang hilang yang dengan nyaman mengikuti tatapan pengguna. Pemberitahuan kustom juga dapat diberikan dalam bentuk gambar kehilangan pelacakan. Untuk aplikasi yang bergantung pada pelacakan untuk seluruh pengalaman mereka, cukup untuk membiarkan Unity menangani ini sepenuhnya sampai pelacakan kembali. Pengembang dapat menyediakan gambar kustom untuk ditampilkan selama kehilangan pelacakan.
Untuk menyesuaikan gambar yang hilang pelacakan:
- Buka halaman Edit>Project Pengaturan> Player
- Pilih pada tab Bursa Windows dan buka bagian Citra Splash
- Terapkan gambar Anda di bawah properti Gambar Kehilangan Pelacakan Holografik > Windows.
Menolak jeda otomatis
Beberapa aplikasi mungkin tidak memerlukan pelacakan (misalnya aplikasi khusus orientasi seperti penonton video 360 derajat) atau mungkin perlu terus memproses tanpa gangguan saat pelacakan hilang. Anda dapat menolak kehilangan perilaku pelacakan default tetapi Anda bertanggung jawab untuk menyembunyikan/menonaktifkan objek apa pun, yang tidak akan dirender dengan benar dalam skenario pelacakan-kehilangan. Dalam kebanyakan kasus, satu-satunya konten yang disarankan untuk dirender dalam hal ini adalah konten yang dikunci tubuh, berpusat di sekitar kamera utama.
Untuk menolak perilaku jeda otomatis:
- Buka halaman Edit>Project Pengaturan> Player
- Pilih tab Bursa Windows dan buka bagian Citra Splash
- Ubah kotak centang Windows Holographic > On Tracking Loss Jeda dan Tampilkan Gambar .
Melacak peristiwa kehilangan
Untuk menentukan perilaku kustom saat pelacakan hilang, tangani peristiwa kehilangan pelacakan global.
Kemampuan
Agar aplikasi dapat memanfaatkan fungsionalitas tertentu, aplikasi harus mendeklarasikan kemampuan yang sesuai dalam manifesnya. Deklarasi manifes dapat dibuat di Unity sehingga disertakan dalam setiap ekspor proyek di masa mendatang.
Kemampuan dapat diaktifkan untuk aplikasi Mixed Reality dengan:
- Buka halaman Edit>Project Pengaturan> Player
- Pilih tab Bursa Windows, buka bagian Pengaturan Penerbitan, dan cari daftar Kapabilitas
Kemampuan yang berlaku untuk mengaktifkan API yang umum digunakan untuk aplikasi Holografik adalah:
Kemampuan | API yang membutuhkan kemampuan |
---|---|
Persepsi Spasial | SurfaceObserver |
WebCam | PhotoCapture dan VideoCapture |
PicturesLibrary / VideosLibrary | PhotoCapture atau VideoCapture, masing-masing (saat menyimpan konten yang diambil) |
Mikrofon | VideoCapture (saat menangkap audio), DictationRecognizer, GrammarRecognizer, dan KeywordRecognizer |
InternetClient | DictationRecognizer (dan untuk menggunakan Unity Profiler) |