import * as THREE from 'three'; import { FullScreenQuad } from '../../tools/full-screen-quad'; /** * Pass基类 * three.js 的 Pass 接口,用于 EffectComposer */ export interface Pass { enabled: boolean; needsSwap: boolean; clear: boolean; renderToScreen: boolean; setSize(width: number, height: number): void; render(renderer: THREE.WebGLRenderer, writeBuffer: THREE.WebGLRenderTarget, readBuffer: THREE.WebGLRenderTarget, deltaTime?: number, maskActive?: boolean): void; } /** * FivePass * * Five 引擎优化的 Pass 基类 * 支持 G-Buffer 注入,避免重复渲染场景 */ export declare class FivePass implements Pass { static FullScreenQuad: typeof FullScreenQuad; enabled: boolean; needsSwap: boolean; clear: boolean; renderToScreen: boolean; dependencies: ('depth' | 'normal' | 'color')[]; /** * G-Buffer 纹理集合 * 包含 depth、normal、color 等纹理 * 由 EffectComposer 在 render 时注入 */ gbuffer: Map<'depth' | 'normal' | 'color', THREE.Texture>; constructor(dependencies?: ('depth' | 'normal' | 'color')[]); setSize(width: number, height: number): void; render(renderer: THREE.WebGLRenderer, writeBuffer: THREE.WebGLRenderTarget, readBuffer: THREE.WebGLRenderTarget, deltaTime?: number, maskActive?: boolean): void; dispose(): void; }