Render 3D Modelle mit Aspose.3D

Überblick

Aspose.3D FOSS für Python ermöglicht die Darstellung und Manipulation von 3D-Modellen. Scene, Node, Mesh, Geometry, Camera,und Light 3D-Inhalte erstellen und verändern.

Die API unterstützt die Scene Graphic-Konstruktion über Node und Entity Hierarchie, Geometrie Definition durch Mesh und Geometry, und Kamera/Licht-Einstellung für die Renderung. Animationskapazitäten umfassen AnimationClip, AnimationNode, AnimationChannel,und KeyframeSequence für Keyframe-basierte Bewegung (lesen-only Zugang; Animation-Export ist noch nicht implementiert). AssetInfo,Während die Szenen Objekte von A3DObject und INamedObject für den Namen und die Eigentumsverwaltung.

Schlüsselfunktionen

Aspose.3D FOSS für Python bietet eine API für die Arbeit mit 3D-Modellen, die Kernoperationen durch Klassen wie Scene, Mesh, Node, Geometry,und AnimationClip.

  • Unterstützung für mehrere 3D-Dateiformate einschließlich GLTF2 und WAVEFRONT_OBJ durch die FileFormat Die Klasse ermöglicht die unbewegliche Einfuhr und Export. FBX-Support ist experimentell (nur Tokenizer; volles Parser ist in Fortschritt).
  • direkte Manipulation der Mesh-Geometrie über die Mesh und Geometry Klassen ermöglichen genaue Kontrolle über Vertikale, Polygone und rendering Eigenschaften wie Schatten und Sichtbarkeit.
  • Animationstrukturen durch AnimationClip, AnimationNode,und KeyframeSequence Klassen können überprüft und gebaut werden; beachten Sie, dass die Animation Export noch nicht in dieser Version implementiert wird.
  • Hierarchie-Management mit Node, Entity,und A3DObject Sie bietet eine strukturierte Organisation von 3D-Objekten, Kameras und Licht.
  • Eigentums- und Metadatenverarbeitung durch PropertyCollection, AssetInfo,und INamedObject unterstützt benutzerdefinierte Attribute und Dokument-Metadaten wie Titel, Autor und Schlüsselwörter.

Voraussetzungen

Aspose.3D FOSS für Python.

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

Code Beispiele

In Aspose.3D für Python bedeutet “Rendering” eine 3D-Szenen, es in ein unterstütztes Ausgangsformat wie OBJ, GLTF2 oder STL zu exportieren. scene.save() 3D-Ausgabe Dateien zu erstellen.

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

Tipps und beste Praktiken

