Η παραγωγή σκηνών και η εξαγωγή τους
@aspose/3d είναι μια βιβλιοθήκη επεξεργασίας και μετατροπής, και δεν εκτελεί GPU rendering ή παράγει αρχεία εικόνας. “Rendering” στο πλαίσιο αυτής της βιβλίου σημαίνει εξαγωγή σκηνής σε μορφή που μπορεί να καταναλώνει ένας παραδότης, μηχανή παιχνιδιού ή θεατής..
Αυτή η σελίδα καλύπτει όλα τα μονοπάτια εξαγωγής: αποθήκευση βάσει αρχείων, εκκίνηση μνήμης buffer, επιλογές ειδικά για μορφή και πώς να προετοιμάσετε σκηνές για κοινούς στόχους downstream (Three.js, Babylon.js, μοντέλο παρατηρητές, και κινητήρες παιχνιδιών).
Βασική εξαγωγή
Κλήση scene.save() Η βιβλιοθήκη εισάγει τη μορφή εξόδου από την επέκταση αρχείου:
import { Scene } from '@aspose/3d';
const scene = new Scene();
scene.open('input.obj'); // use a supported format (OBJ, glTF, GLB, STL, 3MF, COLLADA)
scene.save('output.glb'); // GLB (binary glTF)
scene.save('output.stl'); // STL
scene.save('output.dae'); // COLLADA
scene.save('output.3mf'); // 3MF
Εξαγωγή στην GLB (Συνεχίζεται για το Διαδίκτυο και τα Παιχνίδια)
GLB (binary glTF 2.0) είναι ένα ενιαίο αυτό-συμπεριλαμβανόμενο αρχείο που περιλαμβάνει όλα τα δεδομένα, τα υλικά και τις κλωστοϋφαντουργίες. Είναι η συνιστώμενη μορφή εκκίνησης για τους προβολείς του διαδικτύου (Three.js, Babylon.JS, μοντέλο-βλέποντας) και κινητήρες παιχνιδιών (Godot, Unity via importer):
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('source.obj');
const opts = new GltfSaveOptions();
opts.binaryMode = true; // produce .glb instead of .gltf + .bin
scene.save('output.glb', opts);
console.log('GLB export complete');ΣΕΤΙΔΑ binaryMode = true να παράγει ένα αυτόνομο αρχείο GLB. όταν false,Η παραγωγή είναι μια .gltf Το αρχείο JSON με ξεχωριστό .bin Μπάφερ Σιτ.
Εξαγωγή σε glTF (JSON Format για Έλεγχο)
Η διαφορά του JSON (.gltf + .binΕίναι χρήσιμο κατά τη διάρκεια της ανάπτυξης, επειδή το JSON είναι ανθρώπινο-διαβαστό:
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.dae'); // COLLADA is fully supported; FBX is not wired into scene.open()
const opts = new GltfSaveOptions();
opts.binaryMode = false; // JSON + .bin sidecar
scene.save('output.gltf', opts);Εξαγωγή στο STL (3D εκτύπωση ροών εργασίας)
STL είναι γεωμετρία-μόνο (χωρίς υλικά, χωρίς κινούμενα σχέδια). Είναι η τυποποιημένη μορφή ανταλλαγής για 3D εκτυπώσεις:
import { Scene } from '@aspose/3d';
import { StlSaveOptions } from '@aspose/3d/formats/stl';
const scene = new Scene();
scene.open('model.obj');
const opts = new StlSaveOptions();
opts.binaryMode = true; // binary STL is more compact than ASCII
scene.save('output.stl', opts);ΣΕΤΙΔΑ binaryMode = false για την παραγωγή ASCII STL, η οποία είναι κείμενο-διαβάσιμη αλλά μεγαλύτερη.
Εξαγωγή στο FBX (DCC Tool Workflows)
Σημείωση: FBX εισαγωγείς και εξαγωγητές τάξεις υπάρχουν στη βιβλιοθήκη, αλλά το μορφή FBx αυτο-αποκάλυψη δεν είναι συνδεδεμένη σε
scene.open()ήscene.save().Καλέστεscene.save('output.fbx', opts)Δεν θα επικαλεστεί τον εξαγωγέα FBX - ο.fbxη επέκταση δεν αναγνωρίζεται από τον αποθηκευτή και το κλήμα θα πέσει πίσω στην έκδοση OBJ.FbxExporterδιδάσκονται απευθείας αν χρειάζεστε FBX I/O. Το πίνακα υποστήριξης μορφής αναγράφει το FBx ωςNo*Για το λόγο αυτό.
Αν χρειαστεί να εξάγετε σε μορφή που αποδέχεται από το Blender, Maya ή Unreal Engine, χρησιμοποιήστε την GLB ή COLLADA αντί — και οι δύο είναι πλήρως συνδεδεμένες στο scene.save():
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.dae');
// GLB is fully supported and widely accepted by DCC tools
const opts = new GltfSaveOptions();
opts.binaryMode = true;
scene.save('output.glb', opts);Η εξαγωγή μνήμης με saveToBuffer()
Για λειτουργίες χωρίς διακομιστή, απαντήσεις HTTP και σωλήνες streaming, εξάγονται απευθείας σε ένα Buffer Χωρίς να γράφουμε στο δίσκο:
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
function convertToGlbBuffer(inputPath: string): Buffer {
const scene = new Scene();
scene.open(inputPath);
const opts = new GltfSaveOptions();
opts.binaryMode = true;
return scene.saveToBuffer('glb', opts);
}
// Express.js / HTTP response example
// const glbBuffer = convertToGlbBuffer('model.obj');
// res.setHeader('Content-Type', 'model/gltf-binary');
// res.send(glbBuffer);
saveToBuffer() Το πρώτο στοιχείο είναι το σχήμα του στυλ (π.χ. 'glb', 'stl', 'obj'και τις ίδιες επιλογές αντικειμένων όπως save().
Συνδυασμός openFromBuffer() και saveToBuffer()
Ένα πλήρως ενσωματωμένο σωλήνα μετατροπής μνήμης χωρίς I/O δίσκου σε οποιοδήποτε στάδιο:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
function objBufferToGlbBuffer(objData: Buffer): Buffer {
const scene = new Scene();
const loadOpts = new ObjLoadOptions();
loadOpts.enableMaterials = true;
scene.openFromBuffer(objData, loadOpts);
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;
return scene.saveToBuffer('glb', saveOpts);
}Ετοιμάζοντας σκηνές για συγκεκριμένους ρέντερ
Three.js / Babylon.js (Web)
Αυτοί οι renderers φορτώνουν αρχεία GLB. εξαγωγή με binaryMode = true.Αν οι κλωστοϋφαντουργίες αναφέρονται από την πηγή OBJ, διασφαλίστε ότι η .mtl και τα αρχεία εικόνας συν-στέλλονται κατά τη φόρτιση.
Ετικέτες Web (Web Component)
Αποδέχεται .glb Οι ίδιες ρυθμίσεις εξαγωγής με την Three.js.
Γκόντο Μηχανή
Εισαγωγή GLB μέσω του εισαγωγέα Godot (Πρόγραμμα → Εξαγωγές). binaryMode = true.Godot υποστηρίζει υλικά PBR από γνήσια glTF 2.0.
ΜΠΛΕΝΤΕΡ
Για την καλύτερη εισαγωγή πιστότητα χρησιμοποιήστε το GST (output.gltf + output.binΗ ΓΕΠ (output.glbΗ εισαγωγή του Blender glTF 2.0 χειρίζεται τα υλικά PBR και την κινούμενη. σημειώσεις: FBX εξόδου μέσω scene.save() Δεν υποστηρίζεται - το αυτοαποκαλύψιμο της μορφής FBX δεν συνδέεται με τον αποθηκευτή.
3D Printing (Slicers: Cura, PrusaSlicer, Bambu Studio)
Εξαγωγή στο STL ή 3MF. Χρησιμοποιήστε το 3mF όταν χρειάζεστε διατηρημένα μεταδεδομένα χρώματος ή υλικού.
Συγκριτική μορφή εξαγωγής
| ΤΕΧΝΗ | ΕΠΙΤΡΟΦΗ | Υλικά | ΑΜΝΗΤΗΣΕΙΣ | Μοναδικό αρχείο | Καλύτερα για |
|---|---|---|---|---|---|
| ΓΚΛΤΦ | .glb / .gltf | ΠΡΟΣ (glTF 2.0) | ΝΑΙ | GLB: ναι, γκλτφ: όχι | Διαδίκτυο, παιχνίδια, γενική παράδοση |
| STL | .stl | ΟΧΙ | ΟΧΙ | ΝΑΙ | 3D printing, geometry-only |
| FBX | .fbx | Φόγκ / PBR | Όχι * | Όχι * | Εισαγωγέας/εξαγωγή υπάρχει, αλλά δεν έχει συνδεθεί στην αυτο-αποκαλύψιμο |
| COLLADA | .dae | ΝΑΙ | ΝΑΙ | ΝΑΙ | Κροσ-ΔΚΤ ανταλλαγή |
| 3MF | .3mf | Χρώμα / υλικό | ΟΧΙ | ΝΑΙ | Σύγχρονη 3D εκτύπωση |
Επιλέξτε glTF (GLB) για την παροχή στο διαδίκτυο, 3MF για τις ροές εργασίας εκτύπωσης που απαιτούν μεταδεδομένα χρωμάτων και STL για μέγιστη γεωμετρική συμβατότητα με τα παλαιότερα εργαλεία.
Κοινά θέματα εξαγωγής
| Συμπτώματα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
| Η έκδοση GLB ανοίγει ως JSON στον προβολέα | binaryMode Αφήνει ως false | ΣΕΤΙΔΑ opts.binaryMode = true |
| Οι κλωστοϋφαντουργίες που λείπουν στην παραγωγή GLB | binaryMode Δεν θέτει | ΣΕΤΙΔΑ opts.binaryMode = true Για αυτοπεποίθηση GLB |
| Το αρχείο STL δεν έχει χρώμα σε σκιέρ | Το STL format δεν υποστηρίζει χρώμα. | Χρησιμοποιήστε 3MF για τα δεδομένα χρωμάτων |
saveToBuffer Επιστρέφει άδειο μπαρ | Στοιχεία για το στυλ που λείπει ή είναι λάθος | Πληκτρολογήστε το σχήμα, π.χ. 'glb', 'stl',ή 'obj' |
| Το FBX ανοίγει χωρίς κινούμενα σχέδια στο Blender | Το αρχείο πηγής (OBJ/STL) δεν έχει κινούμενα σχέδια. | Η αναμνηστική μόνο περνά μέσα, αν υπάρχει στην πηγή |
| Το αρχείο εξόδου είναι πολύ μεγάλο. | Η OBJ έχει πολλές διπλές στροφές. | Η δυαδική παραγωγή της GLB ήδη διπλασιάζεται· ελέγξτε την ποιότητα του ενεργητικού πηγής |
Δείτε επίσης
- Μοντέλο φορτίο: φόρτιση 3D αρχείων από δίσκους και μπαφέρ
- Σκηνή Γκράφι:• Κατασκευή και τροποποίηση της σκηνής πριν από την εξαγωγή
- Στήριξη μορφοποίησης:• Συνολική Ματρίκα Διαβάστε / Γράψτε
- Πυροβολισμοί Overview:Όλες οι κατηγορίες και οι κατάλογοι