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 sepertiC:\Models\texture.jpgtidak 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 modeREPEAT: bagian integer koordinat diabaikan, lalu dibangun pola berulang tak terbatas, sama seperti pemrosesanGL_REPEATdiOpenGL. - 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.
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.Membuat model baru
Gunakan tool modeling seperti Autodesk Maya / 3ds Max untuk membuat atau menggambar model 3D dan output dalam format OBJ.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.
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.
Bentuk model
Model mendukung berbagai bentuk, tetapi struktur utamanya harus convex.
Kedua objek ini dapat dideteksi dan dilacak oleh EasyAR.
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.
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.
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.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.