Kā saglabāt 3D modeļus TypeScript

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/3d

2. 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ājumsFormātsPiezīmes
.glbglTF 2.0 BinaryIeteicams glTF; visi resursi iekļauti vienā failā
.gltfglTF 2.0 JSONAtsevišķi .bin un tekstūru faili blakus JSON
.objWavefront OBJRaksta .mtl materiāla fails blakus .obj kad materiāli ir pieejami
.stlSTLNoklusējums: binary STL; lietot StlSaveOptions.ascii = true teksta
.fbxAutodesk FBXBinārais FBX formāts
.3mf3D ManufacturingPiemērots 3D drukāšanas darbplūsmām
.daeCOLLADAXML 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.


Skatīt arī

 Latviešu