Como converter FBX para glTF em Python

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 Scene

Passos 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:

FormatoExtensãoComo especificar
GSTF.glb / .gltf em inglêsExtensão de detecção automática; GLB binário ou glTF JSON
OBJ.OBJExtensão de detecção automática
STL.O STLExtensão de detecção automática
3MF.3MFExtensã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.

Veja também

 Português