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 .fbx Rozšíření není rozpoznáno dispečerem uložení a volání se vrátí na výstup OBJ. Použijte FbxExporter Pokud potřebujete FBX I/O. Tabulka podpory formátu označuje FBx jako No* 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átRozšířeníMateriályAnimováníJednotný souborNejlepší pro:
glTF.glb / .gltfPBR (glTF 2.0)Ano , ano .GLB: ano; glTF: neWeb, hry, všeobecná distribuce
STL.stlNe, ne.Ne, ne.Ano , ano .3D printing, geometry-only
FBX.fbxPhong/PBRNe*Ne*Existují dovozci/vývozci, ale nejsou připojeni k automatickému detekci.
COLLADA.daeAno , ano .Ano , ano .Ano , ano .Výměna mezi DCC
3MF.3mfBarva/materiálNe, 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: falseSestavení: opts.binaryMode = true
Vypravěné textury chybí v GLBbinaryMode NevyhodněnéSestavení: opts.binaryMode = true pro samostatné GLB
STL soubor nemá barvu v řezbě .Formát STL nepodporuje barvuPoužijte 3MF pro barevné údaje.
saveToBuffer vrací prázdný nárazníkArgument ř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 BlenderuZdrojový 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é:

 Čeština