چگونه FBX را به glTF در پایتون تبدیل کنیم

چگونه 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() ارسال شوند. از تشخیص خودکار پسوند فایل یا روش‌های کارخانه‌ای نشان داده شده در بالا استفاده کنید.

همچنین ببینید

 فارسی