3D Modelleri Aspose.3D ile Render Edin

Genel Bakış

Aspose.3D, Python uygulamalarında 3D modellerin render edilmesini ve manipülasyonunu sağlar. Temel sınıflar sunar, örneğin Scene, Node, Mesh, Geometry, Camera, ve Light 3D içeriği oluşturmak ve değiştirmek için python 3d görselleştirme, python 3d oyun ve 3d python library kullanım durumları.

API, şunları destekler scene grafik oluşturmayı şunun aracılığıyla Node ve Entity hiyerarşileri, geometri tanımını şunun aracılığıyla Mesh ve Geometry, ve render için kamera/ışık ayarını. Animasyon yetenekleri şunları içerir AnimationClip, AnimationNode, AnimationChannel, ve KeyframeSequence anahtar kare tabanlı hareket için (yalnızca okuma erişimi; animasyon dışa aktarımı henüz uygulanmadı). Varlık meta verileri şunun aracılığıyla erişilebilir AssetInfo, ancak scene nesneler şunlardan miras alır A3DObject ve INamedObject adlandırma ve property yönetim.

Ana Özellikler

Aspose.3D, 3D modellerle çalışmak için bir Python API’si sağlar, temel işlemleri şu sınıflar gibi Scene, Mesh, Node, Geometry, ve AnimationClip. Geliştiricilerin python 3d görselleştirme, python 3d oyun ve 3d python motoru iş akışları için 3D içeriği yüklemelerini, manipüle etmelerini ve dışa aktarmalarını sağlar.

  • GLTF2 ve WAVEFRONT_OBJ dahil olmak üzere birden fazla 3D dosya formatı desteği, aracılığıyla FileFormat sınıfı, 3d python oyun ve 3d python görselleştirme projelerinde sorunsuz içe ve dışa aktarmayı sağlar. FBX desteği deneysel (sadece tokenleştirici; tam ayrıştırıcı üzerinde çalışılıyor).
  • Ağ geometrisinin doğrudan manipülasyonu, aracılığıyla Mesh ve Geometry sınıfları, köşe noktaları, çokgenler ve gölgeler ile görünürlük gibi render özellikleri üzerinde hassas kontrol sağlar.
  • Animasyon yapıları, aracılığıyla AnimationClip, AnimationNode, ve KeyframeSequence sınıflar incelenebilir ve oluşturulabilir; bu sürümde animasyon dışa aktarımının henüz uygulanmadığını unutmayın.
  • Sahne hiyerarşi yönetimi, kullanarak Node, Entity, ve A3DObject karmaşık python 3d görselleştirme sahneleri için 3D nesneler, kameralar ve ışıkların yapılandırılmış organizasyonunu sağlar.
  • Özellik ve meta veri işleme, aracılığıyla PropertyCollection, AssetInfo, ve INamedObject özel nitelikleri ve belge düzeyinde meta verileri, örneğin başlık, yazar ve anahtar kelimeler, destekler.

Ön Koşullar

3D python görselleştirme için Aspose.3D’yi kullanmak üzere, Python 3.7 veya daha yeni bir sürümünün kurulu olduğundan emin olun. Paketi kurun library pip kullanarak aşağıdaki komutla pip install aspose-3d-foss. Paket, temel sınıflar gibi sağlar Scene, Mesh, Node, Entity, Geometry, Camera, Light, ve FileFormat 3d python oyun ve 3d python motor iş akışlarıyla çalışmak için.

pip install aspose-3d-foss
import aspose.threed
print('Installation successful')

Kod Örnekleri

Aspose.3D içinde Python için, bir 3D sahneyi “rendering” etmek, onu OBJ, GLTF2 veya STL gibi desteklenen bir çıktı formatına aktarmak anlamına gelir. Piksel tabanlı rasterleştirme desteklenmez; kullan scene.save() 3D çıktı dosyaları üretmek için.

from aspose.threed import Scene, FileFormat, Mesh, Node

# Load a scene from file
scene = Scene.from_file("model.obj")

# Inspect the root node
root = scene.root_node
for child in root.child_nodes:
    if isinstance(child.entity, Mesh):
        print(f"Mesh: {child.name}, control points: {len(child.entity.control_points)}")

