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 (misalnyaC:\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 modeREPEAT, yaitu bagian bilangan bulat diabaikan lalu membangun pola replikasi tak terbatas (sama seperti penangananGL_REPEATdiOpenGL). - 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.
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.Buat model baru
Gunakan alat pemodelan seperti Autodesk Maya / 3ds Max untuk membuat/menggambar model 3D dan hasilkan dalam format OBJ.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.
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.
Bentuk model
Model mendukung berbagai bentuk, tetapi struktur utamanya harus cembung.
Kedua objek ini dapat dideteksi dan dilacak oleh EasyAR.
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.
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.
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.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.