Kuinka tallentaa 3D-malleja TypeScriptissä
Aspose.3D FOSS TypeScriptille tallentaa kohtaukset kaikkiin tuettuihin formaatteihin yhdellä scene.save() kutsulla. Tulostusformaatti tunnistetaan automaattisesti tiedostopäätteestä. Tämä opas kattaa tallentamisen kuhunkin formaattiin ja formaattikohtaisten asetusten käytön.
Vaiheittainen opas
Vaihe 1: Asenna @aspose/3d
npm install @aspose/3dVaihe 2: Lataa tai rakenna kohtaus
Lataa joko olemassa oleva tiedosto tai rakenna kohtaus ohjelmallisesti ennen tallentamista.
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
// Load from file
const scene = new Scene();
scene.open('source.obj', new ObjLoadOptions());
// Or create a new empty scene
const emptyScene = new Scene();Vaihe 3: Tallenna automaattisesti tunnistetulla muodolla
scene.save(path) tunnistaa tulostusformaatin tiedostopäätteestä:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
// Save as binary glTF
scene.save('output.glb');
// Save as JSON glTF
scene.save('output.gltf');
// Save as STL
scene.save('output.stl');
// Save as OBJ
scene.save('output.obj');
// Save as FBX
scene.save('output.fbx');
// Save as 3MF
scene.save('output.3mf');
// Save as COLLADA
scene.save('output.dae');Vaihe 4: Käytä formaattiin perustuvia SaveOptions-asetuksia
Hienojakoista hallintaa varten anna formaattiin perustuva asetuskohde:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
// Export to GLB with specific options
const saveOptions = new GltfSaveOptions();
saveOptions.binaryMode = true; // produce GLB (binary glTF)
scene.save('output.glb', saveOptions);Vaihe 5: Tallenna puskuriin (muistissa)
Käytä scene.saveToBuffer() saadaksesi tulosteen muodossa Buffer kirjoittamatta levylle:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
const buffer = scene.saveToBuffer('output.glb');
console.log(`Buffer size: ${buffer.length} bytes`);
// Send via HTTP, upload to S3, etc.
Vaihe 6: Vahvista tulos
Tallennuksen jälkeen tarkista, että tiedosto on olemassa eikä sen koko ole nolla:
import * as fs from 'fs';
const stats = fs.statSync('output.glb');
console.log(`Saved output.glb: ${stats.size} bytes`);Formaattituen matriisi
| Pääte | Formaatti | Huomautuksia |
|---|---|---|
.glb | glTF 2.0 Binary | Suositeltu glTF:lle; kaikki resurssit upotettu yhteen tiedostoon |
.gltf | glTF 2.0 JSON | Erillinen .bin ja tekstuuritiedostot JSON:n rinnalla |
.obj | Wavefront OBJ | Kirjoittaa .mtl materiaalitiedosto rinnalla .obj kun materiaaleja on |
.stl | STL | Oletus: binaarinen STL; käytä StlSaveOptions.ascii = true tekstille |
.fbx | Autodesk FBX | Binäärinen FBX-muoto |
.3mf | 3D Manufacturing | Sopiva 3D-tulostuksen työnkulkuihin |
.dae | COLLADA | XML-pohjainen vaihtomuoto |
Yleisiä ongelmia ja korjauksia
Error: Unsupported format tallennettaessa
Varmista, että tiedostopääte vastaa tuettua formaattia. Kirjasto käyttää päätettä formaatin tunnistamiseen; tiedosto nimeltä output.xyz epäonnistuu.
.obj tiedosto tallentuu, mutta materiaalit puuttuvat
Kun tallennetaan OBJ, materiaalikirjasto (.mtl) kirjoitetaan automaattisesti tiedoston .obj. Molempien tiedostojen on oltava samassa hakemistossa uudelleenavausta varten. Jos tarvitset vain geometrian, aseta ObjSaveOptions.enableMaterials = false.
Suuri .gltf erillisten tekstuurien kanssa
Käytä .glb sen sijaan että .gltf; se pakkaa binääridatan yhdeksi itsenäiseksi tiedostoksi. Aseta GltfSaveOptions.binaryMode = true kun siirretään GltfSaveOptions instanssi.
Usein kysytyt kysymykset
Voinko tallentaa useisiin formaatteihin yhdellä suorituksella?
Kyllä; kutsu scene.save() useita kertoja eri poluilla:
scene.save('output.glb');
scene.save('output.stl');
scene.save('output.obj');Muuttaako tallentaminen scenea?
Ei. scene.save() on vain luku -toiminto kohtausgraafissa. Voit tallentaa saman kohtauksen useisiin formaatteihin ilman sivuvaikutuksia.
Voinko korvata lähdetiedoston?
Kyllä. Anna sama polku kohteelle scene.save() jota käytit kohteessa scene.open(). Kirjasto kirjoittaa puskurin ja sitten levylle.