# Export to GLTF 2.0 binary — use extension-based detection or FileFormat.GLTF2() factory
# Note: FileFormat.GLTF2_BINARY is None (stub constant, not implemented).
# Use the .glb extension for auto-detection, or FileFormat.GLTF2() for explicit format.
scene.save("output.glb")
print("Scene exported to output.glb")

En İyi Uygulamalar

Aspose.3D’yi python 3d görselleştirme veya bir python 3d oyun motoru oluşturmak için kullanırken, belleği verimli kullanmayı yeniden kullanarak önceliklendirin Scene ve Mesh mümkün olduğunda örnekleri. Sıkı döngülerde gereksiz nesneler oluşturmaktan kaçının, özellikle toplu 3d python dönüşümü için birçok dosya işlenirken.

  • Yeniden kullan Scene dosya başına yeni nesneler oluşturmak yerine, ihracat döngüleri boyunca nesneleri yeniden kullan.
  • Tercih edin Mesh statik geometri için paylaşılan kontrol noktalarıyla yeniden kullanarak tahsis yükünü azalt.
  • Biçime özgü kaydetme seçeneklerini kullanın (örneğin,., GltfSaveOptions, StlSaveOptions).
  • Python 3D görselleştirme boru hatlarında disk I/O darboğazlarını önlemek için bellek içi dışa aktarma iş akışlarında BytesIO akışlarını kullanın.

Sorun Giderme

Bu bölüm, Aspose.3D’yi 3D python görselleştirme ve oyun geliştirme iş akışlarında, aşağıdakileri içeren yaygın sorunları kapsar Scene, Node, Mesh, AnimationClip sınıfları.

Desteklenmeyen işlemler NotImplementedError hatası verir

Belirli dışa aktarıcılar aracılığıyla dışa aktarma ve render ile ilgili yöntemler gibi işlemler get_entity_renderer_key() gerçekleştirilmemiştir ve NotImplementedError hatası verir. Bu, mevcut version Aspose.3D’nin Python için olan kısmı eksiktir. Çalışma zamanı hatalarından kaçınmak için, desteklenmeyen yöntemleri çağırmadan önce API yüzeyine karşı yöntem kullanılabilirliğini doğrulayın. Kullan Scene.from_file() ve scene.save() desteklenen yükleme ve dışa aktarma iş akışları için.

NotImplementedError hatası veren Mesh yöntemleri

Aşağıdaki Mesh yöntemler API yüzeyinde tanımlanmıştır ancak hata oluşturur NotImplementedError bu sürümde. Yüklenmiş veya oluşturulmuş herhangi bir örnek üzerinde bunları çağırmayın Mesh örnek:

YöntemNotlar
mesh.optimize()Mesh optimizasyonu — henüz uygulanmadı
mesh.do_boolean(...)Genel boolean işlemi — aşağıdaki belirli yöntemleri kullanın
mesh.union(other)CSG birleşimi — henüz uygulanmadı
mesh.difference(other)CSG farkı — henüz uygulanmadı
mesh.intersect(other)CSG kesişimi — henüz uygulanmadı
mesh.is_manifold()Manifold testi — henüz uygulanmadı
Mesh(height_map, ...)Yükseklik haritası yapıcı varyantı — henüz uygulanmadı

Eğer iş akışınız bu işlemleri gerektiriyorsa, geometriyi şu gibi bir kütüphanede işleyin trimesh veya open3d ve sonucu şu kullanarak yeniden içe aktarın Scene.from_file() veya yeni bir Mesh ham veriden control_points ve polygons.

Animasyon özellikleri yalnızca okunabilir

Animasyonla ilgili sınıflar, örneğin AnimationClip, AnimationNode, AnimationChannel, ve KeyframeSequence incelenebilir ancak animasyon dışa aktarımı işlevsel değildir. Python 3D oyun motorları veya Python 3D görselleştirme araçları geliştiren geliştiriciler, tam dışa aktarım desteği yayınlanana kadar animasyon verilerini yalnızca okunabilir olarak ele almalıdır.

Doku görüntüsü yükleme desteklenmiyor

Doku görüntülerini yükleme materials Aspose.3D’de uygulanmadı. Even if material properties şunlar aracılığıyla ayarlanır Mesh veya Geometry, doku eşlemesi doğru renderlanmayacaktır. Statik model dışa aktarma için, görüntü tabanlı dokular yerine katı renkler veya köşe tabanlı gölgelendirme kullanın.

