3D model s Aspose.3D

Přehled

Aspose.3D FOSS pro Python umožňuje renderování a manipulaci 3D modelů. Poskytuje základní třídy, jako jsou: Scene, Node, Mesh, Geometry, Camera,a) Light vytvořit a upravit 3D obsah.

API podporuje grafickou konstrukci scén prostřednictvím Node a) Entity Hierarchie, definice geometrie přes Mesh a) Geometry,K dispozici jsou: AnimationClip, AnimationNode, AnimationChannel,a) KeyframeSequence pro pohyb založený na klíčovém snímku (přístup pouze k čtení; animační export ještě nebyl implementován). Metadata aktiv jsou přístupná prostřednictvím AssetInfo, zatímco objekty scény zdědí z A3DObject a) INamedObject pro řízení jmenování a majetku.

Klíčové prvky

Aspose.3D FOSS pro Python poskytuje API pro práci s 3D modely, podporuje jádro operací prostřednictvím tříd jako: Scene, Mesh, Node, Geometry,a) AnimationClip.

  • Podpora pro více 3D souborových formátů včetně GLTF2 a WAVEFRONT_OBJ prostřednictvím systému FileFormat FBX je experimentální (pouze tokenizer; plný parser probíhá).
  • Přímá manipulace s geometrií okruhu pomocí Mesh a) Geometry třídy umožňují přesné ovládání vrchů, polygonů a vykreslování vlastností jako stín a viditelnost.
  • Animační struktury prostřednictvím AnimationClip, AnimationNode,a) KeyframeSequence V této verzi není ještě implementován export animace.
  • Správa hierarchie scén pomocí Node, Entity,a) A3DObject poskytuje strukturovanou organizaci 3D objektů, kamer a světel.
  • Zpracování vlastností a metadát prostřednictvím: PropertyCollection, AssetInfo,a) INamedObject podporuje vlastní atributy a metadata na úrovni dokumentu, jako je název, autor a klíčová slova.

Předpoklady

Pro použití Aspose.3D FOSS pro Python se ujistěte, že je nainstalován Python 3.7 nebo novější verze. Nainstalujte balíček pomocí pip.

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.
import aspose.threed
print('Installation successful')

Příklady kódu

V Aspose.3D pro Python znamená “renderování” 3D scény exportovat do podporovaného výstupního formátu, jako je OBJ, GLTF2 nebo STL. Rasterizování na bázi pixelů není podporováno; použití scene.save() k vytvoření 3D výstupních souborů.

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

Nejlepší postupy

Upřednostňujte účinnost paměti opětovným použitím. Scene a) Mesh Vyhněte se vytváření nadbytečných objektů v úzkých smyčkách, zejména při zpracování mnoha souborů ve skupině.

  • Opětovné použití Scene objekty v rámci celých vývozních cyklů namísto instanciování nových za soubor.
  • Preferovat Mesh opětovné použití se sdílenými kontrolními body pro statickou geometrii za účelem snížení přidělování nákladů.
  • Používejte možnosti ukládání specifické pro formát (např., GltfSaveOptions, StlSaveOptions) ovládat výstupní režim a koordinovat manipulaci.
  • Použijte BytesIO toky pro pracovní postupy exportu v paměti, abyste se vyhnuli diskovým úniku/vypuštění.

Vyřešení problémů

Tato část pokrývá běžné problémy, které se vyskytují při používání Aspose.3D FOSS pro Python zahrnující funkci Scene, Node, Mesh,a) AnimationClip Vyučování.

Nepodporované operace vyvolávají chybu NotImplementedError

Operace, jako je vývoz přes některé vývozce a metody související s odtělováním, např. get_entity_renderer_key() jsou neimplementovány a vyvolávají NotImplementedError. To se děje proto, že základní funkce v aktuální verzi Aspose.3D FOSS pro Python je nekompletní. Chcete-li zabránit selhání runtime, ověřte dostupnost metody na povrchu API před voláním nes podporovaných metod. Použijte Scene.from_file() a) scene.save() pro podporované pracovní postupy na nakládání a vývoz.

Metody sítě, které vyvolávají chybu NotImplementedError

Následující: Mesh metody jsou deklarovány na povrchu API, ale zvyšují se. NotImplementedError Nevolej je na žádné naložené nebo postavené Mesh Příklad:

