Jak uložit 3D modely v TypeScript

Jak uložit 3D modely v TypeScript

Aspose.3D FOSS pro TypeScript ukládá scény do všech podporovaných formátů s jediným scene.save() Výstupní formát je automaticky detekován z rozšíření souboru. Tato příručka pokrývá uložení do každého formátu a použití variant specifických pro tento formáty.

Krok za krokem

Krok 1: Nainstalovat @aspose/3d

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.


Krok 2: Nahrát nebo vytvořit scénu

Buď načte existující soubor nebo programově vytvořit scénu před ukládání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žení s automaticky detekovaným formátem

scene.save(path) detekuje výstupní formát z rozšíření souboru:

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 3MF
scene.save('output.3mf');

// Save as COLLADA
scene.save('output.dae');

Krok 4: Použijte formátově specifické možnosti SaveOptions

Pro jemně zrnité ovládání předá objekt pro specifické formáty:

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žit do paměti (v pamětní památce)

Použití: scene.saveToBuffer() aby se výstup jako Buffer bez psaní 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('glb');
console.log(`Buffer size: ${buffer.length} bytes`);

// Send via HTTP, upload to S3, etc.

Krok 6: Ověřte výsledek

Po uložení ověřte, zda soubor existuje a má velikost jinou než nula:

import * as fs from 'fs';

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

Matrika pro podporu formátu

RozšířeníFormátPoznámky
.glbglTF 2.0 BinarníDoporučené pro glTF; všechny aktiva vložené do jediného souboru
.gltfglTF 2.0 JSONOddělené .bin a textura soubory vedle JSON
.objObjektování na vlnové frontě OBJPíše: .mtl materiální soubor vedle .obj když jsou přítomny materiály, které se používají k výrobě:
.stlSTLPředvolené: binární STL; použít StlSaveOptions.binaryMode = false pro text ASCII
.fbxAutodesk FBXNepořádané do systému. scene.save() automatické detekce; použití StlExporter zpětná cesta
.3mf3D ManufacturingPřípustné pro pracovní postupy 3D tisku
.daeCOLLADAFormát výměny na základě XML

Obvyklé problémy a řešení

Error: Unsupported format při šetření

Zkontrolujte, zda rozšíření souboru odpovídá podporovanému formátu. Knihovna používá rozšíření k detekci formatu; soubor s názvem output.xyz selže.

.obj Soubor je uložen, ale chybí materiály.

Při ukládání OBJ se uloží knihovna materiálů (.mtl) se automaticky zapíše vedle čísla “Připravené” (včetně čísel: .obj.Obě soubory musí být ve stejném adresáři při opětovném otevření. Pokud potřebujete pouze geometrii, nastavit ObjSaveOptions.enableMaterials = false.

Velké .gltf s samostatnými texturami

Použití: .glb místo: .gltf; spojuje binární data do jednoho samostatného souboru. GltfSaveOptions.binaryMode = true při přechodu a GltfSaveOptions Příklad.


Časté otázky

Můžu si uložit do více formátů?

Ano, zavolejte. scene.save() vícekrát s různými dráhami:

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

Změnilo to scénu?

  • Ne, ne. - Cože?. scene.save() Můžete uložit stejnou scénu do více formátů bez jakýchkoli vedlejších účinků.

Můžu přepsat zdrojový soubor?

Ano, projděte stejnou cestou k… scene.save() které jste použil v scene.open().Knihovna píše do bufera a pak na disk.


Viz také:

 Čeština