Εισαγωγή
Aspose.3D FOSS για TypeScript (@aspose/3d) είναι μια ανοιχτού κώδικα, αδειοδοτημένη με MIT βιβλιοθήκη μορφής αρχείων 3D, σχεδιασμένη κυρίως για Node.js. Οι προγραμματιστές που δημιουργούν προβολείς μοντέλων 3D, μετατροπείς μορφών, εργαλεία επεξεργασίας γεωμετρίας ή διακομιστικές 3D αλυσίδες μπορούν να το εγκαταστήσουν με μια εντολή (δείτε τον Οδηγό εγκατάστασης) και άμεσα να αρχίσουν να φορτώνουν, να δημιουργούν και να εξάγουν περιεχόμενο 3D. Η βιβλιοθήκη χρησιμοποιεί require('fs') και Buffer από το Node.js· η χρήση σε πρόγραμμα περιήγησης απαιτεί κατάλληλα shim για αυτά τα API και δεν υποστηρίζεται επίσημα.
Η βιβλιοθήκη υποστηρίζει τις κύριες μορφές ανταλλαγής — OBJ, glTF 2.0 / GLB, STL, 3MF και COLLADA τόσο για εισαγωγή όσο και για εξαγωγή. Υπάρχουν κλάσεις εισαγωγέα/εξαγωγέα FBX, αλλά δεν έχουν ακόμη ενσωματωθεί στην αυτόματη ανίχνευση μορφής. Το API του γραφήματος σκηνής αντικατοπτρίζει το μοντέλο που είναι γνωστό από τα εργαλεία δημιουργίας 3D: ένα Scene περιέχει ένα rootNode, κάθε Node μπορεί να μεταφέρει κόμβους-παιδιά και αντικείμενα οντοτήτων (Mesh, Camera, Light), και η ιεραρχία μετασχηματισμών είναι πλήρως προσβάσιμη για ανάγνωση και εγγραφή.
Κύρια χαρακτηριστικά
- Πολυμορφική Ε/Ε: Εισαγωγή και εξαγωγή OBJ (με
.mtlυλικά), glTF 2.0 / GLB, STL (δυαδικό και ASCII), 3MF, και COLLADA από διαδρομές αρχείων και από τη μνήμηBufferαντικείμενα. Η υποστήριξη FBX δεν είναι ακόμη ενσωματωμένη στην αυτόματη ανίχνευση. - Γράφημα σκηνής API:
Scene,Node,Mesh,Camera,Lightιεραρχία με πλήρη διαχείριση γονέα/παιδιού· περιήγηση στους κόμβους αναδρομικά μέσωnode.childNodes - σύστημα υλικών PBR: Υλικά Lambert, Phong και PBR (μεταλλικό/τραχύτητα) προσβάσιμα μέσω
node.material - Λειτουργίες πλέγματος: Πρόσβαση σε ακατέργαστα δεδομένα κορυφών μέσω
mesh.controlPoints(πίνακας τουVector4), δείκτες πολυγώνων μέσωmesh.polygonCount, και κανάλια στοιχείων κορυφών μέσωmesh.getElement() - Μαθηματικά βοηθητικά εργαλεία:
Vector2,Vector3,Vector4,Matrix4,Quaternion, και τύποι περιοριστικού πλαισίου για χωρικούς υπολογισμούς - Σύστημα animation: Animation με keyframe
AnimationClip,AnimationChannel, και καμπύλες παρεμβολής (γραμμική, Bezier, TCB spline) - Επιλογές ειδικές για μορφότυπο: Κατά μορφότυπο
LoadOptions/SaveOptionsclasses ελέγχουν την αντιστροφή συντεταγμένων, την κλίμακα, τη φόρτωση υλικού και άλλα
Ξεκινώντας
Κατασκευάστε το πακέτο από τον πηγαίο κώδικα. Απαιτείται Node.js 18 ή νεότερο· συνιστάται TypeScript 5.0+.
git clone https://github.com/aspose-3d-foss/Aspose.3D-FOSS-for-TypeScript.git
cd Aspose.3D-FOSS-for-TypeScript
npm install
npm run buildΦορτώστε ένα αρχείο OBJ και επιθεωρήστε τη σκηνή:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);
for (const node of scene.rootNode.childNodes) {
if (node.entity && 'controlPoints' in node.entity) {
const mesh = node.entity as any;
console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
}
}
Γράφημα Σκηνής API
Κάθε σκηνή είναι ένα δέντρο από αντικείμενα Node με ρίζα στο scene.rootNode. Δημιουργήστε την ιεραρχία με addChildNode(), συνδέστε οντότητες όπως Camera ή Light σε έναν κόμβο μέσω της ιδιότητας entity, και διαβάστε τον τοπικό ή παγκόσμιο μετασχηματισμό κάθε κόμβου μέσω transform και globalTransform.
import { Scene, Node, Camera, Light } from '@aspose/3d';
const scene = new Scene();
const cameraNode = new Node('MainCamera');
cameraNode.entity = new Camera('MainCamera');
scene.rootNode.addChildNode(cameraNode);
const lightNode = new Node('KeyLight');
lightNode.entity = new Light('KeyLight');
scene.rootNode.addChildNode(lightNode);
for (const child of scene.rootNode.childNodes) {
console.log(`${child.name}: ${child.entity?.constructor.name}`);
}
Βοηθήματα Μαθηματικών
Vector3, Vector4, Matrix4 και Quaternion υποστηρίζουν κάθε γεωμετρική λειτουργία στη βιβλιοθήκη. Vector3 και Vector4 εκθέτουν τα στοιχεία x/y/z(/w) συν length, dot(), και cross(); Matrix4 είναι ένα πλέγμα 4×4 προσβάσιμο μέσω m00–m33 με transpose() και concatenate(); Quaternion παρέχει normalize(), conjugate(), inverse(), και dot() για μαθηματικά περιστροφής.
import { Vector3, Quaternion, Matrix4 } from '@aspose/3d/utilities';
const position = new Vector3(1.0, 2.0, 3.0);
const rotation = new Quaternion(1.0, 0.0, 0.0, 0.0);
const transform = new Matrix4();
console.log(`length=${position.length} determinant=${transform.determinant}`);
console.log(`rotation w=${rotation.w} x=${rotation.x} y=${rotation.y} z=${rotation.z}`);
Δείτε επίσης
- Πώς να φορτώσετε 3Δ μοντέλα στο TypeScript
- Πώς να εξάγετε glTF στο TypeScript
- Υποστήριξη Μορφών
- API Reference