Python'da FBX'yi glTF'ye Dönüştürme

Python'da FBX'yi glTF'ye Dönüştürme

Problem

Geliştiricilerin FBX 3D model dosyalarını web görüntüleyicilerde, oyun motorlarında ve modern renderleme boru hatlarında kullanmak için glTF veya GLB formatına dönüştürmeleri gerekir. Aspose.3D, FBX dosyasını yüklemek için Scene.from_file() ve glTF çıktısını yazmak için scene.save() kullanarak bunu gerçekleştirir.

FBX desteği hakkında not: Aspose.3D FOSS, deneysel FBX desteğine sahiptir. FBX tokenleştiricisi uygulanmıştır ancak ayrıştırıcıda bilinen yapısal hatalar vardır: hatalı CLOSE_BRACKET işleme ve karmaşık iç içe FBX kapsamlarında sınırsız özyineleme. Karmaşık veya büyük FBX dosyaları RecursionError tetikleyebilir. Basit düz‑geometri FBX çalışabilir. Üretim kullanımında FBX yerine COLLADA, OBJ veya glTF tercih edin. Daha fazla ayrıntı için FAQ sayfasına bakın.

Önkoşullar

  • Python 3.7 veya daha yeni
  • pip ile kurun: pip install aspose-3d-foss
from aspose.threed import Scene

Dönüştürme Adımları

Adım 1: FBX Dosyasını Yükle

Scene.from_file() kullanarak FBX dosyasını yükleyin. Biçim, .fbx uzantısından otomatik olarak algılanır.

from aspose.threed import Scene

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

Adım 2: glTF Binary (GLB) olarak kaydet

scene.save()‘yi .glb uzantısıyla çağırarak çıktıyı sıkıştırılmış ikili glTF dosyası olarak yazın. Biçim uzantıdan otomatik olarak çıkarılır. Bu önerilen yaklaşımdır: tek dosya, sıkıştırılmış ve geniş çapta uyumlu.

# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")

Not: FileFormat.GLTF2_BINARY ve FileFormat.GLTF, mevcut kütüphane sürümünde None stub sabitleridir ve scene.save()‘ye geçirilmemelidir. Dosya uzantısı otomatik algılamasını veya FileFormat.GLTF2() fabrikası yöntemini kullanın.

Bunun yerine JSON glTF olarak kaydetmek için:

scene.save("output.gltf")

Adım 3: (İsteğe Bağlı) GltfSaveOptions Kullan

glTF çıktısı üzerinde daha fazla kontrol için, bir GltfSaveOptions nesnesi geçirin:

from aspose.threed.formats import GltfSaveOptions

opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)

Kod Örneği

Üç satırda tam FBX’ten GLB’ye dönüşüm:

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")

Desteklenen Çıktı Formatları

FBX’den dönüştürürken, aşağıdaki çıktı formatları güvenilir bir şekilde çalışır:

Çıktı FormatıUzantıNasıl Belirtilir
glTF 2.0 ikili.glbuzantı otomatik algılama (veya FileFormat.GLTF2())
glTF 2.0 JSON.gltfuzantı otomatik algılama (veya FileFormat.GLTF2())
Wavefront OBJ.objuzantı otomatik algılama
STL.stluzantı otomatik algılama
Microsoft 3MF.3mfuzantı otomatik algılama (veya FileFormat.MICROSOFT_3MF_FORMAT())

Not: FileFormat.GLTF2_BINARY, FileFormat.GLTF ve FileFormat.MICROSOFT_3MF, None stub sabitleridir ve scene.save()‘ye geçirilmemelidir. Dosya uzantısı otomatik algılamasını veya yukarıda gösterilen fabrika yöntemlerini kullanın.

Ayrıca Bakınız

 Türkçe