Memilih engine 3D sebelum pengembangan augmented reality
Langkah pertama dalam pengembangan AR adalah memilih engine 3D yang sesuai. Bab ini menjelaskan mengapa engine 3D diperlukan, engine 3D umum dalam pengembangan AR, serta kelebihan dan kekurangannya masing-masing.
Mengapa AR membutuhkan engine 3D
Augmented reality bukan sekadar menumpuk gambar 2D atau 3D di atas tampilan kamera, tetapi merupakan sistem 3D real-time. Kemampuan intinya juga dapat mencakup:
Pemodelan kamera nyata
Agar objek virtual yang dirender terlihat lebih nyata di dunia nyata, matriks proyeksi kamera dalam engine 3D yang digunakan untuk rendering perlu disesuaikan berdasarkan parameter yang digunakan oleh gambar kamera aktual, seperti intrinsik, ekstrinsik, dan model distorsi.
Manajemen sistem koordinat spasial
Mengelola posisi dan pose perangkat, lingkungan, konten AR, dan elemen lain secara terpadu, serta menangani pemilihan, pengaturan, dan konversi antara koordinat dunia, koordinat kamera, dan koordinat perangkat.
Rendering 3D real-time
Mewujudkan efek occlusion realistis antara objek virtual dan lingkungan berdasarkan kedalaman scene yang diperkirakan secara real-time atau mesh yang direkonstruksi, serta mensimulasikan bayangan berdasarkan algoritma estimasi pencahayaan untuk menghasilkan perpaduan virtual dan nyata yang realistis.
Manajemen resource dan lifecycle
Mengelola resource dan konten AR virtual, mencakup lifecycle seperti pemuatan, penampilan, dan penghapusan.
Kemampuan ini membentuk tanggung jawab inti engine 3D yang umum. Karena itu, memilih engine 3D yang tepat sesuai kebutuhan proyek adalah salah satu prasyarat penting untuk mewujudkan efek AR dengan cepat.
Engine 3D umum
EasyAR mendukung berbagai engine 3D, termasuk engine 3D umum seperti Unity, Unreal, dan pengembangan native. EasyAR menyediakan sampel dan dokumentasi pengembangan untuk Unity dan Native.
Unity
Unity diposisikan sebagai engine 3D real-time serbaguna dan saat ini menjadi pilihan utama sebagian besar developer AR. Unity secara native mendukung pengembangan lintas platform untuk Windows/macOS serta iOS/Android/visionOS. Ekosistem Unity matang, dengan dokumentasi dan sampel yang lengkap.
Native
Dibandingkan menggunakan engine kemasan tingkat tinggi seperti Unity, pengembangan AR langsung berbasis API grafis native seperti OpenGL, Vulkan, dan Metal memiliki kelebihan berikut: dependensi sistem lebih sedikit, lingkungan runtime dapat dibuat sangat ringkas, serta model kamera dan algoritma dasar dapat dikustomisasi secara mendalam. Pengembangan API native memiliki biaya engineering dan pemeliharaan yang tinggi, kurang memiliki editor dan alat debugging matang, efisiensi iterasi rendah, dan sulit lintas platform. Ini tidak kondusif untuk pengiriman produk secara cepat dan biasanya digunakan untuk implementasi fitur sederhana.
Web
Web tidak memerlukan instalasi dan dapat digunakan langsung melalui browser, sehingga biaya distribusi dan jangkauan pengguna sangat rendah. Web secara alami lintas platform, cocok untuk peluncuran cepat dan akses pengguna berskala besar, serta memiliki ambang pengembangan relatif rendah dengan ekosistem frontend yang matang.
Saat ini Web masih relatif terbatas dalam aplikasi AR. Batasan utamanya adalah performa dibatasi browser dan security sandbox, dukungan untuk kemampuan inti AR seperti motion tracking, occlusion, dan pencahayaan akurat masih tidak memadai, akses ke kemampuan perangkat terbatas, dan stabilitas serta konsistensi sulit dijamin. Karena itu, Web AR cocok untuk presentasi ringan dan pemasaran, tetapi tidak cocok untuk aplikasi AR kompleks yang membutuhkan presisi tinggi dan interaksi kuat.