Υποστήριξη 3D μορφών
Aspose.3D FOSS για TypeScript διαβάζει και γράφει επτά μεγάλες μορφές αρχείων 3D. Η ανίχνευση μορφής είναι αυτόματη κατά την φόρτιση: η βιβλιοθήκη ελέγχει τα δυαδικά μαγικά αριθμούς, έτσι δεν χρειάζεται να προσδιορίσετε τη μορφή πηγής. @aspose/3d Το πακέτο.
Υποστηριζόμενες μορφές
| ΤΕΧΝΗ | ΕΠΙΤΡΟΦΗ | Διαβάστε | Γράψε | Τάξη τάξης | Σημειώσεις |
|---|---|---|---|---|---|
| OBJ | .obj | ΝΑΙ | ΝΑΙ | ObjFormat | Wavefront OBJ - Διαβάστε περισσότερα .mtl Υλικό: Γράφει .mtl Πέρα από .obj |
| ΓΚΛΤΦ | .gltf / .glb | ΝΑΙ | ΝΑΙ | GltfFormat | GLTF 2.0 JSON και GLB δυαδικό |
| STL | .stl | ΝΑΙ | ΝΑΙ | StlFormat | Δυαδικές και ASCII λειτουργίες |
| 3MF | .3mf | ΝΑΙ | ΝΑΙ | ThreeMfFormat | 3D Manufacturing Format |
| FBX | .fbx | Όχι * | Όχι * | FbxFormat | Εισαγωγέας / εξαγωγής υπάρχει, αλλά η αυτοαποκαλύψιμη μορφή δεν είναι εμβληματική. scene.open() |
| COLLADA | .dae | ΝΑΙ | ΝΑΙ | ColladaFormat | Απαιτήσεις xmldom (Επιτελείται αυτοματοποιημένο) |
ΟΜΠ (Wavefront) Η Πλατεία
Η OBJ υποστηρίζει τόσο τις εισαγωγές όσο και τις εξαγωγικές @aspose/3d.Η ΕΣΔΕ, η οποία είναι το υλικό της βιβλιοθήκης (.mtl(α) γράφεται αυτόματα μαζί με το .obj Ετικέτες. χρησιμοποιήστε ObjLoadOptions να ελέγχει την φόρτιση υλικού και να συντονίζει τη συμπεριφορά του συστήματος.
Βασικές επιλογές για ObjLoadOptions:
| Επιλογή | Τύπος | Υπολογισμοί | ΕΠΙΤΡΟΦΗ |
|---|---|---|---|
enableMaterials | boolean | true | Συμμετέχει το .mtl αρχείο που αναφέρεται από mtllib |
flipCoordinateSystem | boolean | false | Φλέβετε τα άξονα Y/Z για να ταιριάζει με τα δεξιά συστήματα. |
scale | number | 1.0 | Ενιαία κλίμακα που εφαρμόζεται σε όλες τις καμπύλες φορτίου |
normalizeNormal | boolean | true | Κανονικοποίηση των κανονικών vertex σε μονομήματα μήκους |
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
const opts = new ObjLoadOptions();
opts.enableMaterials = true;
opts.normalizeNormal = true;
scene.open('model.obj', opts);
console.log(`Loaded ${scene.rootNode.childNodes.length} top-level node(s)`);Για να μετατρέψετε ένα OBJ σε οποιαδήποτε γραπτή μορφή, φορτώστε το και καλέστε scene.save() Με την κατηγορία του στόχου.
GLTF και GLB
glTF 2.0 είναι η συνιστώμενη μορφή ανταλλαγής για χρήση web και παιχνιδιών. GltfFormat Η τάξη για τους δύο .gltf (JSON + SideCar) και .glb (βινάρια, αυτο-συμπεριλαμβανόμενα) εξαγωγή. Συγκεντρώστε μεταξύ τους με GltfSaveOptions.binaryMode.
Φόρτα GLTF ή GLB:
import { Scene } from '@aspose/3d';
import { GltfLoadOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.gltf', new GltfLoadOptions());
// or
scene.open('model.glb'); // format detected from magic bytes
Η Εταιρεία της ΑΕΚ (.gltf + .bin):
import { Scene } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.fbx');
const opts = new GltfSaveOptions();
opts.binaryMode = false; // produces output.gltf + output.bin
scene.save('output.gltf', GltfFormat.getInstance(), opts);Η Εταιρεία της Βιομηχανίας (Binary Global).glb):
import { Scene } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.obj');
const opts = new GltfSaveOptions();
opts.binaryMode = true; // single self-contained file
scene.save('output.glb', GltfFormat.getInstance(), opts);Χρησιμοποιήστε binaryMode = true για την παράδοση του ενεργητικού παραγωγής. ένα μόνο .glb φορτώνει ταχύτερα σε προγράμματα περιήγησης και κινητήρες από το χωρισμένο κείμενο + δυαδικό ζεύγος.
STL
STL είναι μια τριγωνισμένη μορφή μασχ που χρησιμοποιείται στην CAD και 3D εκτύπωση. Και τα δυαδικά και ASCII STl υποστηρίζονται για εισαγωγή και εξόδου. StlSaveOptions.binaryMode ελέγχει αν η παραγωγή είναι δυαδική (πικάντικη) ή ASCII (ανθρώπινη ανάγνωση).
import { Scene } from '@aspose/3d';
import { StlLoadOptions, StlSaveOptions } from '@aspose/3d/formats/stl';
const scene = new Scene();
scene.open('model.stl', new StlLoadOptions());
// Export as binary STL (default, compact)
const binaryOpts = new StlSaveOptions();
binaryOpts.binaryMode = true;
scene.save('output_binary.stl', binaryOpts);
// Export as ASCII STL (human-readable)
const asciiOpts = new StlSaveOptions();
asciiOpts.binaryMode = false;
scene.save('output_ascii.stl', asciiOpts);Το STL αποθηκεύει μόνο τριγώνια γεωμετρία και κανονικά στρώματα. τα υλικά και τα UV δεδομένα δεν διατηρούνται στο ST L.
3MF (3D Manufacturing Format)
3MF is an XML-based format designed for additive manufacturing. It supports color and material metadata alongside geometry. Use it when exchanging files with 3D printing slicers or manufacturing workflows.
import { Scene } from '@aspose/3d';
import { ThreeMfSaveOptions } from '@aspose/3d/formats/3mf';
const scene = new Scene();
scene.open('model.3mf');
// Re-export as 3MF
scene.save('output.3mf', new ThreeMfSaveOptions());3MF files are ZIP archives internally. The library handles archive creation and extraction automatically.
FBX
Προειδοποίηση:Εισαγωγείς και εισαγωγοί (
FbxImporter,FbxExporter) υπάρχει στη βιβλιοθήκη, αλλά το μορφότυπο FBX αυτο-αποκάλυψη είναι Δεν εγγυάται ΕΝΤΙscene.open()ήscene.save().Καλέστεscene.open('file.fbx')δεν θα επικαλεστεί το εισαγωγέα FBX - το αρχείο θα πέσει μέσα στο STL fallback.scene.save('output.fbx', opts)δεν θα επικαλεστεί τον εξαγωγέα FBX. Ο πίνακας υποστήριξης μορφής πάνω από το σήμα FBx ωςNo*Χρησιμοποιήστε GLB ή COLLADA για πλήρως λειτουργική εισαγωγή και εξαγωγές μέσω τηςscene.open()/scene.save().
COLLADA (DAE)
Το COLLADA είναι ένα μορφότυπο ανταλλαγής που βασίζεται στο XML και υποστηρίζεται από μια ευρεία ποικιλία εργαλείων DCC (Blender, Maya, Cinema 4D). xmldom εξάρτηση για το XML parsing. εγκαθίσταται αυτόματα με npm install @aspose/3d.
import { Scene } from '@aspose/3d';
import { ColladaSaveOptions } from '@aspose/3d/formats/collada';
const scene = new Scene();
scene.open('model.dae');
// Re-export as COLLADA
const saveOpts = new ColladaSaveOptions();
scene.save('output.dae', saveOpts);Τα αρχεία COLLADA μπορεί να περιέχουν μονάδες-σκαλίζοντας μεταδεδομένα (<unit> Η βιβλιοθήκη εφαρμόζει αυτόματα τη μετατροπή μονάδας κατά την φόρτιση.
Ετικέτες Auto-Detektion
Όταν φορτώνετε από ένα αρχείο, η βιβλιοθήκη προσπαθεί να μορφοποιήσει την ανίχνευση από δυαδικούς μαγικούς αριθμούς πριν πέσει πίσω στην επέκταση του αρχείου. .bin ή ένα αρχείο STL που ονομάζεται .model χωρίς να προσδιορίζονται ρητά τα σχήματα.
Όταν φορτώνουμε από το A Buffer Με scene.openFromBuffer(), η μαγική ανίχνευση αριθμών είναι ο κύριος μηχανισμός:
import { Scene } from '@aspose/3d';
import * as fs from 'fs';
const buffer = fs.readFileSync('model.glb');
const scene = new Scene();
scene.openFromBuffer(buffer); // format detected from magic bytes: 'glTF'
console.log(`Root has ${scene.rootNode.childNodes.length} child node(s)`);Ηλεκτρονικό δίκτυο με αξιόπιστους αριθμούς: GLB (glTFSTL δυαδικό (80-bit κεφάλαιο + τριγωνικό αριθμό), 3MF (ZIP μαγεία) PKΤο OBJ και το COLLADA είναι κειμενικά βασισμένα και ανιχνεύονται από την επέκταση αρχείου ή από τη κατηγορία επιλογών που περνάτε.
Tips
- Η OBJ υποστηρίζει τόσο τις εισαγωγές όσο και τις εξαγωγικές:Όταν η αποθήκευση ως OBJ, το
.mtlΤο αρχείο γράφεται αυτόματα μαζί με το.objαρχείο . - Χρησιμοποιήστε το GLB για την παροχή ιστοσελίδων: η αυτόνομη δυαδική μορφή αποφεύγει τα προβλήματα CORS με την
.binΤαχύτερα φορτίζονται και ταχέως σε webGL renderers. - Πληκτρολογήστε τις επιλογές ειδικού μορφής:Γενικό
scene.open(path)λειτουργεί για τις περισσότερες μορφές, αλλά η περάτωση της τάξης επιλογών φορτίου επιτρέπει τη συμπεριφορά που είναι συγκεκριμένη σε μορφή όπως το φορτίο υλικού OBJ ή ο κανονισμός συντονισμού STL. xmldomΕίναι απαραίτητο για την COLLADA: αυτό είναι εγκατεστημένο αυτόματα. μην το προσθέσετε σεpeerDependenciesή προσπαθήστε να το αφαιρέσετε, ο αναγνώστης της COLLADA καλεί απευθείας.
κοινά ζητήματα
| Συμπτώματα | Πιθανόν αιτία | ΦΙΛΕΞΗ |
|---|---|---|
| Τα υλικά OBJ είναι κενά μετά από φορτίο | enableMaterials Δεν θέτει | ΠΑΣΟΚ ObjLoadOptions Με enableMaterials = true |
Η ΓΚΠ παράγει ένα .bin ΣΙΔΕΑΡ | binaryMode Η παραίτηση για false | ΣΕΤΙΔΑ opts.binaryMode = true Σε GltfSaveOptions |
scene.open() Σημειώνεται ότι «αποκλείεται το σχήμα» | Η επέκταση αρχείων δεν αναγνωρίζεται | Πέρασε το matching *LoadOptions Χρησιμοποιήστε ή χρησιμοποιήσετε openFromBuffer() |
| Το φορτίο COLLADA αποτυγχάνει με σφάλμα XML | xmldom Απεβίβαση ή αποτυχία | Δρομολόγηση npm install @aspose/3d και πάλι,; xmldom Είναι άμεση εξάρτηση |
| Οι κανονικές STL χάθηκαν στις εξαγωγές ASCII | ASCII STL σταματά το φυσιολογικό πρόσωπο | Χρησιμοποιήστε binaryMode = true για κανονική διατήρηση παραγωγής |
Δείτε επίσης
- Χαρακτηριστικά και λειτουργίες: γραφικά σκηνής, μασχ, υλικά, κινούμενα σχέδια και μαθηματικά APIs.
- Σκηνή Γκράφι:• Κατασκευή και διασχίσεις του δέντρου.
- Πώς να δημιουργήσετε ένα 3D Mesh Προγραμματικά