Table of Contents

Tampilan konten ruang 3D

Saat menggunakan AR, objek virtual biasanya perlu ditampilkan. Dalam sample pengujian sederhana, bentuk geometri sederhana dapat digunakan. Namun, untuk pengembangan yang ditujukan kepada konsumen, model 3D dan animasi berpresisi tinggi umumnya perlu ditampilkan, dan event serta interaksi mungkin dipicu saat node model diklik.

Model

Model 3D populer saat ini umumnya tersusun dari triangle mesh. Agar model terlihat realistis, kita perlu memberi material pada setiap segitiga. Material biasanya mengimplementasikan lighting model, dan isinya terdiri dari texture serta parameter lighting model.

  • Texture menentukan warna dasar setiap titik dalam segitiga. Texture dari semua segitiga ditempatkan dalam satu atau beberapa diffuse texture. Dalam beberapa penggunaan lanjutan, texture juga dapat digunakan untuk merepresentasikan arah normal atau parameter lain dari setiap titik.
  • Lighting model mendefinisikan bagaimana objek berinteraksi dengan cahaya. Contoh umum adalah PBR. Lighting model biasanya diimplementasikan dengan shader. Parameter lighting model PBR mencakup warna, metallic, roughness, dan sebagainya.

Dalam pengembangan aplikasi, model 3D biasanya tidak dimuat langsung pada OpenGL / Metal / Vulkan / Direct3D, tetapi dimuat menggunakan 3D engine. 3D engine akan meminta beberapa format model 3D tertentu, seperti format obj / mtl yang sudah lama ada dan relatif mudah dibaca, serta format glTF yang saat ini populer.

Animasi

Untuk membuat model bergerak, skeletal animation diperlukan. Bone mengacu pada node model besar dalam model 3D yang mempertahankan gerakan konsisten saat melakukan gerakan rigid-body.

Untuk menampilkan animasi, posisi dan pose (transformation matrix) node model perlu terus diperbarui saat runtime. Sebagian besar 3D engine menyediakan fitur animasi. Anda hanya perlu mengedit animasi dalam software pembuat animasi dan mengekspornya dalam format yang didukung 3D engine, lalu animasi dapat digunakan dalam 3D engine. Format glTF di atas juga mencakup fitur animasi.

Interaksi

Saat pengguna mengklik node model, terkadang event dan interaksi perlu dipicu. Biasanya bone dalam skeletal animation diberi nama, lalu collision detection atau ray detection digunakan untuk memicu event saat diklik dan mengembalikan nama bone yang diklik. Penanganan event dapat dilakukan dengan script atau kode aplikasi.

Catatan

Jika Anda kurang berpengalaman menggunakan 3D engine, sangat disarankan untuk mempertimbangkan Unity untuk mengembangkan aplikasi. EasyAR Sense Unity Plugin memiliki dukungan yang baik untuk Unity. Jika Anda menggunakan 3D engine lain, Anda mungkin menghadapi dukungan dan resource yang lebih sedikit.