چگونه FBX را به glTF در پایتون تبدیل کنیم
مسئله
توسعهدهندگان نیاز دارند فایلهای مدل سهبعدی FBX را به فرمت glTF یا GLB تبدیل کنند تا در نمایشگرهای وب، موتورهای بازی و خطوط رندرینگ مدرن استفاده شوند. Aspose.3D این کار را با Scene.from_file() برای بارگذاری فایل FBX و scene.save() برای نوشتن خروجی glTF انجام میدهد.
یادداشت درباره پشتیبانی FBX: Aspose.3D FOSS دارای پشتیبانی آزمایشی FBX است. توکنایزر FBX پیادهسازی شده است اما تجزیهگر دارای باگهای ساختاری شناختهشده است: پردازش نادرست CLOSE_BRACKET و بازگشت نامحدود در حوزههای تو در توی پیچیده FBX. فایلهای FBX پیچیده یا بزرگ ممکن است RecursionError را فعال کنند. FBX ساده با هندسه مسطح ممکن است کار کند. برای استفاده در تولید، به جای FBX از COLLADA، OBJ یا glTF استفاده کنید. برای جزئیات بیشتر، به FAQ مراجعه کنید.
پیشنیازها
- Python 3.7 یا بعدی
- نصب از طریق pip:
pip install aspose-3d-foss
from aspose.threed import Sceneمراحل تبدیل
مرحله ۱: بارگذاری فایل FBX
از Scene.from_file() برای بارگذاری فایل FBX استفاده کنید. قالب بهصورت خودکار از پسوند .fbx تشخیص داده میشود.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")مرحله ۲: ذخیره به باینری glTF (GLB)
با استفاده از افزونه .glb، scene.save() را فراخوانی کنید تا خروجی به صورت یک فایل باینری فشرده glTF نوشته شود. قالب بهصورت خودکار از افزونه استخراج میشود. این روش پیشنهادی است: تکفایلی، فشرده و بهطور گسترده سازگار.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")توجه: FileFormat.GLTF2_BINARY و FileFormat.GLTF در نسخه فعلی کتابخانه None ثابتهای استاب هستند و نباید به scene.save() ارسال شوند. بهجای آن از تشخیص خودکار پسوند فایل یا متد کارخانهای FileFormat.GLTF2() استفاده کنید.
برای ذخیره بهصورت JSON glTF بهجای این:
scene.save("output.gltf")مرحله 3: (اختیاری) از GltfSaveOptions استفاده کنید
برای کنترل بیشتر بر خروجی glTF، یک شیء GltfSaveOptions را پاس دهید:
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)مثال کد
تبدیل کامل FBX‑به‑GLB در سه خط:
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")قالبهای خروجی پشتیبانیشده
هنگام تبدیل از FBX، فرمتهای خروجی زیر بهطور قابل اعتماد کار میکنند:
| قالب خروجی | پسوند | نحوه تعیین |
|---|---|---|
| glTF 2.0 binary | .glb | تشخیص خودکار پسوند (یا FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | تشخیص خودکار پسوند (یا FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | تشخیص خودکار پسوند |
| STL | .stl | تشخیص خودکار پسوند |
| Microsoft 3MF | .3mf | تشخیص خودکار پسوند (یا FileFormat.MICROSOFT_3MF_FORMAT()) |
توجه: FileFormat.GLTF2_BINARY، FileFormat.GLTF و FileFormat.MICROSOFT_3MF ثابتهای استاب None هستند و نباید به scene.save() ارسال شوند. از تشخیص خودکار پسوند فایل یا روشهای کارخانهای نشان داده شده در بالا استفاده کنید.