polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
73 lines (72 loc) • 2.52 kB
TypeScript
import { WebGLRenderer } from 'three/src/renderers/WebGLRenderer';
import { WebGLRenderTarget } from 'three/src/renderers/WebGLRenderTarget';
import { ShaderMaterial } from 'three/src/materials/ShaderMaterial';
import { Scene } from 'three/src/scenes/Scene';
import { IUniformN, IUniformTexture, IUniformV2 } from '../../../engine/nodes/utils/code/gl/Uniforms';
import { Vector2 } from 'three/src/math/Vector2';
import { Color } from 'three/src/math/Color';
import { PerspectiveCamera } from 'three/src/cameras/PerspectiveCamera';
import { IUniform } from 'three/src/renderers/shaders/UniformsLib';
import { DepthOfFieldPostNode } from '../../../engine/nodes/post/DepthOfField';
interface BokehUniforms {
tColor: IUniformTexture;
tDepth: IUniformTexture;
textureWidth: IUniformN;
textureHeight: IUniformN;
fstop: IUniformN;
maxblur: IUniformN;
threshold: IUniformN;
gain: IUniformN;
bias: IUniformN;
fringe: IUniformN;
dithering: IUniformN;
focalLength: IUniformN;
znear: IUniformN;
zfar: IUniformN;
focalDepth: IUniformN;
noise: IUniformN;
pentagon: IUniformN;
vignetting: IUniformN;
depthblur: IUniformN;
shaderFocus: IUniformN;
showFocus: IUniformN;
manualdof: IUniformN;
focusCoords: IUniformV2;
[uniform: string]: IUniform;
}
interface BokehShaderMaterial extends ShaderMaterial {
uniforms: BokehUniforms;
defines: {
RINGS: number;
SAMPLES: number;
};
}
export declare class BokehPass2 {
private _depth_of_field_node;
private _scene;
private _camera;
private _resolution;
private _core_scene;
private materialDepth;
private materialDepthInstance;
private _camera_uniforms;
enabled: boolean;
needsSwap: boolean;
clear: boolean;
renderToScreen: boolean;
private _processing_scene;
private _processing_camera;
private _rtTextureDepth;
private _rtTextureColor;
bokeh_uniforms: BokehUniforms;
bokeh_material: BokehShaderMaterial;
private _quad;
clear_color: Color;
constructor(_depth_of_field_node: DepthOfFieldPostNode, _scene: Scene, _camera: PerspectiveCamera, _resolution: Vector2);
setSize(width: number, height: number): void;
dispose(): void;
private _prev_clear_color;
render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget): void;
update_camera_uniforms_with_node(node: DepthOfFieldPostNode, camera: PerspectiveCamera): void;
}
export {};