3D μοντέλα με Aspose.3D
ΕΚΤΙΜΗΣΗ
Aspose.3D FOSS για Python επιτρέπει την αναπαραγωγή και χειρισμό 3D μοντέλων. παρέχει κεντρικές τάξεις όπως: Scene, Node, Mesh, Geometry, Camera,και Light Δημιουργία και τροποποίηση περιεχομένου 3D.
Το API υποστηρίζει την κατασκευή γραφικών σκηνής μέσω Node και Entity Η ιεραρχία, η γεωμετρία ορίζεται από την Mesh και Geometry, και η κάμερα / φωτός ρυθμίσεις για την αναπαραγωγή. τις δυνατότητες κινουμένων σχεδίων περιλαμβάνουν AnimationClip, AnimationNode, AnimationChannel,και KeyframeSequence για κλειδιά με βάση την κίνηση (ένας πρόσβαση μόνο σε ανάγνωση, η εξαγωγή κινουμένων σχεδίων δεν έχει ακόμη εφαρμοστεί). AssetInfo,Αν και τα αντικείμενα κληρονομούνται από A3DObject και INamedObject για την ονομασία και τη διαχείριση της ιδιοκτησίας.
Κλειδιά χαρακτηριστικά
Το Aspose.3D FOSS για Python παρέχει ένα API για να εργαστεί με 3D μοντέλα, υποστηρίζοντας τις βασικές λειτουργίες μέσω τάξεων όπως: Scene, Mesh, Node, Geometry,και AnimationClip.
- Υποστήριξη για πολλαπλές μορφές αρχείων 3D, συμπεριλαμβανομένων των GLTF2 και WAVEFRONT_OBJ μέσω της
FileFormatΗ κατηγορία επιτρέπει την εισαγωγή και εξαγωγές χωρίς σήμα. η υποστήριξη FBX είναι πειραματική (μόνο τοκονιζερ, ο πλήρης παρσερίστας βρίσκεται σε εξέλιξη). - Η άμεση χειραγώγηση της γεωμετρίας του μασχ μέσω της
MeshκαιGeometryτάξεις επιτρέπει τον ακριβή έλεγχο των κατώτατων όγκων, πολυγών και την εκδήλωση ιδιότητες όπως οι σκιάδες και η ορατότητα. - Η δομή της αναζωογόνησης μέσω
AnimationClip,AnimationNode,καιKeyframeSequenceτα μαθήματα μπορούν να ελεγχθούν και να κατασκευαστούν. σημειώστε ότι η εξαγωγή κινουμένων σχεδίων δεν έχει ακόμη εφαρμοστεί σε αυτή την έκδοση. - Η ιεραρχία της διαχείρισης με τη χρήση
Node,Entity,καιA3DObjectπαρέχει δομημένη οργάνωση 3D αντικειμένων, κάμερες και φώτα. - Διαχείριση και μεταδεδομένα μέσω της
PropertyCollection,AssetInfo,καιINamedObjectυποστηρίζει προσαρμοσμένα χαρακτηριστικά και μεταδεδομένα σε επίπεδο εγγράφου, όπως τίτλος, συγγραφέας και λέξεις-κλειδιά.
Προϋποθέσεις
Για να χρησιμοποιήσετε το Aspose.3D FOSS για Python, βεβαιωθείτε ότι το Python 3.7 ή αργότερα είναι εγκατεστημένο.
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')Παραδείγματα κώδικα
Στο Aspose.3D για Python, η “αποδοχή” μιας σκηνής 3D σημαίνει την εξαγωγή της σε υποστηριζόμενη μορφή εκκίνησης όπως OBJ, GLTF2 ή STL. scene.save() Για να παράγει 3D αρχεία εκκίνησης.
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")Καλύτερες πρακτικές
Προτεραιότητα για την αποδοτικότητα της μνήμης με επαναχρησιμοποίηση Scene και Mesh Αποφύγετε τη δημιουργία ελαττωματικών αντικειμένων σε στενούς ράβδους, ειδικά όταν επεξεργάζεστε πολλά αρχεία στο σύνολο.
- Επαναχρησιμοποίηση
Sceneαντικείμενα σε κύκλους εξαγωγής αντί να εγκαταστήσετε νέα ανά αρχείο. - Προτιμώ
Meshεπαναχρησιμοποίηση με κοινά σημεία ελέγχου για στατική γεωμετρία για τη μείωση της κατανομής. - Χρησιμοποιήστε επιλογές αποθήκευσης ειδικών μορφών (π.χ.,
GltfSaveOptions,StlSaveOptions• Να ελέγχει τον τρόπο παραγωγής και να συντονίζει τη χειραγώγηση. - Χρησιμοποιήστε τις ροές BytesIO για τις εργασίες εξαγωγής σε μνήμη για να αποφύγετε τα I/O κουτιά του δίσκου.
Διαταραχές
Αυτό το τμήμα καλύπτει τα κοινά προβλήματα που αντιμετωπίζονται όταν χρησιμοποιείτε Aspose.3D FOSS για Python, συμπεριλαμβανομένων των συνηθισμένων προβλημάτων. Scene, Node, Mesh,και AnimationClip τάξεις .
Οι ανεπιθύμητες ενέργειες αυξάνουν το NonImplementedError
Οι πράξεις όπως η εξαγωγή μέσω ορισμένων εξαγοράτων και οι μεθόδους που σχετίζονται με την παράδοση, όπως: get_entity_renderer_key() Δεν εφαρμόζονται και ανεβάζουν το NotImplementedError. Αυτό συμβαίνει επειδή η βασική λειτουργικότητα στην τρέχουσα έκδοση του Aspose.3D FOSS για Python είναι ατελείωτη. Για να αποφευχθούν αποτυχίες στο χρόνο εκτέλεσης, ελέγξτε τη διαθεσιμότητα της μεθόδου κατά την επιφάνεια API πριν καλέσετε μη υποστηριζόμενες μεθοδολογίες. Scene.from_file() και scene.save() για υποστηριζόμενες φορτίες και εξαγωγικές ροές εργασίας.
Μισθολογίες που αυξάνουν το NonImplementedError
Το παρακάτω Mesh Οι μέθοδοι δηλώνονται στην επιφάνεια του API, αλλά αυξάνονται NotImplementedError Μην τους καλείτε σε οποιαδήποτε φορτισμένη ή κατασκευασμένη Mesh Η περίπτωση:
| Μέθοδος | Σημειώσεις |
|---|---|
mesh.optimize() | Μισθαιμία βελτιστοποίησης - δεν έχει ακόμη εφαρμοστεί |
mesh.do_boolean(...) | Γενική λειτουργία Boolean - χρησιμοποιήστε τις συγκεκριμένες μεθόδους παρακάτω |
mesh.union(other) | ΕΝΟΔ - Δεν έχει ακόμη εφαρμοστεί |
mesh.difference(other) | Η διαφορά του CSG - δεν έχει ακόμη εφαρμοστεί |
mesh.intersect(other) | ΚΕΠΔ - Δεν έχει ακόμη εφαρμοστεί |
mesh.is_manifold() | Μανιφέλ τεστ - δεν έχει ακόμη εφαρμοστεί |
Mesh(height_map, ...) | Βαθμολογία κατασκευαστή χάρτη - δεν έχει ακόμη εφαρμοστεί |
Εάν η ροή εργασίας σας απαιτεί αυτές τις λειτουργίες, επεξεργαστείτε τη γεωμετρία σε μια βιβλιοθήκη όπως: trimesh ή open3d και επαναπροσδιορίζει το αποτέλεσμα με τη χρήση του Scene.from_file() ή με την κατασκευή ενός νέου Mesh από το ράβδος control_points και polygons.
Η αναμνηστική είναι μόνο διάβασμα
Οι κλάσεις που σχετίζονται με την ανιχνευτική δραστηριότητα, όπως AnimationClip, AnimationNode, AnimationChannel,και KeyframeSequence Μπορεί να ελέγχεται, αλλά η εξαγωγή κινούμενων στοιχείων δεν λειτουργεί.Παρακολουθήστε τα δεδομένα κινούντων ως ανάγνωση μόνο μέχρι να απελευθερωθεί πλήρης υποστήριξη εξόδου.
Η φόρτωση εικόνας κειμένου δεν υποστηρίζεται
Η φόρτωση εικόνων κλωστοϋφαντουργίας για υλικά δεν εφαρμόζεται στο Aspose.3D FOSS για Python. ακόμα και αν οι ιδιότητες του υλικού είναι ρυθμισμένες μέσω της εφαρμογής του Mesh ή Geometry,Για την εξαγωγή στατικού μοντέλου, βασιστείτε σε στερεά χρώματα ή σκιά βάσει στίχου αντί για κλωστογραφίες με βάση τη εικόνα.
Camera και Geometry Η ανανέωση δεν υποστηρίζεται
Η Camera και Geometry Οι τάξεις αυξάνουν το NotImplementedError για τις μεθόδους που σχετίζονται με την rendering, όπως: get_entity_renderer_key().Ενώ αυτές οι τάξεις μπορούν να εγκατασταθούν και να ρυθμιστούν, δεν μπορούν επίσης να χρησιμοποιηθούν σε σωλήνες ραστερίσματος pixel. Node και Mesh για τη σύνθεση σκηνής και τις ροές εργασίας εξαγωγής.
FAQ
Το Aspose.3D για Python υποστηρίζει ραστερικωμένη παραγωγή εικόνας (PNG, JPEG)?
No. Aspose.3D FOSS για Python δεν εκτελεί ραστερίωση βάσει pixel. “Rendering” σε αυτή τη βιβλιοθήκη σημαίνει εξαγωγή σκηνής σε μια μορφή 3D έκδοσης όπως OBJ, GLTF2, STL ή 3MF χρησιμοποιώντας scene.save().Για την παραγωγή εικόνας, ενσωματώστε με ξεχωριστό κινητήρα rendering.
Ποια μορφές εξαγωγής υποστηρίζονται;?
Οι μορφές εξαγωγής που υποστηρίζονται περιλαμβάνουν OBJ, glTF 2.0 / GLB, STL (binary και ASCII), COLLADA (DAE) και 3MF. Χρησιμοποιήστε την επέκταση αρχείου όταν καλέσετε scene.save() για την αυτόματη ανίχνευση μορφής. Για σαφή έλεγχο μορφότυπου, χρησιμοποιήστε τις μεθόδους εργοστασίου FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(),και FileFormat.MICROSOFT_3MF_FORMAT().Σημείωση: Συνεχής τύπου χαρακτηριστικού, όπως FileFormat.GLTF2_BINARY, FileFormat.GLTF, FileFormat.STLASCII, FileFormat.STL_BINARY,και FileFormat.MICROSOFT_3MF Είναι None Απαραίτητο και δεν πρέπει να χρησιμοποιείται. FBX εξαγωγές αυξάνονται NotImplementedError στην τρέχουσα έκδοση.
Μπορώ να διαβάσω τα δεδομένα κινουμένων σχεδίων από ένα φορτισμένο αρχείο 3D;?
Οι δομές κινούμενων αρχείων σε φορτωμένα αρχεία μπορούν να διατεθούν μέσω AnimationClip, AnimationNode, και συναφείς τάξεις, αλλά τροποποιώντας ή επαναεξαγωγή δεδομένων κινουμένων σχεδίων δεν υποστηρίζεται ακόμα και θα προκαλέσει το NonImplementedError.
Συνοπτική αναφορά API
Το Aspose.3D FOSS για το Python παρέχει βασικές τάξεις για τη χειραγώγηση 3D σκηνών, συμπεριλαμβανομένων και των Scene, Node, Mesh,και Geometry.Η Scene Η τάξη λειτουργεί ως ρίζα του δοχείου, ενώ Node τα αντικείμενα σχηματίζουν τη ιεραρχία του γραφείου σκηνής, και Mesh Οι περιπτώσεις καθορίζουν τις γεωμετρικές μορφές με Geometry Τα δεδομένα.
Η υποστήριξη της αντίδρασης βασίζεται σε AnimationClip, AnimationNode, AnimationChannel,και KeyframeSequence Παρόλο που η εξαγωγή κινούμενων σχεδίων δεν έχει ακόμη εφαρμοστεί, οι προγραμματιστές μπορούν ακόμα να ελέγξουν τις δομές κινούντων χρησιμοποιώντας αυτές τις τάξεις. Extrapolation Η τάξη και ExtrapolationType Το enum επιτρέπει τον έλεγχο της συμπεριφοράς έξω από τις γραμμές του κλειδιού.
Entity-περιφέρει χαρακτηριστικά όπως η ορατότητα και το σκιά εκθέσεων εκτίθενται μέσω Geometry.visible, Geometry.cast_shadows,και Geometry.receive_shadows.Οι σχέσεις γραφικών σκηνής διαχειρίζονται μέσω Entity.parent_node και Entity.parent_nodes,ενώ Node αντικείμενα εκθέτουν GlobalTransform για μετάφραση, περιστροφή και κλίμακα. Camera και Light Οι οργανισμοί που κληρονομήθηκαν από Entity και την υποστήριξη της αποκλεισμού μέσω excluded.
Δείτε επίσης
Σχετικά στοιχεία για την εργασία με το Aspose.3D FOSS για Python.