Scenární reprodukce a export
@aspose/3d je knihovna pro zpracování a konverzi, která nevykonává renderování GPU ani nevyvíjí soubory snímků. “Rendering” v kontextu této knížky znamená: export scény do formátu, který může spotřebovat následný renderer, herní motor nebo divák..
Tato stránka pokrývá všechny cesty vývozu: ukládání na bázi souborů, výstupy v paměti do bufera, možnosti specifické pro formát a způsob přípravy scén pro běžné cíle níže (Three.js, Babylon. js, modely vizory a herní motory).
Základní vývoz
Zavolej . scene.save() Knihovna odvodí výstupní formát z rozšíření souboru:
import { Scene } from '@aspose/3d';
const scene = new Scene();
scene.open('input.obj'); // use a supported format (OBJ, glTF, GLB, STL, 3MF, COLLADA)
scene.save('output.glb'); // GLB (binary glTF)
scene.save('output.stl'); // STL
scene.save('output.dae'); // COLLADA
scene.save('output.3mf'); // 3MF
Vývoz do GLB (doporučeno pro webové stránky a hry)
GLB (binární glTF 2.0) je jediný samostatný soubor, který obsahuje všechny daty z mší, materiály a textury. Je doporučeným výstupním formátem pro webové vizory (Three.js, Babylon. js, model-viewer) a herní motory:
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('source.obj');
const opts = new GltfSaveOptions();
opts.binaryMode = true; // produce .glb instead of .gltf + .bin
scene.save('output.glb', opts);
console.log('GLB export complete');Sestavení: binaryMode = true vytvořit samostatný soubor GLB. false, výstup je a .gltf Soubor JSON s samostatným kódem . .bin nárazník.
Exportování do formátu glTF (formát JSON pro inspekci)
Varianta JSON (.gltf + .bin) je užitečná během vývoje, protože JSON je čitelný pro lidské ovládání:
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.dae'); // COLLADA is fully supported; FBX is not wired into scene.open()
const opts = new GltfSaveOptions();
opts.binaryMode = false; // JSON + .bin sidecar
scene.save('output.gltf', opts);Vývoz do STL (3D tiskové pracovní postupy)
STL je pouze geometrický (bez materiálů, bez animace). Je standardním formátem výměny pro 3D tiskové řezače:
import { Scene } from '@aspose/3d';
import { StlSaveOptions } from '@aspose/3d/formats/stl';
const scene = new Scene();
scene.open('model.obj');
const opts = new StlSaveOptions();
opts.binaryMode = true; // binary STL is more compact than ASCII
scene.save('output.stl', opts);Sestavení: binaryMode = false vytvořit ASCII STL, který je čitelný jako text, ale větší.
Exportování do FBX (DCC Workflows)
Poznámka:: FBX importér a exportovatel třídy existují v knihovně, ale auto-detekce formátu FBx není připojen do
scene.open()nebo:scene.save().Volám .scene.save('output.fbx', opts)nebude odvolat vývozce FBX na.fbxRozšíření není rozpoznáno dispečerem uložení a volání se vrátí na výstup OBJ. PoužijteFbxExporterPokud potřebujete FBX I/O. Tabulka podpory formátu označuje FBx jakoNo*z tohoto důvodu.
Pokud potřebujete exportovat do formátu přijatého Blenderem, Maya nebo Unreal Engine, použijte místo toho GLB nebo COLLADA oba jsou plně propojeny s scene.save():
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.dae');
// GLB is fully supported and widely accepted by DCC tools
const opts = new GltfSaveOptions();
opts.binaryMode = true;
scene.save('output.glb', opts);Exportování do paměti s: saveToBuffer()
Pro bezserverové funkce, HTTP odpovědi a streamovací potrubí exportovat přímo do serverového systému. Buffer bez psaní na disk:
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
function convertToGlbBuffer(inputPath: string): Buffer {
const scene = new Scene();
scene.open(inputPath);
const opts = new GltfSaveOptions();
opts.binaryMode = true;
return scene.saveToBuffer('glb', opts);
}
// Express.js / HTTP response example
// const glbBuffer = convertToGlbBuffer('model.obj');
// res.setHeader('Content-Type', 'model/gltf-binary');
// res.send(glbBuffer);
saveToBuffer() jako první argument bere řetěz formátu (např. 'glb', 'stl', 'obj') a stejných objektů opcí jako save().
Spojování: openFromBuffer() a) saveToBuffer()
Plně v paměti převádějící se potrubí bez vstupů/výstupů na disku:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
function objBufferToGlbBuffer(objData: Buffer): Buffer {
const scene = new Scene();
const loadOpts = new ObjLoadOptions();
loadOpts.enableMaterials = true;
scene.openFromBuffer(objData, loadOpts);
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;
return scene.saveToBuffer('glb', saveOpts);
}Příprava scén pro konkrétní hráče
Three.js / Babylon.js (Web)
Tyto renderery nativně naloží soubory GLB. Export s binaryMode = true.Pokud jsou textury odkazem na zdroj OBJ, zajistěte, aby byly textury uvedené v příloze I. .mtl a soubory snímků jsou při načtení umístěny společně.
model-viewer (Webová složka)
Přijímá: .glb Stejné exportní nastavení jako Three.js.
Godotův motor
Import GLB prostřednictvím Godotova dovozce (Projekt → import) Použití binaryMode = true.Godot podporuje PBR materiály z glTF 2.0 nativně.
Míchárka
Pro nejlepší dovozní věrnost se použije glTF (output.gltf + output.bin) nebo GLB (output.glb) Dovozce GLTF 2.0 od Blenderu obsluhuje materiály a animaci PBR. Poznámka: Výstup FBX prostřednictvím sítě PCR (FBX). scene.save() není podporováno Auto-detekce ve formátu FBX není připojená k dispečerovi pro ukládání.
3D Printing (Slicers: Cura, PrusaSlicer, Bambu Studio)
Exportovat do STL nebo 3MF. Použijte 3 MF, když potřebujete zachování barevných či materiálových metadátů. Pro maximální kompatibilitu použijte ST L.
Srovnání formátu vývozu
| Formát | Rozšíření | Materiály | Animování | Jednotný soubor | Nejlepší pro: |
|---|---|---|---|---|---|
| glTF | .glb / .gltf | PBR (glTF 2.0) | Ano , ano . | GLB: ano; glTF: ne | Web, hry, všeobecná distribuce |
| STL | .stl | Ne, ne. | Ne, ne. | Ano , ano . | 3D printing, geometry-only |
| FBX | .fbx | Phong/PBR | Ne* | Ne* | Existují dovozci/vývozci, ale nejsou připojeni k automatickému detekci. |
| COLLADA | .dae | Ano , ano . | Ano , ano . | Ano , ano . | Výměna mezi DCC |
| 3MF | .3mf | Barva/materiál | Ne, ne. | Ano , ano . | Moderní 3D tisk |
Vyberte glTF (GLB) pro webovou distribuci, 3MF pro tiskové pracovní postupy vyžadující barevné metadatá a STL pro maximální kompatibilitu geometrie se staršími nástroji.
Společné problémy při vývozu
| Příznak: | Příčina: | Opravy |
|---|---|---|
| Výstup GLB se otevírá jako JSON ve zobrazení | binaryMode levá jako: false | Sestavení: opts.binaryMode = true |
| Vypravěné textury chybí v GLB | binaryMode Nevyhodněné | Sestavení: opts.binaryMode = true pro samostatné GLB |
| STL soubor nemá barvu v řezbě . | Formát STL nepodporuje barvu | Použijte 3MF pro barevné údaje. |
saveToBuffer vrací prázdný nárazník | Argument řetězce formátu chybí nebo je nesprávný | Přejít řetěz formátu, např. 'glb', 'stl',nebo: 'obj' |
| FBX se otevře bez animace v Blenderu | Zdrojový soubor (OBJ/STL) nemá animaci. | Animování probíhá pouze v případě, že je obsaženo ve zdroji. |
| Výstupní soubor je velmi velký . | Zdroj OBJ má mnoho duplicitních vrcholů. | Dvojitý výstup GLB již zdvojnásobuje; zkontrolujte kvalitu zdrojového aktiva |
Viz také:
- Naložení modelu: načítání 3D souborů z disku a buferů
- Graf scény: výstavba a úprava scény před exportem
- Podpora formátu: kompletní matrice čtení/psaní
- Přehled API: všechny třídy a výčty