import Vector3 from '../math/Vector3'; import TextureCube, { CubeTarget } from '../TextureCube'; import type ShadowMapPass from './ShadowMap'; import type Renderer from '../Renderer'; import type Scene from '../Scene'; import Camera from '../Camera'; interface EnvironmentMapPassOpts { /** * Camera position */ position: Vector3; /** * Camera far plane */ far: number; /** * Camera near plane */ near: number; /** * Environment cube map */ texture: TextureCube; /** * Used if you wan't have shadow in environment map */ shadowMapPass: ShadowMapPass; } /** * Pass rendering scene to a environment cube map * * @example * // Example of car reflection * const envMap = new clay.TextureCube({ * width: 256, * height: 256 * }); * const envPass = new clay.prePass.EnvironmentMap({ * position: car.position, * texture: envMap * }); * const carBody = car.getChildByName('body'); * carBody.material.enableTexture('environmentMap'); * carBody.material.set('environmentMap', envMap); * ... * animation.on('frame', function(frameTime) { * envPass.render(renderer, scene); * renderer.render(scene, camera); * }); */ declare class EnvironmentMapPass { /** * Camera position */ position: Vector3; /** * Camera far plane */ far: number; /** * Camera near plane */ near: number; /** * Environment cube map */ texture?: TextureCube; /** * Used if you wan't have shadow in environment map */ shadowMapPass?: ShadowMapPass; private _cameras; private _frameBuffer; constructor(opts?: Partial); getCamera(target: CubeTarget): Camera<"perspective">; render(renderer: Renderer, scene: Scene, notUpdateScene?: boolean): void; dispose(renderer: Renderer): void; } export default EnvironmentMapPass;