soonspacejs
Version:
soonspacejs 2.x
46 lines (45 loc) • 1.32 kB
TypeScript
import { Camera, Scene, WebGLRenderer } from 'three';
import { EffectComposer, Pass, Effect } from 'postprocessing';
export interface EffectState<T = Effect> {
enabled: boolean;
effect: T;
}
declare class EffectManager {
readonly renderer: WebGLRenderer;
readonly scene: Scene;
readonly camera: Camera;
static CONSTANTS: {
renderPass: string;
ssaoPass: string;
effectPass: string;
smaaEffect: string;
outlineEffect: string;
bloomEffect: string;
toneMappingEffect: string;
};
effectComposer: EffectComposer;
passesMap: Map<string, Pass>;
effectsMap: Map<string, EffectState>;
effectsNeedsUpdate: boolean;
constructor(renderer: WebGLRenderer, scene: Scene, camera: Camera);
/**
* 更新 Effect pass
*/
updateEffectPass(): void;
/**
* 更新 camera
* @param camera
*/
updateCamera(camera: Camera): void;
private _initEffectComposer;
private _initPasses;
private _initRenderPass;
private _initSSAOPass;
private _initEffectPass;
private _initEffects;
private _initSMAAEffect;
private _initToneMappingEffect;
private _initBloomEffect;
private _initOutlineEffect;
}
export default EffectManager;