import { SpecularBasicMethod } from './SpecularBasicMethod'; import { SpecularCompositeMethod } from './SpecularCompositeMethod'; /** * SpecularFresnelMethod provides a specular shading method that causes stronger * highlights on grazing view angles. */ export declare class SpecularFresnelMethod extends SpecularCompositeMethod { private _basedOnSurface; private _fresnelPower; private _normalReflectance; static assetType: string; /** * @inheritDoc */ get assetType(): string; /** * Creates a new SpecularFresnelMethod object. * @param basedOnSurface Defines whether the fresnel effect should be based * on the view angle on the surface (if true), or on the angle between the * light and the view. * @param baseMethod The specular method to which the fresnel equation. * Defaults to SpecularBasicMethod. */ constructor(basedOnSurface?: boolean, fresnelPower?: number, normalReflectance?: number, baseMethod?: SpecularBasicMethod | SpecularCompositeMethod); /** * Defines whether the fresnel effect should be based on the view angle on * the surface (if true), or on the angle between the light and the view. */ get basedOnSurface(): boolean; set basedOnSurface(value: boolean); /** * The power used in the Fresnel equation. Higher values make the fresnel * effect more pronounced. Defaults to 5. */ get fresnelPower(): number; set fresnelPower(value: number); /** * The minimum amount of reflectance, ie the reflectance when the view * direction is normal to the surface or light direction. */ get normalReflectance(): number; set normalReflectance(value: number); } import { ShaderRegisterCache, ShaderRegisterData } from '@awayjs/stage'; import { LightingShader } from '../shaders/LightingShader'; import { _Shader_LightingCompositeMethod } from './CompositeMethodBase'; /** * _Shader_SpecularFresnelMethod provides a specular shading method that causes * stronger highlights on grazing view angles. */ export declare class _Shader_SpecularFresnelMethod extends _Shader_LightingCompositeMethod { private _method; private _shader; private _fresnelDataRegister; private _fresnelDataIndex; /** * Creates a new _Shader_SpecularFresnelMethod object. */ init(method: SpecularFresnelMethod, shader: LightingShader): void; /** * @inheritDoc */ _cleanCompilationData(): void; /** * @inheritDoc */ _activate(): void; /** * @inheritDoc */ _getFragmentPreLightingCode(registerCache: ShaderRegisterCache, sharedRegisters: ShaderRegisterData): string; /** * Applies the fresnel effect to the specular strength. * * @param vo The MethodVO object containing the method data for the * currently compiled material pass. * @param target The register containing the specular strength in the "w" * component, and the half-vector/reflection vector in "xyz". * @param regCache The register cache used for the shader compilation. * @param sharedRegisters The shared registers created by the compiler. * @return The AGAL fragment code for the method. */ private modulateSpecular; } //# sourceMappingURL=SpecularFresnelMethod.d.ts.map