123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- /// <reference path="../../../dist/preview release/babylon.d.ts" />
- declare module BABYLON {
- /**
- * The Physically based material of BJS.
- *
- * This offers the main features of a standard PBR material.
- * For more information, please refer to the documentation :
- * http://doc.babylonjs.com/extensions/Physically_Based_Rendering
- */
- class PBRMaterial extends BABYLON.Material {
- /**
- * Intensity of the direct lights e.g. the four lights available in your scene.
- * This impacts both the direct diffuse and specular highlights.
- */
- directIntensity: number;
- /**
- * Intensity of the emissive part of the material.
- * This helps controlling the emissive effect without modifying the emissive color.
- */
- emissiveIntensity: number;
- /**
- * Intensity of the environment e.g. how much the environment will light the object
- * either through harmonics for rough material or through the refelction for shiny ones.
- */
- environmentIntensity: number;
- /**
- * This is a special control allowing the reduction of the specular highlights coming from the
- * four lights of the scene. Those highlights may not be needed in full environment lighting.
- */
- specularIntensity: number;
- private _lightingInfos;
- /**
- * Debug Control allowing disabling the bump map on this material.
- */
- disableBumpMap: boolean;
- /**
- * Debug Control helping enforcing or dropping the darkness of shadows.
- * 1.0 means the shadows have their normal darkness, 0.0 means the shadows are not visible.
- */
- overloadedShadowIntensity: number;
- /**
- * Debug Control helping dropping the shading effect coming from the diffuse lighting.
- * 1.0 means the shade have their normal impact, 0.0 means no shading at all.
- */
- overloadedShadeIntensity: number;
- private _overloadedShadowInfos;
- /**
- * The camera exposure used on this material.
- * This property is here and not in the camera to allow controlling exposure without full screen post process.
- * This corresponds to a photographic exposure.
- */
- cameraExposure: number;
- /**
- * The camera contrast used on this material.
- * This property is here and not in the camera to allow controlling contrast without full screen post process.
- */
- cameraContrast: number;
- private _cameraInfos;
- private _microsurfaceTextureLods;
- /**
- * Debug Control allowing to overload the ambient color.
- * This as to be use with the overloadedAmbientIntensity parameter.
- */
- overloadedAmbient: Color3;
- /**
- * Debug Control indicating how much the overloaded ambient color is used against the default one.
- */
- overloadedAmbientIntensity: number;
- /**
- * Debug Control allowing to overload the albedo color.
- * This as to be use with the overloadedAlbedoIntensity parameter.
- */
- overloadedAlbedo: Color3;
- /**
- * Debug Control indicating how much the overloaded albedo color is used against the default one.
- */
- overloadedAlbedoIntensity: number;
- /**
- * Debug Control allowing to overload the reflectivity color.
- * This as to be use with the overloadedReflectivityIntensity parameter.
- */
- overloadedReflectivity: Color3;
- /**
- * Debug Control indicating how much the overloaded reflectivity color is used against the default one.
- */
- overloadedReflectivityIntensity: number;
- /**
- * Debug Control allowing to overload the emissive color.
- * This as to be use with the overloadedEmissiveIntensity parameter.
- */
- overloadedEmissive: Color3;
- /**
- * Debug Control indicating how much the overloaded emissive color is used against the default one.
- */
- overloadedEmissiveIntensity: number;
- private _overloadedIntensity;
- /**
- * Debug Control allowing to overload the reflection color.
- * This as to be use with the overloadedReflectionIntensity parameter.
- */
- overloadedReflection: Color3;
- /**
- * Debug Control indicating how much the overloaded reflection color is used against the default one.
- */
- overloadedReflectionIntensity: number;
- /**
- * Debug Control allowing to overload the microsurface.
- * This as to be use with the overloadedMicroSurfaceIntensity parameter.
- */
- overloadedMicroSurface: number;
- /**
- * Debug Control indicating how much the overloaded microsurface is used against the default one.
- */
- overloadedMicroSurfaceIntensity: number;
- private _overloadedMicroSurface;
- /**
- * AKA Diffuse Texture in standard nomenclature.
- */
- albedoTexture: BaseTexture;
- /**
- * AKA Occlusion Texture in other nomenclature.
- */
- ambientTexture: BaseTexture;
- opacityTexture: BaseTexture;
- reflectionTexture: BaseTexture;
- emissiveTexture: BaseTexture;
- /**
- * AKA Specular texture in other nomenclature.
- */
- reflectivityTexture: BaseTexture;
- bumpTexture: BaseTexture;
- lightmapTexture: BaseTexture;
- refractionTexture: BaseTexture;
- ambientColor: Color3;
- /**
- * AKA Diffuse Color in other nomenclature.
- */
- albedoColor: Color3;
- /**
- * AKA Specular Color in other nomenclature.
- */
- reflectivityColor: Color3;
- reflectionColor: Color3;
- emissiveColor: Color3;
- /**
- * AKA Glossiness in other nomenclature.
- */
- microSurface: number;
- /**
- * source material index of refraction (IOR)' / 'destination material IOR.
- */
- indexOfRefraction: number;
- /**
- * Controls if refraction needs to be inverted on Y. This could be usefull for procedural texture.
- */
- invertRefractionY: boolean;
- opacityFresnelParameters: FresnelParameters;
- emissiveFresnelParameters: FresnelParameters;
- /**
- * This parameters will make the material used its opacity to control how much it is refracting aginst not.
- * Materials half opaque for instance using refraction could benefit from this control.
- */
- linkRefractionWithTransparency: boolean;
- /**
- * The emissive and albedo are linked to never be more than one (Energy conservation).
- */
- linkEmissiveWithAlbedo: boolean;
- useLightmapAsShadowmap: boolean;
- /**
- * In this mode, the emissive informtaion will always be added to the lighting once.
- * A light for instance can be thought as emissive.
- */
- useEmissiveAsIllumination: boolean;
- /**
- * Secifies that the alpha is coming form the albedo channel alpha channel.
- */
- useAlphaFromAlbedoTexture: boolean;
- /**
- * Specifies that the material will keeps the specular highlights over a transparent surface (only the most limunous ones).
- * A car glass is a good exemple of that. When sun reflects on it you can not see what is behind.
- */
- useSpecularOverAlpha: boolean;
- /**
- * Specifies if the reflectivity texture contains the glossiness information in its alpha channel.
- */
- useMicroSurfaceFromReflectivityMapAlpha: boolean;
- /**
- * In case the reflectivity map does not contain the microsurface information in its alpha channel,
- * The material will try to infer what glossiness each pixel should be.
- */
- useAutoMicroSurfaceFromReflectivityMap: boolean;
- /**
- * Allows to work with scalar in linear mode. This is definitely a matter of preferences and tools used during
- * the creation of the material.
- */
- useScalarInLinearSpace: boolean;
- /**
- * BJS is using an harcoded light falloff based on a manually sets up range.
- * In PBR, one way to represents the fallof is to use the inverse squared root algorythm.
- * This parameter can help you switch back to the BJS mode in order to create scenes using both materials.
- */
- usePhysicalLightFalloff: boolean;
- /**
- * Specifies that the material will keeps the reflection highlights over a transparent surface (only the most limunous ones).
- * A car glass is a good exemple of that. When the street lights reflects on it you can not see what is behind.
- */
- useRadianceOverAlpha: boolean;
- /**
- * Allows using the bump map in parallax mode.
- */
- useParallax: boolean;
- /**
- * Allows using the bump map in parallax occlusion mode.
- */
- useParallaxOcclusion: boolean;
- /**
- * Controls the scale bias of the parallax mode.
- */
- parallaxScaleBias: number;
- disableLighting: boolean;
- private _renderTargets;
- private _worldViewProjectionMatrix;
- private _globalAmbientColor;
- private _tempColor;
- private _renderId;
- private _defines;
- private _cachedDefines;
- private _useLogarithmicDepth;
- /**
- * Instantiates a new PBRMaterial instance.
- *
- * @param name The material name
- * @param scene The scene the material will be use in.
- */
- constructor(name: string, scene: Scene);
- useLogarithmicDepth: boolean;
- needAlphaBlending(): boolean;
- needAlphaTesting(): boolean;
- private _shouldUseAlphaFromAlbedoTexture();
- getAlphaTestTexture(): BaseTexture;
- private _checkCache(scene, mesh?, useInstances?);
- private convertColorToLinearSpaceToRef(color, ref);
- private static convertColorToLinearSpaceToRef(color, ref, useScalarInLinear);
- private static _scaledAlbedo;
- private static _scaledReflectivity;
- private static _scaledEmissive;
- private static _scaledReflection;
- private static _lightRadiuses;
- static BindLights(scene: Scene, mesh: AbstractMesh, effect: Effect, defines: MaterialDefines, useScalarInLinearSpace: boolean): void;
- isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean;
- unbind(): void;
- bindOnlyWorldMatrix(world: Matrix): void;
- private _myScene;
- private _myShadowGenerator;
- bind(world: Matrix, mesh?: Mesh): void;
- getAnimatables(): IAnimatable[];
- dispose(forceDisposeEffect?: boolean): void;
- clone(name: string): PBRMaterial;
- serialize(): any;
- static Parse(source: any, scene: Scene, rootUrl: string): PBRMaterial;
- }
- }
|