polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
99 lines (89 loc) • 2.98 kB
text/typescript
// 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();
// }
// }