Cara Mengonversi FBX ke glTF di Python

Cara Mengonversi FBX ke glTF di Python

Masalah

Pengembang perlu mengonversi file model 3D FBX ke format glTF atau GLB untuk digunakan dalam penampil web, mesin game, dan pipeline rendering modern. Aspose.3D menangani ini dengan Scene.from_file() untuk memuat file FBX dan scene.save() untuk menulis output glTF.

Catatan tentang dukungan FBX: Aspose.3D FOSS memiliki eksperimental dukungan FBX. Tokenizer FBX telah diimplementasikan tetapi parser memiliki bug struktural yang diketahui: penanganan CLOSE_BRACKET yang tidak tepat dan rekursi tak terbatas pada ruang lingkup FBX bersarang yang kompleks. File FBX yang kompleks atau besar dapat memicu RecursionError. FBX dengan geometri datar sederhana mungkin berfungsi. Untuk penggunaan produksi, lebih baik pilih COLLADA, OBJ, atau glTF daripada FBX. Lihat FAQ untuk detail lebih lanjut.

Prasyarat

  • Python 3.7 atau lebih baru
  • Instal melalui pip: pip install aspose-3d-foss
from aspose.threed import Scene

Langkah Konversi

Langkah 1: Muat File FBX

Gunakan Scene.from_file() untuk memuat file FBX. Format dideteksi secara otomatis dari .fbx ekstensi.

from aspose.threed import Scene

scene = Scene.from_file("input.fbx")

Langkah 2: Simpan ke glTF Biner (GLB)

Panggil scene.save() dengan .glb ekstensi untuk menulis output sebagai file glTF biner yang kompak. Format diperkirakan secara otomatis dari ekstensi. Ini adalah pendekatan yang direkomendasikan: satu file, kompak, dan kompatibel secara luas.

# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")

Catatan: FileFormat.GLTF2_BINARY dan FileFormat.GLTF adalah None konstanta stub dalam versi perpustakaan saat ini dan tidak boleh diteruskan ke scene.save(). Gunakan deteksi otomatis ekstensi file atau FileFormat.GLTF2() metode pabrik sebagai gantinya.

Untuk menyimpan sebagai glTF JSON sebagai gantinya:

scene.save("output.gltf")

Langkah 3: (Opsional) Gunakan GltfSaveOptions

Untuk kontrol lebih besar atas output glTF, berikan sebuah GltfSaveOptions objek:

from aspose.threed.formats import GltfSaveOptions

opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)

Contoh Kode

Konversi FBX-ke-GLB lengkap dalam tiga baris:

from aspose.threed import Scene

scene = Scene.from_file("input.fbx")
scene.save("output.glb")  # .glb extension triggers binary GLB output automatically

print("Conversion complete: input.fbx -> output.glb")

Format Output yang Didukung

Saat mengonversi dari FBX, format output berikut bekerja dengan andal:

Format OutputEkstensiCara menentukan
glTF 2.0 biner.glbdeteksi otomatis ekstensi (atau FileFormat.GLTF2())
glTF 2.0 JSON.gltfdeteksi otomatis ekstensi (atau FileFormat.GLTF2())
Wavefront OBJ.objdeteksi otomatis ekstensi
STL.stldeteksi otomatis ekstensi
Microsoft 3MF.3mfdeteksi otomatis ekstensi (atau FileFormat.MICROSOFT_3MF_FORMAT())

Catatan: FileFormat.GLTF2_BINARY, FileFormat.GLTF, dan FileFormat.MICROSOFT_3MF adalah None konstanta stub dan tidak boleh diteruskan ke scene.save(). Gunakan deteksi otomatis ekstensi file atau metode pabrik yang ditunjukkan di atas.

Lihat Juga

 Bahasa Indonesia