UNPKG

polygonjs-engine

Version:

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

99 lines (89 loc) 2.98 kB
// import { Camera } from "three/src/cameras/Camera"; // const THREE = { Camera }; // import { ParamType } from "src/Engine/Param/_Module"; // // import Container from '../../Container/Texture' // import { BaseNodePostProcess } from "./_Base"; // import { CoreScriptLoader } from "src/Core/Loader/Script"; // import { EffectComposer } from "modules/three/examples/jsm/postprocessing/EffectComposer"; // import { SSAOPass } from "modules/three/examples/jsm/postprocessing/SSAOPass"; // import { BaseCamera } from "../Obj/_BaseCamera"; // export class ScreenSpaceAmbientOcclusion extends BaseNodePostProcess { // static type() { // return "screen_space_ambient_occlusion"; // } // static async load_js() { // await CoreScriptLoader.load_three_render_pass( // "SSAOPass", // { // math: ["SimplexNoise"], // shaders: ["SSAOShader"] // }, // { // base_folder: "three_custom" // } // ); // } // private _param_output_type: number; // private _param_kernel_radius: number; // private _param_kernel_size: number; // private _param_min_distance: number; // private _param_max_distance: number; // create_params() { // this.self.add_param(ParamType.INTEGER, "output_type", 0, { // menu: { // type: "radio", // entries: [ // { name: "Default", value: SSAOPass.OUTPUT.Default }, // { name: "SSAO Only", value: SSAOPass.OUTPUT.SSAO }, // { name: "SSAO Only + Blur", value: SSAOPass.OUTPUT.Blur }, // { name: "Beauty", value: SSAOPass.OUTPUT.Beauty }, // { name: "Depth", value: SSAOPass.OUTPUT.Depth }, // { name: "Normal", value: SSAOPass.OUTPUT.Normal } // ] // } // }); // this.add_param(ParamType.INTEGER, "kernel_radius", 8, { // range: [0, 32], // rangeLocked: [true, true] // }); // this.add_param(ParamType.INTEGER, "kernel_size", 16, { // range: [0, 32], // rangeLocked: [true, true] // }); // this.add_param(ParamType.FLOAT, "min_distance", 0.005, { // range: [0.001, 0.02], // rangeLocked: [true, true], // step: 0.001 // }); // this.add_param(ParamType.FLOAT, "max_distance", 0.1, { // range: [0.01, 0.3], // rangeLocked: [true, true], // step: 0.001 // }); // } // apply_to_composer( // composer: EffectComposer, // camera: THREE.Camera, // resolution: THREE.Vector2, // camera_node: BaseCamera // ) { // const SSAOPass_name = "SSAOPass"; // const pass = new THREE[SSAOPass_name]( // this._display_scene, // camera, // resolution.x, // resolution.y // ); // pass.output = this._param_output_type; // pass.kernelRadius = this._param_kernel_radius * 0.1; // TODO: this is a hack to debug // pass.kernelSize = this._param_kernel_size; // pass.minDistance = this._param_min_distance; // pass.maxDistance = this._param_max_distance; // composer.passes = []; // composer.addPass(pass); // } // async cook() { // await ScreenSpaceAmbientOcclusion.load_js(); // this.end_cook(); // } // }