Kā saglabāt 3D modeļus TypeScript
Aspose.3D FOSS for TypeScript saglabā ainas visos atbalstītajos formātos ar vienu scene.save() izsaukumu. Izvades formāts tiek automātiski noteikts no faila paplašinājuma. Šis ceļvedis aptver saglabāšanu katrā formātā un formātam specifisku opciju lietošanu.
Solī pa solim ceļvedis
1. solis: Instalējiet @aspose/3d
npm install @aspose/3d2. solis: Ielādēt vai izveidot ainu
Vai nu ielādējiet esošu failu, vai izveidojiet ainu programmatiski pirms saglabāšanas.
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();3. solis: Saglabāt ar automātiski noteiktu formātu
scene.save(path) nosaka izvades formātu no faila paplašinājuma:
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');4. solis: Izmantot formātam specifiskus SaveOptions
Lai iegūtu smalkāku kontroli, nododiet formātam specifisku opciju objektu:
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);5. solis: Saglabāt buferī (atmiņā)
Izmantojiet scene.saveToBuffer() lai iegūtu izvadi kā a Buffer nesaglabājot uz diska:
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.
6. solis: Pārbaudīt izvadi
Pēc saglabāšanas pārbaudiet, vai fails pastāv un tam ir ne‑nulles izmērs:
import * as fs from 'fs';
const stats = fs.statSync('output.glb');
console.log(`Saved output.glb: ${stats.size} bytes`);Formātu atbalsta matrica
| Paplašinājums | Formāts | Piezīmes |
|---|---|---|
.glb | glTF 2.0 Binary | Ieteicams glTF; visi resursi iekļauti vienā failā |
.gltf | glTF 2.0 JSON | Atsevišķi .bin un tekstūru faili blakus JSON |
.obj | Wavefront OBJ | Raksta .mtl materiāla fails blakus .obj kad materiāli ir pieejami |
.stl | STL | Noklusējums: binary STL; lietot StlSaveOptions.ascii = true teksta |
.fbx | Autodesk FBX | Binārais FBX formāts |
.3mf | 3D Manufacturing | Piemērots 3D drukāšanas darbplūsmām |
.dae | COLLADA | XML balstīts apmaiņas formāts |
Biežāk sastopamās problēmas un risinājumi
Error: Unsupported format saglabājot
Pārbaudiet, vai faila paplašinājums atbilst atbalstītam formātam. Bibliotēka izmanto paplašinājumu, lai noteiktu formātu; fails ar nosaukumu output.xyz neizdosies.
.obj fails tiek saglabāts, bet materiāli trūkst
Saglabājot OBJ, materiālu bibliotēka (.mtl) tiek automātiski ierakstīta kopā ar .obj. Abi faili jābūt tajā pašā direktorijā, atverot atkārtoti. Ja jums vajag tikai ģeometriju, iestatiet ObjSaveOptions.enableMaterials = false.
Liels .gltf ar atsevišķām tekstūrām
Izmantojiet .glb nevis .gltf; tas apvieno bināros datus vienā pašpietiekamā failā. Iestatiet GltfSaveOptions.binaryMode = true kad nodod GltfSaveOptions instanci.
Biežāk uzdotie jautājumi
Vai varu saglabāt vairākos formātos vienā izpildes reizē?
Jā; izsauc scene.save() vairākkārt ar dažādiem ceļiem:
scene.save('output.glb');
scene.save('output.stl');
scene.save('output.obj');Vai saglabāšana maina ainu?
Nē. scene.save() ir tikai lasīšanas operācija uz scēnas grafiku. Jūs varat saglabāt to pašu ainu vairākos formātos, neradot nekādas blakusparādības.
Vai varu pārrakstīt avota failu?
Jā. Padodiet to pašu ceļu uz scene.save() ko jūs izmantojāt scene.open(). Bibliotēka raksta buferī, un pēc tam uz diska.