Πώς να μετατρέψετε 3D μοντέλα σε TypeScript

Πώς να μετατρέψετε 3D μοντέλα σε TypeScript

Το Aspose.3D FOSS για το TypeScript μετατρέπει μεταξύ 3D μορφών με φόρτιση σε ουδέτερη Scene εκπροσώπηση και αποθήκευση στο στόχο μορφή.Αυτός ο οδηγός δείχνει τις πιο κοινές μετατροπές.

Βήμα προς βήμα οδηγός

Βήμα 1: Εγκατάσταση @aspose/3d

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.


Βήμα 2: Κατεβάστε το αρχείο πηγής

Δημιουργία A Scene και καλεί scene.open().Χρησιμοποιήστε το συγκεκριμένο format *LoadOptions Η τάξη για τα καλύτερα αποτελέσματα.

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

const scene = new Scene();
const opts = new ObjLoadOptions();
opts.enableMaterials = true;
scene.open('model.obj', opts);

Βήμα 3: Αποθηκεύστε στο Στόχος Τάξη

Κλήση scene.save() Με το μονοπάτι εξόδου.Η μορφή εξαγωγής ανιχνεύεται από την επέκταση αρχείου.

// OBJ → glTF binary (GLB)
scene.save('output.glb');

// OBJ → STL
scene.save('output.stl');

// OBJ → COLLADA
scene.save('output.dae');

Σημείωση : Το FBX είναι Δεν υποστηρίζεται Με scene.save() Αυτοαποκαλύψεις - Το .fbx Η επέκταση δεν συνδέεται με οποιονδήποτε εξαγωγέα - εξοικονόμηση για την .fbx Χρησιμοποιήστε OBJ, glTF, STL, 3MF ή COLLADA για αξιόπιστη παραγωγή.


Βήμα 4: Κοινά παραδείγματα μετατροπής

ΟΜΒΕ προς GLTF / GLB

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

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
scene.save('model.glb');
console.log('Converted OBJ → GLB');

FBX - Δεν υποστηρίζεται

Το FBX Auto-Detection δεν είναι διαθέσιμο σε scene.open(). ΑΜ .fbx Τα αρχεία που μεταφέρονται σε scene.open() δεν αναγνωρίζεται από οποιοδήποτε ανιχνευτή μορφής και πέφτει μέσα στο STL διακόπτη, το οποίο θα αποτύχει ή να παράγει σκουλήκια. FBX εισαγωγείς / εξαγωγές τάξεις υπάρχουν στη βιβλιοθήκη αλλά απαιτούν άμεση επίδοση αντί για υψηλό επίπεδο open()/save() Χρησιμοποιήστε το COLLADA, OBJ ή GLTF ως εναλλακτική λύση στο FBX.

ΓΚΤΦ ΣΤΟ STL

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

const scene = new Scene();
scene.open('model.glb');
scene.save('model.stl');
console.log('Converted GLB → STL');

Σύνδεση 3MF

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

const scene = new Scene();
scene.open('model.dae');
scene.save('model.3mf');
console.log('Converted COLLADA → 3MF');

Βήμα 5: Μετατρέψτε το Batch σε Multiple Files

import * as fs from 'fs';
import * as path from 'path';
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const inputDir = './input';
const outputDir = './output';

fs.mkdirSync(outputDir, { recursive: true });

const objFiles = fs.readdirSync(inputDir).filter(f => f.endsWith('.obj'));

for (const file of objFiles) {
    const inputPath = path.join(inputDir, file);
    const outputFile = file.replace('.obj', '.glb');
    const outputPath = path.join(outputDir, outputFile);

    const scene = new Scene();
    scene.open(inputPath, new ObjLoadOptions());
    scene.save(outputPath);

    console.log(`Converted ${file}${outputFile}`);
}

Υποστηρίζεται μετατροπή Matrix

Από τοΓΚΤ / GLBOBJSTLFBX3MFCOLLADA
OBJ
ΓΚΤ / GLB
FBX
STL
3MF
COLLADA

FBX Δεν υποστηρίζεται από το υψηλό επίπεδο. open()/save() API - η μορφή δεν είναι συνδεδεμένη στην αυτο-αποκάλυψη. όλα τα κύτταρα FBX παραπάνω είναι .


Κοινά προβλήματα και τακτοποιήσεις

Τα υλικά χάνονται μετά την μετατροπή

Η ΕΣΔΑ (usemtl, .mtl Τα αρχεία είναι φορτωμένα όταν ObjLoadOptions.enableMaterials = true.Όταν αποθηκεύετε στο glTF, οι ιδιότητες υλικού PBR χαρτογραφούνται αυτόματα. σύνθετα υλικά (διαδικαστικά, πολυεπίπεδα) μπορούν να μετατραπούν με μειωμένη πιστότητα.

Η Μασάλη φαίνεται να κλιμακώνεται εσφαλμένα

Διαφορετικές μορφές χρησιμοποιούν διαφορετικές προεπιλεγμένες μονάδες (μιλιομέτρων για STL, μετρητές για glTF). ObjLoadOptions.scale Όταν φορτώνουμε ή StlSaveOptions.scale Εξόρυξη για την ομαλοποίηση των μονάδων.

Συντονισμένο σύστημα αδιαφορία (σχετικό μοντέλο κλιπ ή περιστροφής)

Ορισμένες μορφές χρησιμοποιούν δεξιά Y-up, άλλες Z-Up. ObjLoadOptions.flipCoordinateSystem = true ή εφαρμόστε μια περιστροφή στο ρίζον κώνημα μετά την φόρτιση.


Συχνές ερωτήσεις

Η μετατροπή διατηρεί τις κινούμενες εικόνες;?

Τα δεδομένα κινουμένων σχεδίων διατηρούνται όταν μετατρέπονται μεταξύ μορφών που το υποστηρίζουν (π.χ., COLLADA → glTF). STL και OBJ δεν φέρουν δεδομένες κινυμένων σχέσεων. scene.open()/scene.save(), έτσι FBX animation round-trips δεν είναι διαθέσιμα μέσω του API υψηλού επιπέδου.

Διατηρούνται τα δεδομένα κειμένου;?

Οι υφιστάμενες με το υλικό OBJ ή ενσωματωμένες στο glTF μεταφέρονται μέσα στο γραφείο σκηνής.binaryMode = true), το δυαδικό buffer ενσωματώνεται σε ένα μόνο αρχείο. για την έκδοση OBJ, οι υφιστάμενες κείμενα αποθηκεύονται ως ξεχωριστά αρχεία δίπλα στο .obj.

Μπορώ να μετατρέψω πολλά αρχεία παράλληλα;?

scene.open() και scene.save() Χρησιμοποιήστε το Node.js worker_threads Παράλληλη επεξεργασία.


Δείτε επίσης

 Ελληνικά