UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

50 lines (45 loc) 1.25 kB
/** * Exports the input as GLTF * * @remarks */ import {ExporterSopNode, BaseExporterSopParamsConfig} from './_BaseExporter'; import {GLTFExporter, GLTFExporterOptions} from 'three/examples/jsm/exporters/GLTFExporter'; import {SopExporter} from '../../poly/registers/nodes/types/Sop'; class ExporterGLTFSopParamsConfig extends BaseExporterSopParamsConfig {} const ParamsConfig = new ExporterGLTFSopParamsConfig(); export class ExporterGLTFSopNode extends ExporterSopNode<ExporterGLTFSopParamsConfig> { override paramsConfig = ParamsConfig; static override type() { return SopExporter.EXPORTER_GLTF; } fileExtension() { return 'glb'; } createBlob(): Promise<Blob> { return new Promise(async (resolve) => { const sceneData = await this._prepareScene(); if (!sceneData) { return; } const {scene, objects} = sceneData; const options: GLTFExporterOptions = { embedImages: true, // trs: true, // onlyVisible: true, // truncateDrawRange: false, binary: true, // maxTextureSize: Infinity }; const exporter = new GLTFExporter(); exporter.parse( scene, async (result) => { this._handleResult(result, objects, resolve); }, (err) => {}, options ); }); } }