Εισαγωγή
Χαιρόμαστε να ανακοινώσουμε τη διαθεσιμότητα του Aspose.3D FOSS για TypeScript ως το @aspose/3d npm package. Αυτή η βιβλιοθήκη υπό άδεια MIT φέρνει επεξεργασία 3D σκηνών παραγωγικής ποιότητας σε εφαρμογές TypeScript και Node.js χωρίς να απαιτούνται εγγενή δυαδικά αρχεία, εργαλεία ειδικά για πλατφόρμα ή εμπορικές άδειες.
Η βιβλιοθήκη έχει σχεδιαστεί γύρω από ένα απλό Scene API: φόρτωση ενός 3D αρχείου με scene.open(), επιθεώρηση ή μετασχηματισμό του γραφήματος σκηνής, και εγγραφή του αποτελέσματος με scene.save(). Πλήρεις ορισμοί τύπων TypeScript περιλαμβάνονται· δεν απαιτείται ξεχωριστό @types/ πακέτο.
Κύρια Χαρακτηριστικά
Πολυμορφική I/O. Το πακέτο διαβάζει και γράφει έξι κύριες 3D μορφές σε μια ενιαία εγκατάσταση. OBJ, glTF 2.0, GLB, STL, 3MF και COLLADA υποστηρίζουν και εισαγωγή και εξαγωγή. Υπάρχουν κλάσεις εισαγωγέα/εξαγωγέα FBX, αλλά η αυτόματη ανίχνευση μορφής δεν είναι ακόμη ενεργοποιημένη, έτσι τα αρχεία FBX δεν μπορούν να φορτωθούν μέσω scene.open().
Υποστήριξη TypeScript πρώτης τάξης. Όλες οι δημόσιες κλάσεις, οι απαριθμήσεις και οι τύποι επιλογών είναι πλήρως τυποποιημένες. Τα IDE με υποστήριξη της υπηρεσίας γλώσσας TypeScript (VS Code, WebStorm κ.λπ.) παρέχουν ακριβή αυτόματη συμπλήρωση και ενσωματωμένη τεκμηρίωση για κάθε κλήση API.
Συμβατότητα με Node.js 18–22+. Το πακέτο δοκιμάζεται με τις εκδόσεις LTS του Node.js 18, 20 και 22. Δεν μεταγλωττίζονται εγγενή πρόσθετα κατά την εγκατάσταση, οπότε λειτουργεί σε όλες τις πλατφόρμες που υποστηρίζει το Node.js.
Μία εξάρτηση χρόνου εκτέλεσης. Η μόνη εξάρτηση είναι xmldom, χρησιμοποιείται αποκλειστικά για την ανάλυση XML COLLADA. Όλοι οι άλλοι αναλυτές μορφών είναι καθαρές υλοποιήσεις JavaScript.
Άδεια MIT. Χρήση @aspose/3d σε εμπορικά, ανοιχτού κώδικα ή εσωτερικά έργα χωρίς περιορισμούς.
Γρήγορη Εκκίνηση
Εγκαταστήστε το πακέτο:
npm install @aspose/3d
Φορτώστε ένα αρχείο OBJ και μετατρέψτε το σε δυαδικό GLB:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true; // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);
console.log('Converted to GLB successfully');
Επανάληψη πάνω από κόμβους σκηνής για να ελέγξετε τη γεωμετρία:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
for (const node of scene.rootNode.childNodes) {
console.log(`Node: ${node.name}`);
if (node.entity) {
console.log(` Entity type: ${node.entity.constructor.name}`);
}
}
Υποστηριζόμενες Μορφές
| Μορφή | Επέκταση | Εισαγωγή | Εξαγωγή | Σημειώσεις |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ναι | Ναι | Διαβάζει/γράφει .mtl αρχεία υλικού |
| glTF 2.0 | .gltf | Ναι | Ναι | JSON με εξωτερικό .bin buffer |
| Δυαδικό GLB | .glb | Ναι | Ναι | Ορισμός binaryMode: true σε GltfSaveOptions |
| STL | .stl | Ναι | Ναι | ASCII και binary STL |
| 3MF | .3mf | Ναι | Ναι | Αρχείο Open Packaging Convention |
| FBX | .fbx | Όχι* | Όχι* | Υπάρχει importer/exporter, αλλά η αυτόματη ανίχνευση μορφής δεν είναι συνδεδεμένη |
| COLLADA | .dae | Ναι | Ναι | Απαιτεί ενσωματωμένο xmldom εξάρτηση |
Πλεονεκτήματα TypeScript
Εργασία με @aspose/3d σε TypeScript εντοπίζει σφάλματα κατηγορίας κατά τη μεταγλώττιση αντί κατά το χρόνο εκτέλεσης. Όταν καλείτε scene.save(), ο μεταγλωττιστής επαληθεύει ότι το αντικείμενο επιλογών ταιριάζει με το αναμενόμενο SaveOptions υποτύπο για την επιλεγμένη μορφή. Οι επιλογές φόρτωσης και αποθήκευσης ειδικές για τη μορφή εκθέτουν μόνο τις ιδιότητες που σχετίζονται με αυτή τη μορφή· δεν υπάρχει ατυποποιημένο σακίδιο επιλογών για εικασία.
Για παράδειγμα, GltfSaveOptions.binaryMode είναι τυποποιημένο boolean, έτσι ο μεταγλωττιστής απορρίπτει saveOpts.binaryMode = 'yes' πριν εκτελεστεί οποιοσδήποτε κώδικας. Ιδιότητες animation στο AnimationClip, κανάλια υλικού στο PbrMaterial, και τύποι στοιχείων κορυφής στο VertexElement είναι όλα παρόμοιας τύπου και ανακαλύψιμα μέσω IntelliSense χωρίς να χρειάζεται να συμβουλευτείτε εξωτερική τεκμηρίωση.
Ανοιχτός κώδικας
Το πακέτο δημοσιεύεται υπό την MIT License. Ο κώδικας πηγής είναι διαθέσιμος στο GitHub. Συνεισφορές, αναφορές σφαλμάτων και αιτήματα υποστήριξης μορφών είναι ευπρόσδεκτα μέσω του συστήματος παρακολούθησης θεμάτων του αποθετηρίου.
Η βιβλιοθήκη έχει μία εξάρτηση χρόνου εκτέλεσης: xmldom έκδοση 0.9+, χρησιμοποιείται μόνο κατά την ανάγνωση ή εγγραφή αρχείων COLLADA. Όλοι οι άλλοι αναλυτές και συγγραφείς είναι αυτόνομες υλοποιήσεις pure-JavaScript χωρίς δυαδικά στοιχεία.
Ξεκινώντας
- npm:
npm install @aspose/3d - Βάση Γνώσεων: Πώς να φορτώσετε 3D μοντέλα σε TypeScript
- Βάση Γνώσεων: Πώς να εξάγετε 3D σκηνές σε glTF/GLB σε TypeScript
- Αναφορά API: Aspose.3D FOSS για TypeScript: Πλήρης Αναφορά Κλάσεων
- GitHub: aspose-3d/aspose-3d-node
Συμπέρασμα
@aspose/3d Η έκδοση 24.12.0 παρέχει μια σταθερή, τυποποιημένη, ελαφριά σε εξαρτήσεις βάση για την επεξεργασία αρχείων 3D σε TypeScript και Node.js. Είτε η περίπτωση χρήσης είναι η μετατροπή μορφών, η επιθεώρηση σκηνής, η εξαγωγή γεωμετρίας ή η ενσωμάτωση σε pipeline, η βιβλιοθήκη καλύπτει τις πιο κοινές μορφές ανταλλαγής 3D υπό μια επιτρεπτική άδεια ανοιχτού κώδικα.
Εγκαταστήστε το σήμερα και ενημερώστε μας τι δημιουργείτε.