Table of Contents

Persiapan dan optimasi model 3D

Artikel ini menjelaskan secara rinci cara menyiapkan model 3D yang memenuhi persyaratan EasyAR, mencakup spesifikasi format, rekomendasi tool, dan troubleshooting umum, sehingga membantu developer meningkatkan keberhasilan tracking dari sumbernya.

Format dan spesifikasi model

EasyAR 3D object tracking hanya mendukung format Wavefront OBJ. Saat menggunakannya, ikuti persyaratan dan spesifikasi berikut.

Struktur file model

Model 3D lengkap harus menyertakan file berikut:

  • File .obj: Data model geometri, termasuk vertex, face, koordinat UV, dan lain-lain.
  • File .mtl: Definisi material, termasuk warna dan path texture map.
  • Texture map: Setidaknya satu gambar berformat JPEG atau PNG. Resolusi 512×512 hingga 2048×2048 direkomendasikan.

Persyaratan file

  • Semua file harus ditempatkan dalam folder yang sama dan direferensikan dengan path relatif seperti texture.jpg. Path absolut seperti C:\Models\texture.jpg tidak diizinkan.
  • Nama file dan path di dalam file tidak boleh mengandung spasi. Disarankan menggunakan huruf Inggris atau angka.
  • Encoding file harus UTF-8 untuk menghindari kegagalan loading akibat teks rusak.

Persyaratan minimum untuk file OBJ (.obj)

  • Harus berisi vertex
    Vertex geometri, direpresentasikan dengan koordinat \((x, y, z [, w])\). \(w\) bersifat opsional dan default-nya 1.0. Parameter warna vertex tidak wajib; jika diberikan, sistem tidak akan memuatnya.
  • Harus berisi texture coordinates
    Koordinat texture, direpresentasikan dengan koordinat \((u, v [,w])\). \(w\) bersifat opsional dan default-nya 0. Secara umum, nilai \(u\) dan \(v\) harus berada antara 0 dan 1. Untuk nilai kurang dari 0 atau lebih besar dari 1, sistem secara default memprosesnya dalam mode REPEAT: bagian integer koordinat diabaikan, lalu dibangun pola berulang tak terbatas, sama seperti pemrosesan GL_REPEAT di OpenGL.
  • Harus berisi face
    Elemen face harus minimal menyertakan indeks vertex dan indeks koordinat texture. Struktur face poligon dengan lebih dari 3 vertex, seperti quadrilateral, juga didukung.
  • Harus berisi mtllib
    Referensi ke file material. Setidaknya satu file material MTL eksternal harus ditentukan, dan path file harus relatif, bukan absolut.
  • Harus berisi usemtl
    Material yang direferensikan oleh elemen model harus menentukan nama material, dan nama material ini harus sama dengan nama material yang didefinisikan dalam file material MTL eksternal.

Persyaratan minimum untuk file MTL (.mtl)

  • Sebuah file MTL harus mendefinisikan setidaknya satu material.
  • Texture map wajib ada.
    Secara umum, hanya texture map ambient atau diffuse (map_Ka, map_Kd) yang perlu ditentukan;
    Path texture map harus relatif, bukan absolut.
  • Parameter opsional texture map lainnya tidak wajib; jika diberikan, sistem tidak akan menggunakannya.

Persiapan model

Anda dapat menyiapkan file model OBJ yang memenuhi spesifikasi dengan beberapa cara.

  1. Ekspor dari model yang sudah ada
    Gunakan tool profesional seperti Autodesk Maya / 3ds Max untuk mengimpor model FBX atau format lain yang sudah ada, pilih “OBJ Export” saat ekspor, dan pastikan opsi “Materials” dan “UVs” diaktifkan.

  2. Membuat model baru
    Gunakan tool modeling seperti Autodesk Maya / 3ds Max untuk membuat atau menggambar model 3D dan output dalam format OBJ.

  3. Memindai objek nyata dan melakukan rekonstruksi 3D
    Gunakan software pemindaian dan modeling 3D seperti Autodesk ReCap atau Bentley ContextCapture, atau gunakan laser scanner untuk melakukan rekonstruksi 3D objek nyata, lalu ekspor hasilnya dalam format OBJ.

Penting

Texture model harus secara akurat mereproduksi fitur visual objek nyata, jika tidak recognition dan tracking tidak akan bekerja dengan benar.

Praktik terbaik model

Berikut adalah beberapa masalah dan contoh umum yang ditemui saat menyiapkan model, sebagai referensi cepat untuk pemeriksaan.

  1. Pastikan detail tekstur kaya
    Texture model harus memiliki detail tekstur yang kaya.

    Gambar referensi kiri: dapat dideteksi dan dilacak oleh EasyAR. Gambar referensi kanan: tidak dapat dideteksi atau dilacak karena teksturnya terlalu sedikit.

  2. Bentuk model
    Model mendukung berbagai bentuk, tetapi struktur utamanya harus convex.

    Kedua objek ini dapat dideteksi dan dilacak oleh EasyAR.

  3. Periksa path referensi di dalam file
    Path yang direferensikan dalam file model harus berupa relative path, bukan absolute path.

    Model di sisi kanan tidak dapat dimuat karena EasyAR tidak dapat menemukan file yang menggunakan absolute path.

    Path yang direferensikan dalam file model tidak boleh berisi spasi atau karakter khusus.

    Model di sisi kanan tidak dapat dimuat karena path referensi berisi spasi.

  1. Periksa format encoding file
    File model harus menggunakan encoding UTF-8.

    Model di sebelah kanan tidak dapat dimuat karena encoding file-nya menyebabkan decoding error saat dibaca.

  2. Periksa normal model
    Arah positif normal vector dari face model harus mengikuti right-hand rule.

    Normal vector pada face yang diarsir di kubus kedua memiliki orientasi negatif. Face seperti ini akan diperlakukan sebagai invisible face di EasyAR. Jika dilihat dari dalam model, tampilannya seperti kubus ketiga.
    Model harus menghindari semua face dengan orientasi normal negatif.

  3. Jumlah face model
    Jumlah face model harus sesedikit mungkin dengan tetap mempertahankan bentuk geometri objek, dan biasanya tidak boleh melebihi 100.000 triangle faces. Terlalu banyak face dapat menyebabkan:

    • Waktu loading model terlalu lama, memengaruhi user experience saat aplikasi dimulai
    • Perhitungan face texture projection meningkat, memengaruhi frame rate aplikasi saat tracking

Kualitas model 3D secara langsung menentukan keberhasilan tracking. Developer harus mengikuti spesifikasi format secara ketat, fokus mengoptimalkan detail texture, dan memastikan format file benar.