Cara Menukar FBX ke glTF dalam Python

Cara Menukar FBX ke glTF dalam Python

Masalah

Pemaju perlu menukar fail model 3D FBX kepada format glTF atau GLB untuk digunakan dalam penonton web, enjin permainan, dan saluran rendering moden. Aspose.3D mengendalikan ini dengan Scene.from_file() untuk memuatkan fail FBX dan scene.save() untuk menulis output glTF.

Nota mengenai sokongan FBX: Aspose.3D FOSS mempunyai eksperimental sokongan FBX. Tokenizer FBX telah dilaksanakan tetapi penghurai mempunyai pepijat struktur yang diketahui: pengendalian CLOSE_BRACKET yang tidak betul dan rekursi tanpa batas pada skop FBX bersarang yang kompleks. Fail FBX yang kompleks atau besar mungkin mencetuskan RecursionError. FBX geometri rata yang mudah mungkin berfungsi. Untuk penggunaan produksi, lebih baik pilih COLLADA, OBJ, atau glTF berbanding FBX. Lihat FAQ untuk maklumat lanjut.

Prasyarat

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

Langkah Penukaran

Langkah 1: Muatkan Fail FBX

Gunakan Scene.from_file() untuk memuatkan fail FBX. Format dikesan secara automatik daripada sambungan .fbx.

from aspose.threed import Scene

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

Langkah 2: Simpan ke glTF Binary (GLB)

Panggil scene.save() dengan sambungan .glb untuk menulis output sebagai fail glTF binari yang padat. Format ditentukan secara automatik daripada sambungan tersebut. Ini adalah pendekatan yang disyorkan: satu fail, padat, dan serasi secara meluas.

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

Nota: FileFormat.GLTF2_BINARY dan FileFormat.GLTF ialah None stub constants dalam versi perpustakaan semasa dan tidak sepatutnya dihantar kepada scene.save(). Gunakan pengesanan auto-ekstensi fail atau kaedah kilang FileFormat.GLTF2() sebagai gantinya.

Untuk menyimpan sebagai JSON glTF sebaliknya:

scene.save("output.gltf")

Langkah 3: (Opsional) Gunakan GltfSaveOptions

Untuk kawalan yang lebih ke atas output glTF, hantarkan objek GltfSaveOptions:

from aspose.threed.formats import GltfSaveOptions

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

Contoh Kod

Selesaikan penukaran FBX-ke-GLB 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 Disokong

Apabila menukar dari FBX, format output berikut berfungsi dengan boleh dipercayai:

Format OutputSambunganCara menentukan
glTF 2.0 binary.glbsambungan auto-kesan (atau FileFormat.GLTF2())
glTF 2.0 JSON.gltfsambungan auto-kesan (atau FileFormat.GLTF2())
Wavefront OBJ.objsambungan auto-kesan
STL.stlsambungan auto-kesan
Microsoft 3MF.3mfsambungan auto-kesan (atau FileFormat.MICROSOFT_3MF_FORMAT())

Nota: FileFormat.GLTF2_BINARY, FileFormat.GLTF, dan FileFormat.MICROSOFT_3MF ialah konstanta stub None dan tidak boleh dihantar kepada scene.save(). Gunakan pengesanan auto-eksensi fail atau kaedah kilang yang ditunjukkan di atas.

Lihat Juga

 Bahasa Melayu