MetodikaPoznámky
mesh.optimize()Optimalizace okřídlených sítí ještě nezahrnuto
mesh.do_boolean(...)Obecná booleans operace použít konkrétní metody níže
mesh.union(other)Unie CSG ještě nezahrnuto
mesh.difference(other)Rozdíl v CSG ještě nezahrnotený
mesh.intersect(other)Křižovatka CSG ještě nezahrnuto
mesh.is_manifold()Test na různorodost ještě nebyl proveden
Mesh(height_map, ...)Varianta konstruktoru mapy výšky ještě nebyla implementována

Pokud váš pracovní postup vyžaduje tyto operace, zpracování geometrie v knihovně jako je například trimesh nebo: open3d a znovu dovážet výsledek pomocí Scene.from_file() nebo výstavbou nového, Mesh z surového materiálu control_points a) polygons.

Animované funkce jsou pouze pro čtení.

Třídy související s animací, jako jsou: AnimationClip, AnimationNode, AnimationChannel,a) KeyframeSequence lze prověřit, ale animovaný export není funkční. Podatky z animace považujte za pouze pro čtení až do úplného uvolnění podpory exportu.

Nespokojeno načítání texturních obrázků.

Naložení texturních obrazů pro materiály není implementováno v Aspose.3D FOSS pro Python. I když jsou vlastnosti materiálů nastaveny prostřednictvím Mesh nebo: Geometry,Pro export statického modelu se spíše spoléhejte na pevné barvy nebo stínování založené na vrcholu než na textury založené na obraze.

Camera a) Geometry Představení není podporováno.

Úřad pro bezpečnost a ochranu zdraví Camera a) Geometry třídy vyvolají NotImplementedError pro metody související s renderací, jako je: get_entity_renderer_key().Zatímco tyto třídy mohou být instanciovány a konfigurovány, nelze je použít v pixelových rasterizovaných potrubích. Použijte Node a) Mesh pro složení scén a pracovní postupy exportu.

FAQ

Podporuje Aspose.3D pro Python výstup rasterizovaného obrazu (PNG, JPEG)?

Aspose.3D FOSS pro Python nevyvíjí rasterizování založené na pixelech. “Rendering” v této knihovně znamená export scény do 3D výstupního formátu, jako je OBJ, GLTF2, STL nebo 3MF pomocí scene.save().Pro výstup obrazu, integrovat s samostatným renderingovým motorem.

Jaké exportní formáty jsou podporovány?

Podporované exportní formáty zahrnují OBJ, glTF 2.0 / GLB, STL (binární a ASCII), COLLADA (DAE) a 3MF. Použijte při volání rozšíření souboru scene.save() pro automatické detekci formátu. Pro explicitní kontrolu formatu použijte tovární metody FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(),a) FileFormat.MICROSOFT_3MF_FORMAT().Poznámka: konstanty typu atributů, jako jsou FileFormat.GLTF2_BINARY, FileFormat.GLTF, FileFormat.STLASCII, FileFormat.STL_BINARY,a) FileFormat.MICROSOFT_3MF jsou: None FBX vývozu zvyšuje, a to je velmi důležité. NotImplementedError v aktuální verzi.

Můžu číst animační data z nabité 3D soubory?

Animované struktury v načtených souborech lze přístupit prostřednictvím AnimationClip, AnimationNode, a související třídy, ale úprava nebo opětovný export animačních dat ještě není podporován a vyvolá NotImplementedError.

Souhrnná referenční informace API

Aspose.3D FOSS pro Python poskytuje základní třídy pro manipulaci s 3D scénami, včetně: Scene, Node, Mesh,a) Geometry.- To je ono . Scene třída slouží jako kontainer pro kořeny, zatímco Node objekty tvoří hierarchii grafu scény a Mesh Příklady definují geometrické tvary s: Geometry data.

Podpora animace je založena na: AnimationClip, AnimationNode, AnimationChannel,a) KeyframeSequence Přestože animační export ještě není implementován, mohou vývojáři stále zkontrolovat strukturu animace pomocí těchto tříd. Extrapolation třída a ExtrapolationType enum umožňují ovládat chování mimo rozsah klíčových rámců.

Entity-využívá se pro zachycení vlastností úrovně, jako je viditelnost a stínové odlití. Geometry.visible, Geometry.cast_shadows,a) Geometry.receive_shadows.Vztah s grafickými scénami je řízen prostřednictvím: Entity.parent_node a) Entity.parent_nodes, zatímco Node Objekty odhalí GlobalTransform pro překládání, otáčení a měření. Camera a) Light subjekty zdědí z Entity a podporovat vyloučení prostřednictvím excluded.

Viz také:

Související zdroje pro práci s Aspose.3D FOSS pro Python.

 Čeština