Table of Contents

Menampilkan konten 3D

Saat menggunakan AR, seringkali diperlukan untuk menampilkan objek virtual. Dalam contoh pengujian sederhana, bentuk geometris dasar dapat digunakan. Namun, untuk pengembangan konsumen, umumnya diperlukan model 3D dan animasi presisi tinggi, serta kemungkinan memicu peristiwa dan interaksi saat mengetuk node model.

Model

Model 3D yang populer saat ini umumnya terdiri dari jaring segitiga (triangle mesh). Agar model terlihat nyata, kita perlu memberikan material ke setiap segitiga. Material biasanya mengimplementasikan model pencahayaan tertentu, yang isinya terdiri dari tekstur dan parameter model pencahayaan.

  • Tekstur (texture) menentukan warna dasar setiap titik dalam segitiga. Semua tekstur segitiga ditempatkan pada satu atau beberapa tekstur difus. Dalam penggunaan lanjutan, tekstur juga dapat digunakan untuk mewakili arah normal atau parameter lain di setiap titik.
  • Model pencahayaan (lighting model) mendefinisikan bagaimana objek berinteraksi dengan cahaya, yang umum adalah PBR. Model pencahayaan biasanya diimplementasikan menggunakan shader. Parameter model pencahayaan PBR meliputi warna, metalness, kekasaran, dll.

Dalam pengembangan aplikasi, model 3D biasanya tidak dimuat langsung di OpenGL / Metal / Vulkan / Direct3D, melainkan menggunakan mesin 3D untuk memuatnya. Mesin 3D akan meminta penggunaan format model 3D tertentu, seperti format obj/mtl yang sudah lama dan cukup mudah dibaca, serta format glTF yang saat ini populer.

Animasi

Untuk membuat model bergerak, diperlukan animasi kerangka (skeletal animation). Kerangka mengacu pada node model besar dalam model 3D yang bergerak konsisten saat melakukan gerakan benda kaku.

Menampilkan animasi memerlukan pembaruan terus-menerus terhadap posisi dan orientasi (matriks transformasi) node model saat runtime. Kebanyakan mesin 3D menyediakan fungsi animasi. Cukup edit animasi di perangkat lunak pembuatan animasi dan ekspor dalam format yang didukung oleh mesin 3D, maka animasi dapat digunakan di mesin tersebut. Format glTF yang disebutkan di atas juga mencakup fungsi animasi.

Interaksi

Saat pengguna mengetuk node model, terkadang perlu memicu peristiwa dan interaksi. Umumnya, tulang dalam animasi kerangka akan diberi nama, dan menggunakan deteksi tabrakan (collision detection) atau deteksi sinar (ray detection), peristiwa dipicu saat diketuk, mengembalikan nama tulang yang diklik. Penanganan peristiwa dapat dilakukan menggunakan skrip atau kode aplikasi.

[!CATATAN] Jika Anda kurang berpengalaman menggunakan mesin 3D, sangat disarankan untuk mempertimbangkan menggunakan Unity untuk mengembangkan aplikasi Anda. EasyAR Sense Unity Plugin memiliki dukungan yang baik untuk Unity. Jika Anda menggunakan mesin 3D lain, Anda mungkin menghadapi masalah dukungan dan ketersediaan sumber daya yang lebih terbatas.