FBX'i glTF'ye Python içinde dönüştürme

FBX'i glTF'ye Python içinde 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 bunu şu şekilde ele alır Scene.from_file() FBX dosyasını yüklemek için ve scene.save() glTF çıktısını yazmak için.

FBX desteği hakkında not: Aspose.3D FOSS şunlara sahiptir deneysel FBX desteği. FBX tokenleştiricisi uygulanmış ancak ayrıştırıcıda bilinen yapısal hatalar var: 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ı şunları tetikleyebilir RecursionError. Basit düz‑geometri FBX çalışabilir. Üretim kullanımında, FBX yerine COLLADA, OBJ veya glTF tercih edin. Bkz. FAQ daha fazla ayrıntı için.

Önkoşullar

  • Python 3.7 veya üzeri
  • 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ükleyin

Kullan Scene.from_file() FBX dosyasını yüklemek için. Biçim, otomatik olarak .fbx uzantıdan tespit edilir.

from aspose.threed import Scene

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

Adım 2: glTF İkili (GLB) Olarak Kaydedin

Çağır scene.save() ile .glb uzantısını kullanarak çı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 dır None geçerli kütüphane sürümündeki stub sabitleri ve bunlar şu şekilde geçirilmemelidir scene.save(). Dosya uzantısı otomatik algılamasını kullanın veya FileFormat.GLTF2() fabrika 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ımı

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

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ı Biçimleri

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

Çıktı BiçimiUzantıNasıl Belirtilir
glTF 2.0 ikili.glbuzantı otomatik algıla (veya FileFormat.GLTF2())
glTF 2.0 JSON.gltfuzantı otomatik algıla (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 şunlardır None taslak sabitlerdir ve şunlara geçirilmemelidir scene.save(). Dosya uzantısı otomatik algılamasını kullanın veya yukarıda gösterilen fabrika yöntemlerini kullanın.

Ayrıca Bakınız

 Türkçe