Die Speichereffizienz durch Wiederverwendung zu prioritieren Scene und Mesh Vermeiden Sie die Erstellung von Redundanten in engen Lücken, vor allem beim Verarbeiten vieler Dateien in der Reihe.

  • Wiederverwendung Scene Objekte über Exportzyklen anstatt neue zu installieren.
  • bevorzugt Mesh Wiederverwendung mit gemeinsamen Kontrollpunkten für statische Geometrie, um die Verteilung der Überlegenheit zu reduzieren.
  • Verwenden Sie Format-spezifische Speicheroptionen (z. B., GltfSaveOptions, StlSaveOptions• die Ausgangsmodus und die Koordinierung der Handlung zu kontrollieren.
  • Verwenden Sie BytesIO Streams für in-memory-Export-Workflows, um Disk I/O-Flaschenzüge zu vermeiden.

Problemlösung

Dieser Abschnitt umfasst häufige Probleme, die beim Einsatz von Aspose.3D FOSS für Python auftreten, die die Scene, Node, Mesh,und AnimationClip Klasse zu.

Ununterstützte Operationen erhöhen UnimplementedError

Transaktionen wie Export über bestimmte Exportere und Rendering-verwandte Methoden wie get_entity_renderer_key() nicht implementiert und erhöht NotImplementedError. Dies geschieht, weil die Kernfunktion in der aktuellen Version von Aspose.3D FOSS für Python unvollständig ist. Um Fehler in der Betriebszeit zu vermeiden, überprüfen Sie die Verfügbarkeit der Methode gegen die API-Spiegel vor der Anrufe ununterstützten Methoden. Scene.from_file() und scene.save() für unterstützte Ladung und Export-Workflüsse.

Methoden, die nicht implementierte Fehler erhöhen

Die folgenden Mesh Methoden werden in der API- Oberfläche erklärt, aber erhöht NotImplementedError in dieser Release. rufen Sie sie nicht auf irgendwelche beladen oder gebaut Mesh In der Instanz:

MethodeNotizen
mesh.optimize()Mesh-Optimierung – noch nicht implementiert
mesh.do_boolean(...)Generische Boolean-Operation – verwenden Sie die unten genannten Methoden
mesh.union(other)CSG Union – noch nicht implementiert
mesh.difference(other)CSG-Differenz – noch nicht implementiert
mesh.intersect(other)CSG-Konzession – noch nicht implementiert
mesh.is_manifold()Manifold Test – noch nicht implementiert
Mesh(height_map, ...)Height-Map Constructor Variante – noch nicht implementiert

Wenn Ihr Workflow diese Operationen erfordert, verarbeiten Sie die Geometrie in einer Bibliothek wie trimesh oder open3d und das Ergebnis wieder importieren, indem Scene.from_file() oder durch die Erstellung eines neuen Mesh von Raw control_points und polygons.

Animationsfunktionen sind nur gelesen

Animationsklassen wie AnimationClip, AnimationNode, AnimationChannel,und KeyframeSequence kann überprüft werden, aber die Animation-Export ist nicht funktional. Behandeln Sie die Animation-Daten als Lesen-einfach, bis die vollständige Export-Support veröffentlicht wird.

Texturbildlastung wird nicht unterstützt

Die Texturbilder für Materialien werden nicht in Aspose.3D FOSS für Python implementiert. Mesh oder Geometry,Für den statischen Modell-Export, verlassen Sie sich auf feste Farben oder vertex-basierte Schatten anstelle von Bild-basierten Texturen.

Camera und Geometry Rendering wird nicht unterstützt

Die Camera und Geometry Klasse erhöhen NotImplementedError für rendering-related Methoden wie get_entity_renderer_key().Während diese Klassen instantiert und konfiguriert werden können, können sie nicht in Pixel-Rasterisierung Pipe verwendet werden. Node und Mesh für die Szenenkomposition und Export-Workflows.

FAQ

Unterstützt Aspose.3D für Python rasterisierte Bildproduktion (PNG, JPEG)?

No. Aspose.3D FOSS für Python führt keine Pixel-basierte Rasterisierung durch. „Rendering“ in dieser Bibliothek bedeutet, eine Szenen in ein 3D-Ausgangsformat wie OBJ, GLTF2, STL oder 3MF zu exportieren, indem Sie scene.save(). Für Bildproduktion, integrieren Sie mit einem separaten Rendering-Motor.

Welche Formate unterstützen sowohl Import und Export?

Unterstützte Exportformate sind OBJ, glTF 2.0 / GLB, STL (binare und ASCII), COLLADA (DAE) und 3MF. scene.save() für die automatische Format-Detektion. Für die explicite Format-Kontrolle verwenden Sie die Fabrikmethoden FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(),und FileFormat.MICROSOFT_3MF_FORMAT().Hinweis: Attribute-Stil-Konstant wie FileFormat.GLTF2_BINARY, FileFormat.GLTF, FileFormat.STLASCII, FileFormat.STL_BINARY,und FileFormat.MICROSOFT_3MF sind None Steck und sollte nicht verwendet werden. FBX Export steigt NotImplementedError in der aktuellen Version.

Kann ich Animationsdaten aus einem hochgeladenen 3D-Datei lesen?

Animationsstrukturen in hochgeladenen Dateien können über AnimationClip, AnimationNode, und damit verbundene Klassen, aber modifizierende oder erneut exportierende Animationsdaten werden noch nicht unterstützt und werden NotImplementedError erhöhen.

API Referenzabschnitt

Aspose.3D FOSS für Python bietet Kernklassen für die Manipulation von 3D-Szenen, einschließlich Scene, Node, Mesh,und Geometry. die Scene Klasse dient als Wurzelkontein, während Node die Objekte bilden die Grafikhierarchie des Scenes und Mesh Die geometrischen Formen werden mit Geometry Daten zu .

Animation unterstützt sich auf AnimationClip, AnimationNode, AnimationChannel,und KeyframeSequence Animations-Export wird zwar noch nicht implementiert, können Entwickler animationsstrukturen noch überprüfen, indem sie diese Klassen verwenden. Extrapolation Klasse und ExtrapolationType Enum ermöglicht die Kontrolle über das Verhalten außerhalb der Schlüsselframe-Ränge.

Entity-Ebene Eigenschaften wie Sichtbarkeit und Schattenkasten werden über Geometry.visible, Geometry.cast_shadows,und Geometry.receive_shadows. Scene graph Beziehungen werden durch Entity.parent_node und Entity.parent_nodes,Während Node Objekte exponieren GlobalTransform für Übersetzung, Rotation und Skala. Camera und Light Einheiten, die von Entity und Unterstützung der Ausschluss durch excluded.

Siehe auch

Aspose.3D FOSS für Python.

 Deutsch