import { TextureProjector } from '../lights/TextureProjector'; import { MethodBase, _Shader_MethodBase } from './MethodBase'; /** * ProjectiveTextureMethod is a material method used to project a texture unto the surface of an object. * This can be used for various effects apart from acting like a normal projector, such as projecting fake shadows * unto a surface, the impact of light coming through a stained glass window, ... */ export declare class EffectProjectiveTextureMethod extends MethodBase { static OVERLAY: string; static MULTIPLY: string; static ADD: string; static MIX: string; private _projector; private _mode; private _exposure; private _texture; private _onTextureChangedDelegate; static assetType: string; /** * @inheritDoc */ get assetType(): string; /** * */ get exposure(): number; set exposure(value: number); /** * The blend mode with which the texture is blended unto the object. * ProjectiveTextureMethod.MULTIPLY can be used to project shadows. To prevent clamping, the texture's alpha should be white! * ProjectiveTextureMethod.ADD can be used to project light, such as a slide projector or light coming through stained glass. To prevent clamping, the texture's alpha should be black! * ProjectiveTextureMethod.MIX provides normal alpha blending. To prevent clamping, the texture's alpha should be transparent! */ get mode(): string; set mode(value: string); /** * The TextureProjector object that defines the projection properties as well as the texture. * * @see away3d.entities.TextureProjector */ get projector(): TextureProjector; set projector(value: TextureProjector); /** * Creates a new ProjectiveTextureMethod object. * * @param projector The TextureProjector object that defines the projection properties as well as the texture. * @param mode The blend mode with which the texture is blended unto the surface. * * @see away3d.entities.TextureProjector */ constructor(projector: TextureProjector, mode?: string, exposure?: number); private _onTextureChanged; private updateTexture; } import { ShaderRegisterCache, ShaderRegisterData, ShaderRegisterElement } from '@awayjs/stage'; import { ShaderBase, _Render_RenderableBase, ChunkVO } from '@awayjs/renderer'; /** * ProjectiveTextureMethod is a material method used to project a texture unto the surface of an object. * This can be used for various effects apart from acting like a normal projector, such as projecting fake shadows * unto a surface, the impact of light coming through a stained glass window, ... */ export declare class _Shader_EffectProjectiveTextureMethod extends _Shader_MethodBase { private _method; private _shader; private _texture; private _uvVarying; private _projectionIndex; private _exposureIndex; private _projectionMatrix; /** * Creates a new EffectEnvMapChunk. */ init(method: EffectProjectiveTextureMethod, shader: ShaderBase): void; _initVO(chunkVO: ChunkVO): void; /** * @inheritDoc */ _initConstants(): void; /** * @inheritDoc */ _cleanCompilationData(): void; /** * @inheritDoc */ _getVertexCode(registerCache: ShaderRegisterCache, sharedRegisters: ShaderRegisterData): string; /** * @inheritDoc */ _getFragmentCode(targetReg: ShaderRegisterElement, registerCache: ShaderRegisterCache, sharedRegisters: ShaderRegisterData): string; /** * @inheritDoc */ _setRenderState(renderState: _Render_RenderableBase): void; /** * @inheritDoc */ _activate(): void; } //# sourceMappingURL=EffectProjectiveTextureMethod.d.ts.map