Table of Contents

Persiapan dan optimasi model 3D

Artikel ini akan menjelaskan secara rinci cara menyiapkan model 3D yang memenuhi persyaratan EasyAR, mencakup spesifikasi format, rekomendasi alat, dan pemecahan masalah umum, membantu pengembang meningkatkan tingkat keberhasilan pelacakan dari sumbernya.

Model format dan spesifikasi

EasyAR pelacakan objek 3D hanya mendukung format Wavefront OBJ. Saat digunakan, harus mengikuti persyaratan dan spesifikasi berikut.

Struktur berkas model

Sebuah model 3D lengkap harus berisi berkas-berkas berikut:

  • Berkas .obj: Data model geometri (berisi titik, permukaan, koordinat UV, dll).
  • Berkas .mtl: Definisi material (warna, jalur tekstur).
  • Tekstur: Setidaknya satu gambar format JPEG atau PNG (disarankan resolusi 512×512 hingga 2048×2048).

Persyaratan berkas

  • Semua berkas harus berada dalam folder yang sama, dan menggunakan jalur relatif (misalnya texture.jpg), dilarang menggunakan jalur absolut (misalnya C:\Models\texture.jpg).
  • Nama berkas dan jalur di dalam berkas dilarang mengandung spasi, disarankan menggunakan huruf Inggris atau angka.
  • Format pengkodean berkas harus UTF-8 (hindari kegagalan muat akibat karakter kacau).

Persyaratan minimum OBJ (.obj)

  • Harus berisi vertex
    Titik geometri, direpresentasikan dengan koordinat \((x, y, z [, w])\). \(w\) bersifat opsional, default 1.0. Parameter warna titik tidak wajib, jika disediakan sistem tidak akan memuatnya.
  • Harus berisi texture coordinates
    Koordinat tekstur, direpresentasikan dengan koordinat \((u, v [,w])\), \(w\) bersifat opsional, default 0. Biasanya, nilai \(u\) dan \(v\) harus antara 0 hingga 1. Untuk nilai di bawah 0 atau di atas 1, sistem secara default akan memproses dalam mode REPEAT, yaitu bagian bilangan bulat diabaikan lalu membangun pola replikasi tak terbatas (sama seperti penanganan GL_REPEAT di OpenGL).
  • Harus berisi face
    Elemen permukaan, harus berisi setidaknya indeks titik dan indeks koordinat tekstur. Struktur permukaan poligon dengan lebih dari 3 titik (misal segiempat) juga didukung.
  • Harus berisi mtllib
    Referensi ke berkas material, wajib menentukan setidaknya satu berkas material MTL eksternal. Jalur berkas harus relatif, tidak boleh absolut.
  • Harus berisi usemtl
    Material yang dirujuk oleh elemen model harus menentukan nama material, yang harus konsisten dengan nama material yang didefinisikan dalam berkas MTL eksternal.

Persyaratan minimum MTL (.mtl)

  • Satu berkas MTL harus mendefinisikan setidaknya satu material.
  • Tekstur wajib.
    Biasanya cukup menentukan tekstur ambient atau diffuse (map_Ka, map_Kd);
    Jalur tekstur harus relatif, tidak boleh absolut;
  • Parameter opsional tekstur lainnya tidak wajib, jika disediakan sistem tidak akan menggunakannya.

Persiapan model

Anda dapat menyiapkan berkas model format OBJ yang memenuhi spesifikasi melalui berbagai cara.

  1. Ekspor dari model yang sudah ada
    Gunakan alat profesional seperti Autodesk Maya / 3ds Max, impor model FBX atau format lain yang ada, lalu ekspor dengan memilih "OBJ Export", dan pastikan opsi "Materials" dan "UVs" diaktifkan.

  2. Buat model baru
    Gunakan alat pemodelan seperti Autodesk Maya / 3ds Max untuk membuat/menggambar model 3D dan hasilkan dalam format OBJ.

  3. Pindai objek fisik dan lakukan rekonstruksi 3D
    Gunakan perangkat lunak pemindaian 3D seperti Autodesk ReCap, Bentley ContextCapture, atau pemindai laser untuk merekonstruksi objek fisik secara 3D, lalu ekspor hasilnya ke format OBJ.

Penting

Tekstur model harus mereproduksi secara akurat karakteristik visual objek fisik, jika tidak fungsi pengenalan dan pelacakan tidak akan berfungsi normal.

Praktik terbaik model

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

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

    Referensi kiri: Dapat dideteksi dan dilacak oleh EasyAR. Referensi kanan: Tidak dapat dideteksi dan dilacak, tekstur terlalu sedikit.

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

    Kedua objek ini dapat dideteksi dan dilacak oleh EasyAR.

  3. Periksa jalur referensi dalam file
    Jalur yang dirujuk dalam file model harus berupa jalur relatif, bukan jalur absolut.

    Model di sebelah kanan tidak dapat dimuat karena EasyAR tidak dapat menemukan file yang menggunakan jalur absolut.

    Jalur yang dirujuk dalam file model tidak boleh mengandung spasi atau karakter khusus.

    Model di sebelah kanan tidak dapat dimuat karena jalur yang dirujuk mengandung spasi.

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

    Model di sebelah kanan tidak dapat dimuat karena masalah encoding file menyebabkan kesalahan decoding saat membaca.

  2. Periksa normal model
    Arah positif vektor normal dari permukaan model harus mengikuti aturan tangan kanan.

    Pada kubus kedua, permukaan yang diarsir memiliki vektor normal dengan orientasi negatif. Permukaan seperti ini akan diperlakukan sebagai permukaan tak terlihat di EasyAR. Jika dilihat dari dalam model, akan terlihat seperti kubus ketiga.
    Model harus menghindari semua permukaan dengan orientasi vektor normal negatif.

  3. Jumlah permukaan model
    Jumlah permukaan model harus sesedikit mungkin sambil tetap mempertahankan bentuk geometri objek, biasanya tidak boleh melebihi 100.000 segitiga. Terlalu banyak permukaan akan menyebabkan:

    • Waktu pemuatan model terlalu lama, memengaruhi pengalaman pengguna saat memulai aplikasi
    • Perhitungan proyeksi tekstur permukaan meningkat, memengaruhi frame rate aplikasi saat pelacakan

Kualitas model 3D secara langsung menentukan tingkat keberhasilan pelacakan. Pengembang harus secara ketat mengikuti spesifikasi format, mengoptimalkan detail tekstur, dan memastikan format berkas benar.