Camera ve Geometry renderleme desteklenmiyor

The Camera ve Geometry sınıfları, renderleme ile ilgili yöntemler gibi NotImplementedError yükseltir get_entity_renderer_key(). Bu sınıflar örneklenebilir ve yapılandırılabilir, ancak piksel rasterizasyonu boru hatlarında kullanılamaz. Kullan Node ve Mesh için scene bileşim ve dışa aktarma iş akışları.

FAQ

Aspose.3D, Python için rasterleştirilmiş görüntü çıktısını (PNG, JPEG) destekliyor mu?

Hayır. Aspose.3D, Python için piksel tabanlı rasterizasyon yapmaz. Bu kütüphanede “Rendering” bir sahneyi OBJ, GLTF2, STL veya 3MF gibi bir 3D çıktı formatına dışa aktarmak anlamına gelir, kullanılan scene.save(). Görüntü çıktısı için ayrı bir render motoru ile bütünleştirin.

Hangi dışa aktarma formatları destekleniyor?

Desteklenen dışa aktarma formatları arasında OBJ, glTF 2.0 / GLB, STL (binary ve ASCII), COLLADA (DAE) ve 3MF bulunur. Çağırırken dosya uzantısını kullanın scene.save() otomatik format algılaması için. Açık format kontrolü için, fabrika yöntemlerini kullanın FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(), ve FileFormat.MICROSOFT_3MF_FORMAT(). Not: öznitelik tarzı sabitler gibi FileFormat.GLTF2_BINARY, FileFormat.GLTF, FileFormat.STLASCII, FileFormat.STL_BINARY, ve FileFormat.MICROSOFT_3MF dır None taslaklardır ve kullanılmamalıdır. FBX dışa aktarımı şu hatayı verir NotImplementedError geçerli sürümde.

Yüklenmiş bir 3D dosyasından animasyon verilerini okuyabilir miyim?

Yüklenen dosyalardaki animasyon yapıları şu aracılığıyla erişilebilir AnimationClip, AnimationNode, ve ilgili sınıflar, ancak animasyon verilerini değiştirmek veya yeniden dışa aktarmak henüz desteklenmiyor ve NotImplementedError hatası fırlatacaktır.

API Referans Özeti

Aspose.3D, Python içinde 3D sahneleri manipüle etmek için temel sınıflar sağlar, şunları içeren Scene, Node, Mesh, ve Geometry. Scene Python 3D oyun, Python 3D motoru veya Python 3D görselleştirme projeleri üzerinde çalışan geliştiriciler, bu sınıfları programlı olarak 3D içerik oluşturmak ve değiştirmek için kullanabilir. The Node sınıf kök kapsayıcı olarak hizmet verir, iken scene nesneler şunu oluşturur Mesh graf hiyerarşisini ve Geometry örnekler, geometrik şekilleri şu ile tanımlar.

Animasyon desteği Aspose.3D, şunlara dayanır AnimationClip, AnimationNode, AnimationChannel, ve KeyframeSequence tanımlamak için time-tabanlı dönüşümler. Animasyon dışa aktarımı henüz uygulanmamış olsa da, geliştiriciler bu sınıfları kullanarak animasyon yapılarını hâlâ inceleyebilirler. Bu Extrapolation sınıf ve ExtrapolationType enum, anahtar kare aralıkları dışındaki davranış üzerinde kontrol sağlar.

Entity-level properties görünürlük ve gölge dökümü gibi özellikler aracılığıyla ortaya çıkar. Geometry.visible, Geometry.cast_shadows, ve Geometry.receive_shadows. Scene graf ilişkileri aracılığıyla yönetilir Entity.parent_node ve Entity.parent_nodes, iken Node nesneler şunları sunar GlobalTransform için translation, rotation, ve scale. Camera ve Light entities şu sınıftan miras alır Entity ve şu yol ile dışlamayı destekler excluded.

Ayrıca Bakınız

Aspose.3D, Python içinde 3D model manipülasyonu için temel sınıflar sağlar, şunları içeren Scene, Mesh, Node, Geometry, ve AnimationClip. Bu sınıflar, tutarlı bir API yüzeyi aracılığıyla python 3d görselleştirme, python 3d oyun geliştirme ve 3d python iş akışlarını destekler.

 Türkçe