Scène Rendering en Export

@aspose/3d is een verwerkings- en conversiebibliotheek, en voert geen GPU-rendering uit of produceert geen afbeeldingsbestanden. “Rendering” in de context van deze bibliotheek betekent een scène exporteren naar een formaat dat een downstream-renderer, game‑engine of viewer kan gebruiken.

Deze pagina behandelt alle exportpaden: bestandsgebaseerd opslaan, in‑memory bufferuitvoer, formaat‑specifieke opties, en hoe scènes voor te bereiden op veelvoorkomende downstream‑doelen (Three.js, Babylon.js, modelviewers en game‑engines).

Basisexport

Aanroep scene.save() met een bestandspad. De bibliotheek leidt het uitvoerformaat af van de bestandsextensie:

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

Exporteren naar GLB (Aanbevolen voor web en games)

GLB (binaire glTF 2.0) is één enkel zelfstandig bestand dat alle mesh‑data, materialen en textures bevat. Het is het aanbevolen uitvoerformaat voor web‑viewers (Three.js, Babylon.js, model-viewer) en game‑engines (Godot, Unity via importeur):

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

Instellen binaryMode = true om een zelfvoorzienend GLB‑bestand te produceren. Wanneer false, is de output een .gltf JSON‑bestand met een aparte .bin buffer‑sidecar.

Exporteren naar glTF (JSON‑formaat voor inspectie)

De JSON‑variant (.gltf + .bin) is handig tijdens ontwikkeling omdat de JSON menselijk leesbaar is:

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

Exporteren naar STL (3D‑printworkflows)

STL bevat alleen geometrie (geen materialen, geen animatie). Het is het standaard uitwisselingsformaat voor 3D‑print slicers:

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

Instellen binaryMode = false om ASCII STL te produceren, wat tekst‑leesbaar is maar groter.

Exporteren naar FBX (DCC‑toolworkflows)

Opmerking: FBX‑import‑ en exportklassen bestaan in de bibliotheek, maar automatische detectie van FBX‑formaat is niet geïntegreerd in scene.open() of scene.save(). Aanroepen scene.save('output.fbx', opts) zal de FBX-exporteur niet aanroepen — de .fbx extensie wordt niet herkend door de opslaan-dispatcher en de oproep valt terug op OBJ-uitvoer. Gebruik de FbxExporter klasse direct als je FBX I/O nodig hebt. De formatondersteuningstabel markeert FBX als No* om die reden.

Als je moet exporteren naar een formaat dat door Blender, Maya of Unreal Engine wordt geaccepteerd, gebruik dan GLB of COLLADA — beide zijn volledig geïntegreerd in 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);

In-Memory Export met saveToBuffer()

Voor serverless-functies, HTTP-responses en streaming-pijplijnen, exporteer direct naar een Buffer zonder naar schijf te schrijven:

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() neemt een formatstring als eerste argument (bijv. 'glb', 'stl', 'obj') en dezelfde optiesobjecten als save().

Combineren openFromBuffer() en saveToBuffer()

Een volledig in‑memory conversiepijplijn zonder schijf‑I/O op enig stadium:

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

Scènes voorbereiden voor specifieke renderers

Three.js / Babylon.js (Web)

Deze renderers laden GLB-bestanden native. Exporteren met binaryMode = true. Als texturen worden verwezen vanuit de bron-OBJ, zorg dan dat de .mtl en afbeeldingsbestanden samen worden geplaatst bij het laden.

model-viewer (Web Component)

Accepteert .glb direct. Dezelfde exportinstellingen als Three.js.

Godot Engine

Importeer GLB via de Godot-importeur (Project → Import). Gebruik binaryMode = true. Godot ondersteunt PBR-materialen van glTF 2.0 native.

Blender

Voor de beste importnauwkeurigheid gebruik glTF (output.gltf + output.bin) of GLB (output.glb). Blender’s glTF 2.0-importeur verwerkt PBR-materialen en animatie. Opmerking: FBX-uitvoer via scene.save() wordt niet ondersteund — FBX-formaat automatische detectie is niet gekoppeld aan de save dispatcher.

3D Printing (Slicers: Cura, PrusaSlicer, Bambu Studio)

Exporteer naar STL of 3MF. Gebruik 3MF wanneer je kleur of materiaalmetadata wilt behouden. Gebruik STL voor maximale compatibiliteit.

Vergelijking van exportformaten

FormaatExtensieMaterialenAnimatieEnkel bestandBeste voor
GLB.glbPBR (glTF 2.0)JaJaWeb, games, algemene levering
glTF.gltfPBR (glTF 2.0)JaNee (+ .bin)Ontwikkeling, inspectie
STL.stlNeeNeeJa3D printing, geometry-only
FBX.fbxPhong/PBRNee*Nee*Importer/exporter bestaat maar is niet gekoppeld aan automatische detectie
COLLADA.daeJaJaJaCross-DCC-uitwisseling
3MF.3mfKleur/materiaalNeeJaModerne 3D-printing

Algemene exportproblemen

SymptoomOorzaakOplossing
Uitvoer GLB wordt geopend als JSON in de viewerbinaryMode gelaten als falseInstellen opts.binaryMode = true
Texturen ontbreken in uitvoer-GLBbinaryMode niet ingesteldInstellen opts.binaryMode = true voor een zelfvoorzienende GLB
STL-bestand heeft geen kleur in slicerSTL-formaat ondersteunt geen kleurGebruik 3MF voor kleurgegevens
saveToBuffer geeft lege buffer terugFormaattekenreeksargument ontbreekt of is onjuistGeef de formaattekenreeks door, bijv. 'glb', 'stl', of 'obj'
FBX opent zonder animatie in BlenderBronbestand (OBJ/STL) heeft geen animatieAnimatie wordt alleen doorgegeven als deze in de bron aanwezig is
Uitvoerbestand is erg grootBron-OBJ heeft veel dubbele verticesGLB-binaire uitvoer dedupliceert al; controleer de kwaliteit van de bronasset

Zie ook

 Nederlands