כיצד להמיר 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 פשוט של גיאומטריה שטוחה עשוי לעבוד. לשימוש בייצור, עדיף להשתמש ב‑COLLADA, OBJ או glTF על פני FBX. ראה את ה‑FAQ לפרטים נוספים.

דרישות מקדימות

  • Python 3.7 או גרסה מאוחרת יותר
  • התקן באמצעות pip: pip install aspose-3d-foss
from aspose.threed import Scene

שלבי המרה

שלב 1: טען את קובץ ה‑FBX

השתמש בScene.from_file() כדי לטעון את קובץ ה‑FBX. הפורמט מזוהה אוטומטית מההרחבה .fbx.

from aspose.threed import Scene

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

שלב 2: שמור ל‑glTF בינארי (GLB)

השתמש ב-scene.save() עם ההרחבה .glb כדי לכתוב את הפלט כקובץ 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 בינארי.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(). השתמש בזיהוי אוטומטי של סיומת קובץ או בשיטות המפעל המוצגות למעלה.

ראה גם

 עברית