Como converter FBX para glTF em Python
Problema
Os desenvolvedores precisam converter arquivos de modelo 3D do FBX para o formato glTF ou GLB para uso em web viewers, motores de jogos e modernos tubos de renderização. Scene.from_file() Para carregar o arquivo FBX e scene.save() Para escrever a saída do glTF.
Confira o suporte do FBX: Apresentação 3D FOSS Experimentação O tokenizer FBX é implementado, mas o parser tem conhecidos bugs estruturais: manuseio incorreto CLOSE_BRACKET e recursão ilimitada em complexos espinhos de FB X. Complexos ou grandes arquivos FBx podem desencadear RecursionError. simples geometria plana FBX pode funcionar. para uso de produção, prefira COLLADA, OBJ ou glTF sobre FB X. Ver o FAQ Para mais detalhes.
Precondições
- Python 3.7 ou posterior
- Instalação através de pip:
pip install aspose-3d-foss
from aspose.threed import ScenePassos de conversão
Passo 1: Carregar o arquivo FBX
Usando Scene.from_file() para carregar o arquivo FBX. O formato é detectado automaticamente do .fbx extensão .
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")Passo 2: Salvar para o GlTF Binário (GLB)
Chamado scene.save() Com o .glb extensão para escrever a saída como um arquivo compacto binário glTF. O formato é automaticamente derivado da extensões. Este é o método recomendado: único arquivos, compactos e amplamente compatíveis.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")Nota de: O que éFileFormat.GLTF2_BINARY e FileFormat.GLTF São None constantes em versão da biblioteca atual e não devem ser passados para a scene.save().Use a extensão de arquivo para auto-detecção ou o FileFormat.GLTF2() Método de fábrica em vez disso.
Para salvar como JSON glTF em vez:
scene.save("output.gltf")Passo 3: (Opcional) Use GltfSaveOptions
Para mais controle sobre a saída do glTF, passem a GltfSaveOptions Objeto :
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Código Exemplo
Conversão completa FBX-para-GLB em três linhas:
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")Formatos de saída suportados
Ao converter do FBX, os seguintes formatos de saída funcionam confiável:
| Formato | Extensão | Como especificar |
|---|---|---|
| GSTF | .glb / .gltf em inglês | Extensão de detecção automática; GLB binário ou glTF JSON |
| OBJ | .OBJ | Extensão de detecção automática |
| STL | .O STL | Extensão de detecção automática |
| 3MF | .3MF | Extensão de detecção automática |
Nota de: O que éFileFormat.GLTF2_BINARY, FileFormat.GLTF,e FileFormat.MICROSOFT_3MF São None constantes e não devem ser passados para scene.save().Use a detecção automática de extensão de arquivo ou os métodos da fábrica mostrados acima.