Ako uložiť 3D modely v TypeScript

Ako uložiť 3D modely v TypeScript

Aspose.3D FOSS pre TypeScript ukladá scény do všetkých podporovaných formátov jedným scene.save() volaním. Výstupný formát sa automaticky detekuje z prípony súboru. Tento sprievodca pokrýva ukladanie do každého formátu a používanie špecifických možností formátu.

Postupný návod

Krok 1: Nainštalujte @aspose/3d

npm install @aspose/3d

Krok 2: Načítajte alebo vytvorte scénu

Buď načítajte existujúci súbor, alebo programovo zostavte scénu pred uložením.

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();

Krok 3: Uložte s automaticky detekovaným formátom

scene.save(path) detekuje výstupný formát z prípony súboru:

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');

Krok 4: Použite formátovo špecifické SaveOptions

Pre detailnú kontrolu odovzdajte objekt s formátovo špecifickými možnosťami:

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);

Krok 5: Uložte do bufferu (v pamäti)

Použite scene.saveToBuffer() na získanie výstupu ako Buffer bez zápisu na disk:

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.

Krok 6: Overte výstup

Po uložení overte, že súbor existuje a má nenulovú veľkosť:

import * as fs from 'fs';

const stats = fs.statSync('output.glb');
console.log(`Saved output.glb: ${stats.size} bytes`);

Matrica podpory formátov

PríponaFormátPoznámky
.glbglTF 2.0 BinaryOdporúčané pre glTF; všetky aktíva sú vložené do jedného súboru
.gltfglTF 2.0 JSONOddelené .bin a súbory textúr vedľa JSON
.objWavefront OBJZapisuje .mtl súbor materiálu vedľa .obj keď sú materiály prítomné
.stlSTLPredvolené: binárny STL; použite StlSaveOptions.ascii = true pre text
.fbxAutodesk FBXBinárny formát FBX
.3mf3D ManufacturingVhodné pre pracovné postupy 3D tlače
.daeCOLLADAFormát výmeny založený na XML

Bežné problémy a riešenia

Error: Unsupported format pri ukladaní

Skontrolujte, či prípona súboru zodpovedá podporovanému formátu. Knižnica používa príponu na detekciu formátu; súbor s názvom output.xyz zlyhá.

.obj súbor sa uloží, ale materiály chýbajú

Pri ukladaní OBJ sa knižnica materiálov (.mtl) zapíše automaticky vedľa .obj. Oba súbory musia byť pri opätovnom otvorení v rovnakom adresári. Ak potrebujete iba geometriu, nastavte ObjSaveOptions.enableMaterials = false.

Veľké .gltf s oddelenými textúrami

Použite .glb namiesto .gltf; zoskupuje binárne dáta do jedného samostatného súboru. Nastavte GltfSaveOptions.binaryMode = true pri odovzdávaní GltfSaveOptions inštanciu.


Často kladené otázky

Môžem uložiť do viacerých formátov v jednom spustení?

Áno; zavolajte scene.save() viackrát s rôznymi cestami:

scene.save('output.glb');
scene.save('output.stl');
scene.save('output.obj');

Upraví ukladanie scénu?

Nie. scene.save() je operácia len na čítanie v grafe scény. Rovnakú scénu môžete uložiť do viacerých formátov bez akýchkoľvek vedľajších účinkov.

Môžem prepísať zdrojový súbor?

Áno. Odovzdajte rovnakú cestu do scene.save() ktorú ste použili v scene.open(). Knižnica zapisuje do vyrovnávacej pamäte a potom zapisuje na disk.


Pozri tiež

 Slovenčina