Εισαγωγή

Aspose.3D FOSS για TypeScript (@aspose/3d) είναι μια ανοιχτού κώδικα, αδειοδοτημένη με MIT βιβλιοθήκη μορφής 3D αρχείων για Node.js και σύγχρονα περιβάλλοντα προγράμματος περιήγησης. Οι προγραμματιστές που δημιουργούν προβολείς μοντέλων 3D, μετατροπείς μορφών, εργαλεία επεξεργασίας γεωμετρίας ή διακομιστικές 3D αλυσίδες μπορούν να την εγκαταστήσουν με ένα μόνο npm install @aspose/3d εντολή και να ξεκινήσουν αμέσως τη φόρτωση, κατασκευή και εξαγωγή περιεχομένου 3D.

Η βιβλιοθήκη υποστηρίζει τις κύριες μορφές ανταλλαγής — OBJ, glTF 2.0 / GLB, STL, 3MF και COLLADA για εισαγωγή και εξαγωγή. Υπάρχουν κλάσεις εισαγωγέα/εξαγωγέα FBX, αλλά δεν έχουν ακόμη ενσωματωθεί στην αυτόματη ανίχνευση μορφής. Το API γραφήματος σκηνής αντικατοπτρίζει το μοντέλο που είναι γνωστό από τα εργαλεία δημιουργίας 3D: ένα Scene κρατά ένα rootNode, το καθένα Node μπορεί να μεταφέρει κόμβους-παιδιά και αντικείμενα οντοτήτων (Mesh, Camera, Light), και η ιεραρχία μετασχηματισμών είναι πλήρως προσβάσιμη για ανάγνωση και εγγραφή.

Κύρια Χαρακτηριστικά

  • Πολυμορφική I/O: Εισαγωγή και εξαγωγή OBJ (με .mtl υλικά), glTF 2.0 / GLB, STL (δυαδικό και ASCII), 3MF, και COLLADA από διαδρομές αρχείων και in-memory Buffer αντικείμενα. Η υποστήριξη FBX δεν είναι ακόμη ενσωματωμένη στην αυτόματη ανίχνευση.
  • API γραφήματος σκηνής: Scene, Node, Mesh, Camera, Light ιεραρχία με πλήρη διαχείριση γονέα/παιδιού· περιηγηθείτε στους κόμβους αναδρομικά μέσω node.childNodes
  • σύστημα υλικών PBR: υλικά Lambert, Phong και PBR (metallic/roughness) προσβάσιμα μέσω node.entity.material
  • Λειτουργίες πλέγματος: Πρόσβαση σε ακατέργαστα δεδομένα κορυφών μέσω mesh.controlPoints (πίνακας του Vector4), δείκτες πολυγώνων μέσω mesh.polygonCount, και κανάλια στοιχείων κορυφής μέσω mesh.getElement()
  • Εργαλεία μαθηματικών: Vector2, Vector3, Vector4, Matrix4, Quaternion, και τύπους περιοριστικού κουτιού για χωρικούς υπολογισμούς
  • Σύστημα animation: Keyframe animation με AnimationClip, AnimationChannel, και καμπύλες παρεμβολής (γραμμική, Bezier, TCB spline)
  • Επιλογές ειδικές για μορφή: Ανά-μορφή LoadOptions / SaveOptions κλάσεις ελέγχουν την αντιστροφή συντεταγμένων, την κλίμακα, τη φόρτωση υλικού και άλλα

Ξεκινώντας

Εγκατάσταση από npm. Απαιτείται Node.js 18 ή νεότερο· συνιστάται TypeScript 5.0+.

npm install @aspose/3d

Φορτώστε ένα αρχείο 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`);
    }
}

Εξαγωγή σε glTF

Αποθηκεύστε οποιαδήποτε φορτωμένη ή κατασκευασμένη σκηνή σε δυαδικό glTF 2.0 (GLB):

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');

Η βιβλιοθήκη ανιχνεύει αυτόματα τη μορφή εξόδου από την επέκταση του αρχείου. Περνάτε ένα GltfSaveOptions αντικείμενο για έλεγχο της ενσωμάτωσης υλικού PBR, των υφών και της κωδικοποίησης binary vs. JSON.

Κατασκευή Σκηνής

Δημιουργήστε μια σκηνή προγραμματιστικά και εξάγετε την:

import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');

Δείτε επίσης