import * as THREE from 'three'; import { Camera, Object3D, Scene } from 'three'; import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer"; import { RenderPass } from "three/examples/jsm/postprocessing/RenderPass"; import { ShaderPass } from "three/examples/jsm/postprocessing/ShaderPass"; import { OutlinePass } from "three/examples/jsm/postprocessing/OutlinePass"; import { UnrealBloomPass } from "three/examples/jsm/postprocessing/UnrealBloomPass"; export declare const vertexShader = "\n varying vec2 vUv;\n\t void main() {\n\t\tvUv = uv;\n\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t }\n"; export declare const fragmentShader = "\n\t\tuniform sampler2D baseTexture;\n\t\tuniform sampler2D bloomTexture;\n\t\tuniform vec3 glowColor; \n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\t\t\tvec4 baseColor = texture2D(baseTexture, vUv);\n\t\t\tvec4 bloomColor = texture2D(bloomTexture, vUv);\n\n\t\t\t// \u8C03\u6574\u8F89\u5149\u989C\u8272\n\t\t\tvec4 glow = vec4(glowColor, 1.0);\n\n\t\t\tgl_FragColor = baseColor + glow * bloomColor;\n\t\t}"; declare class ViewEffectComposer { dom: HTMLElement; scene: Scene; camera: Camera; renderer: THREE.WebGLRenderer; effectComposer?: EffectComposer; outlinePass?: OutlinePass; unrealBloomPass?: UnrealBloomPass; shaderPass?: ShaderPass; glowComposer?: EffectComposer; glowRenderPass?: RenderPass; constructor(scene: Scene, camera: Camera, domElement: HTMLElement); setEffectComposer(renderer: THREE.WebGLRenderer): void; setOutlinePass(param: OutlinePassParam): void; addOutlinePass(object: Object3D): void; deleteOutlinePass(object: Object3D): void; setUnrealBloom(param: UnrealBloomParam): void; } export interface OutlinePassParam { color?: any; edgeThickness?: number; edgeStrength?: number; pulsePeriod?: number; } export interface UnrealBloomParam { threshold?: any; strength?: number; radius?: number; } export { ViewEffectComposer };