Kohtauksen renderöinti ja vienti

Kohtauksen renderöinti ja vienti

@aspose/3d on prosessointi- ja muunnoskirjasto, eikä se suorita GPU-renderöintiä tai tuota kuvatiedostoja. “Renderöinti” tässä kirjastossa tarkoittaa viedä kohtauksen formaattiin, jonka alavirta-renderöijä, pelimoottori tai katseluohjelma voi käyttää.

Tämä sivu kattaa kaikki vientireitit: tiedostopohjainen tallennus, muistissa oleva puskurituloste, formaattikohtaiset asetukset sekä kuinka valmistella kohtauksia yleisille alapuolisille kohteille (Three.js, Babylon.js, mallikatseluohjelmat ja pelimoottorit).

Perusvienti

Kutsu scene.save() tiedostopolulla. Kirjasto päätelsee tulostusformaatin tiedostopäätteestä:

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

Vienti GLB-muotoon (Suositeltu verkkoon ja peleihin)

GLB (binäärinen glTF 2.0) on yksi itsenäinen tiedosto, joka upottaa kaikki verkkomateriaalit, materiaalit ja tekstuurit. Se on suositeltu tulostusformaatti verkkokatseluohjelmille (Three.js, Babylon.js, model-viewer) ja pelimoottoreille (Godot, Unity tuontityökalun kautta):

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

Aseta binaryMode = true tuottamaan itsenäisen GLB-tiedoston. Kun false, tulos on .gltf JSON-tiedosto, jossa on erillinen .bin puskuritiedosto.

Vienti glTF-muotoon (JSON‑formaatti tarkastelua varten)

JSON-muunnelma (.gltf + .bin) on hyödyllinen kehityksen aikana, koska JSON on luettavissa ihmisluettavassa muodossa:

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

Vienti STL-muotoon (3D‑tulostusprosessit)

STL sisältää vain geometriaa (ei materiaaleja, ei animaatioita). Se on 3D‑tulostuksen leikkausohjelmien vakiomuoto:

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

Aseta binaryMode = false tuottamaan ASCII STL:n, joka on tekstitiedostona luettavissa, mutta suurempi.

Vienti FBX-muotoon (DCC‑työkaluprosessit)

Huomaa: FBX-tuonti- ja vientiluokat ovat kirjastossa, mutta FBX-formaatin automaattinen tunnistus ei ole kytketty scene.open() tai scene.save(). Kutsuminen scene.save('output.fbx', opts) ei käynnistä FBX-vientoa — the .fbx tiedostopääte ei ole tunnistettu tallennusjakelijassa, ja kutsu palaa OBJ-tulosteeseen. Käytä the FbxExporter luokkaa suoraan, jos tarvitset FBX I/O. Formaattituen taulukko merkitsee FBX:n No* tämän vuoksi.

Jos sinun täytyy viedä formaattiin, jonka Blender, Maya tai Unreal Engine hyväksyy, käytä sen sijaan GLB- tai COLLADA-muotoa — molemmat on täysin integroituna 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);

Muistissa tapahtuva vienti saveToBuffer()

Serverittomille funktioille, HTTP-vastauksille ja suoratoistoputkille, vie suoraan Buffer kirjoittamatta levylle:

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() ottaa formaattimerkkijonon ensimmäisenä argumenttina (esim. 'glb', 'stl', 'obj') ja samat options objects kuin save().

Yhdistämällä openFromBuffer() ja saveToBuffer()

Täysin muistissa toimiva muunnosputki ilman levy‑I/O:tä missään vaiheessa:

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

Kohtien (Scene) valmistelu tiettyihin renderöijiin

Three.js / Babylon.js (Web)

Nämä renderöijät lataavat GLB-tiedostot natiivisti. Vie binaryMode = true. Jos tekstuurit viittaavat lähde-OBJ:stä, varmista että .mtl ja kuvatiedostot sijaitsevat samassa hakemistossa latauksen aikana.

model-viewer (Web‑komponentti)

Hyväksyy .glb suoraan. Samat vientiasetukset kuin Three.js.

Godot Engine

Tuo GLB Godotin tuontityökalulla (Project → Import). Käytä binaryMode = true. Godot tukee PBR-materiaaleja glTF 2.0:sta natiivisti.

Blender

Parhaan tuonnin tarkkuuden saavuttamiseksi käytä glTF (output.gltf + output.bin) tai GLB (output.glb). Blenderin glTF 2.0 -tuonti käsittelee PBR-materiaaleja ja animaatiota. Huomaa: FBX-tulostus kautta scene.save() ei ole tuettu — FBX-muodon automaattitunnistus ei ole kytketty tallennusjakajaan.

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

Vie STL‑ tai 3MF‑muotoon. Käytä 3MF:ää, kun tarvitset värin tai materiaalimetatiedon säilymisen. Käytä STL:ää maksimaalisen yhteensopivuuden vuoksi.

Vientiformaattien vertailu

MuotoTiedostopääteMateriaalitAnimaatioYksi tiedostoParas käyttötarkoitus
GLB.glbPBR (glTF 2.0)KylläKylläWeb, pelit, yleinen jakelu
glTF.gltfPBR (glTF 2.0)KylläEi (+ .bin)Kehitys, tarkastus
STL.stlEiEiKyllä3D printing, geometry-only
FBX.fbxPhong/PBREi*Ei*Tuonti/vienti on olemassa, mutta ei ole kytketty automaattitunnistukseen
COLLADA.daeKylläKylläKylläCross-DCC-vaihto
3MF.3mfVäri/materiaaliEiKylläModerni 3D-tulostus

Yleisiä vientiongelmia

OireSyyKorjaus
Tuloste GLB avautuu JSON-muodossa katselimessabinaryMode jäljelle jätetty falseAseta opts.binaryMode = true
Tekstuureja puuttuu GLB‑tulosteessabinaryMode ei asetettuAseta opts.binaryMode = true itsenäistä GLB:tä varten
STL-tiedostossa ei ole väriä leikkausohjelmassaSTL-muoto ei tue väriäKäytä 3MF:ää väridataa varten
saveToBuffer palauttaa tyhjän puskurinMuotoilumerkkijonon argumentti puuttuu tai on vääräAnna muotoilumerkkijono, esim. 'glb', 'stl', tai 'obj'
FBX avautuu ilman animaatiota BlenderissäLähdetiedostossa (OBJ/STL) ei ole animaatiotaAnimaatio siirtyy vain, jos se on läsnä lähteessä
Tulostiedosto on erittäin suuriLähde-OBJ:ssä on paljon päällekkäisiä verteksipisteitäGLB-binäärituloste poistaa kaksoiskappaleet jo itsessään; tarkista lähde‑omaisuuden laatu

Katso myös

 Suomi