Υποστήριξη 3D μορφών

Aspose.3D FOSS για TypeScript διαβάζει και γράφει επτά μεγάλες μορφές αρχείων 3D. Η ανίχνευση μορφής είναι αυτόματη κατά την φόρτιση: η βιβλιοθήκη ελέγχει τα δυαδικά μαγικά αριθμούς, έτσι δεν χρειάζεται να προσδιορίσετε τη μορφή πηγής. @aspose/3d Το πακέτο.

Υποστηριζόμενες μορφές

ΤΕΧΝΗΕΠΙΤΡΟΦΗΔιαβάστεΓράψεΤάξη τάξηςΣημειώσεις
OBJ.objΝΑΙΝΑΙObjFormatWavefront OBJ - Διαβάστε περισσότερα .mtl Υλικό: Γράφει .mtl Πέρα από .obj
ΓΚΛΤΦ.gltf / .glbΝΑΙΝΑΙGltfFormatGLTF 2.0 JSON και GLB δυαδικό
STL.stlΝΑΙΝΑΙStlFormatΔυαδικές και ASCII λειτουργίες
3MF.3mfΝΑΙΝΑΙThreeMfFormat3D Manufacturing Format
FBX.fbxΌχι *Όχι *FbxFormatΕισαγωγέας / εξαγωγής υπάρχει, αλλά η αυτοαποκαλύψιμη μορφή δεν είναι εμβληματική. scene.open()
COLLADA.daeΝΑΙΝΑΙColladaFormatΑπαιτήσεις xmldom (Επιτελείται αυτοματοποιημένο)

ΟΜΠ (Wavefront) Η Πλατεία

Η OBJ υποστηρίζει τόσο τις εισαγωγές όσο και τις εξαγωγικές @aspose/3d.Η ΕΣΔΕ, η οποία είναι το υλικό της βιβλιοθήκης (.mtl(α) γράφεται αυτόματα μαζί με το .obj Ετικέτες. χρησιμοποιήστε ObjLoadOptions να ελέγχει την φόρτιση υλικού και να συντονίζει τη συμπεριφορά του συστήματος.

Βασικές επιλογές για ObjLoadOptions:

ΕπιλογήΤύποςΥπολογισμοίΕΠΙΤΡΟΦΗ
enableMaterialsbooleantrueΣυμμετέχει το .mtl αρχείο που αναφέρεται από mtllib
flipCoordinateSystembooleanfalseΦλέβετε τα άξονα Y/Z για να ταιριάζει με τα δεξιά συστήματα.
scalenumber1.0Ενιαία κλίμακα που εφαρμόζεται σε όλες τις καμπύλες φορτίου
normalizeNormalbooleantrueΚανονικοποίηση των κανονικών 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 αποτυγχάνει με σφάλμα XMLxmldom Απεβίβαση ή αποτυχίαΔρομολόγηση npm install @aspose/3d και πάλι,; xmldom Είναι άμεση εξάρτηση
Οι κανονικές STL χάθηκαν στις εξαγωγές ASCIIASCII STL σταματά το φυσιολογικό πρόσωποΧρησιμοποιήστε binaryMode = true για κανονική διατήρηση παραγωγής

Δείτε επίσης

 Ελληνικά