UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

78 lines (77 loc) 3.74 kB
export class ShadowRenderer { static createShadowCamera(shadowType: any, type: any, face: any): Camera; /** * @param {Renderer} renderer - The renderer. * @param {LightTextureAtlas} lightTextureAtlas - The shadow map atlas. */ constructor(renderer: Renderer, lightTextureAtlas: LightTextureAtlas); /** * A cache of shadow passes. First index is looked up by light type, second by shadow type. * * @type {ShaderPassInfo[][]} * @private */ private shadowPassCache; device: import("../../index.js").GraphicsDevice; /** @type {Renderer} */ renderer: Renderer; /** @type {LightTextureAtlas} */ lightTextureAtlas: LightTextureAtlas; sourceId: import("../../index.js").ScopeId; pixelOffsetId: import("../../index.js").ScopeId; weightId: import("../../index.js").ScopeId; blurVsmShader: {}[]; blurVsmWeights: {}; shadowMapLightRadiusId: import("../../index.js").ScopeId; viewUniformFormat: UniformBufferFormat; viewBindGroupFormat: BindGroupFormat; blendStateWrite: BlendState; blendStateNoWrite: BlendState; _cullShadowCastersInternal(meshInstances: any, visible: any, camera: any): void; /** * Culls the list of shadow casters used by the light by the camera, storing visible mesh * instances in the specified array. * * @param {LayerComposition} comp - The layer composition used as a source of shadow casters, * if those are not provided directly. * @param {Light} light - The light. * @param {MeshInstance[]} visible - The array to store visible mesh instances in. * @param {Camera} camera - The camera. * @param {MeshInstance[]} [casters] - Optional array of mesh instances to use as casters. */ cullShadowCasters(comp: LayerComposition, light: Light, visible: MeshInstance[], camera: Camera, casters?: MeshInstance[]): void; sortCompareShader(drawCallA: any, drawCallB: any): number; setupRenderState(device: any, light: any): void; dispatchUniforms(light: any, shadowCam: any, lightRenderData: any, face: any): void; /** * @param {Light} light - The light. * @returns {number} Index of shadow pass info. */ getShadowPass(light: Light): number; /** * @param {MeshInstance[]} visibleCasters - Visible mesh instances. * @param {Light} light - The light. * @param {Camera} camera - The camera. */ submitCasters(visibleCasters: MeshInstance[], light: Light, camera: Camera): void; needsShadowRendering(light: any): any; getLightRenderData(light: any, camera: any, face: any): any; setupRenderPass(renderPass: any, shadowCamera: any, clearRenderTarget: any): void; prepareFace(light: any, camera: any, face: any): any; renderFace(light: any, camera: any, face: any, clear: any, insideRenderPass?: boolean): void; render(light: any, camera: any, insideRenderPass?: boolean): void; renderVsm(light: any, camera: any): void; getVsmBlurShader(blurMode: any, filterSize: any): any; applyVsmBlur(light: any, camera: any): void; initViewBindGroupFormat(): void; frameUpdate(): void; } import type { Renderer } from './renderer.js'; import type { LightTextureAtlas } from '../lighting/light-texture-atlas.js'; import { UniformBufferFormat } from '../../platform/graphics/uniform-buffer-format.js'; import { BindGroupFormat } from '../../platform/graphics/bind-group-format.js'; import { BlendState } from '../../platform/graphics/blend-state.js'; import type { LayerComposition } from '../composition/layer-composition.js'; import type { Light } from '../light.js'; import type { MeshInstance } from '../mesh-instance.js'; import type { Camera } from '../camera.js';