import { TextureBase } from '@awayjs/renderer'; import { DiffuseBasicMethod } from './DiffuseBasicMethod'; import { DiffuseCompositeMethod } from './DiffuseCompositeMethod'; /** * DiffuseLightMapMethod provides a diffuse shading method that uses a light map to modulate the calculated diffuse * lighting. It is different from EffectLightMapMethod in that the latter modulates the entire calculated pixel color, rather * than only the diffuse lighting value. */ export declare class DiffuseLightMapMethod extends DiffuseCompositeMethod { /** * Indicates the light map should be multiplied with the calculated shading result. * This can be used to add pre-calculated shadows or occlusion. */ static MULTIPLY: string; /** * Indicates the light map should be added into the calculated shading result. * This can be used to add pre-calculated lighting or global illumination. */ static ADD: string; private _lightMap; private _blendMode; private _useSecondaryUV; static assetType: string; /** * @inheritDoc */ get assetType(): string; /** * The blend mode with which the light map should be applied to the lighting result. * * @see DiffuseLightMapMethod.ADD * @see DiffuseLightMapMethod.MULTIPLY */ get blendMode(): string; set blendMode(value: string); /** * The texture containing the light map data. */ get lightMap(): TextureBase; set lightMap(value: TextureBase); /** * Indicates whether the secondary UV set should be used to map the light map. */ get useSecondaryUV(): boolean; set useSecondaryUV(value: boolean); /** * Creates a new DiffuseLightMapMethod method. * * @param lightMap The texture containing the light map. * @param blendMode The blend mode with which the light map should be applied to the lighting result. * @param useSecondaryUV Indicates whether the secondary UV set should be used to map the light map. * @param baseMethod The diffuse method used to calculate the regular diffuse-based lighting. */ constructor(lightMap: TextureBase, blendMode?: string, useSecondaryUV?: boolean, baseMethod?: DiffuseBasicMethod | DiffuseCompositeMethod); } import { ShaderRegisterCache, ShaderRegisterData, ShaderRegisterElement } from '@awayjs/stage'; import { _Render_RenderableBase, ChunkVO } from '@awayjs/renderer'; import { LightingShader } from '../shaders/LightingShader'; import { _Shader_LightingCompositeMethod } from './CompositeMethodBase'; /** * _Shader_DiffuseLightMapMethod provides a diffuse shading method that uses a light map to modulate the calculated diffuse * lighting. It is different from EffectLightMapMethod in that the latter modulates the entire calculated pixel color, rather * than only the diffuse lighting value. */ export declare class _Shader_DiffuseLightMapMethod extends _Shader_LightingCompositeMethod { private _lightMap; private _method; private _shader; /** * Creates a new _Shader_DiffuseLightMapMethod method. */ init(method: DiffuseLightMapMethod, shader: LightingShader): void; /** * @inheritDoc */ _initVO(chunkVO: ChunkVO): void; /** * @inheritDoc */ _initConstants(): void; /** * @inheritDoc */ _getFragmentCode(targetReg: ShaderRegisterElement, registerCache: ShaderRegisterCache, sharedRegisters: ShaderRegisterData): string; /** * @inheritDoc */ _activate(): void; /** * @inheritDoc */ _setRenderState(renderState: _Render_RenderableBase): void; } //# sourceMappingURL=DiffuseLightMapMethod.d.ts.map