Εισαγωγή

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

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

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

  • Πολυμορφική I/O: Εισαγωγή OBJ (με .mtl υλικά, μόνο εισαγωγή), glTF 2.0 / GLB, STL (δυαδικό και ASCII), 3MF, και COLLADA τόσο από διαδρομές αρχείων όσο και από αντικείμενα στη μνήμη Buffer αντικείμενα. Τα glTF, STL, 3MF και COLLADA υποστηρίζουν επίσης εξαγωγή. Η υποστήριξη FBX δεν έχει ακόμη ενσωματωθεί στην αυτόματη ανίχνευση.
  • API γραφήματος σκηνής: Scene, Node, Mesh, Camera, Light ιεραρχία με πλήρη διαχείριση γονέα/παιδιού· περιήγηση κόμβων αναδρομικά μέσω node.childNodes
  • συστήματος υλικών PBR: Υλικά Lambert, Phong και PBR (μεταλλικό/τραχύτητα) προσβάσιμα μέσω 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');

Δείτε επίσης