Python में FBX को glTF में कैसे बदलें
समस्या
डेवलपर्स को FBX 3D मॉडल फ़ाइलों को 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रूपांतरण चरण
चरण 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 से रूपांतरण करते समय, निम्नलिखित आउटपुट फ़ॉर्मेट विश्वसनीय रूप से काम करते हैं:
| Output Format | Extension | How to specify |
|---|---|---|
| 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() को पास नहीं किया जाना चाहिए। फ़ाइल‑एक्सटेंशन ऑटो‑डिटेक्शन या ऊपर दिखाए गए फ़ैक्टरी मेथड्स का उपयोग करें।