@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
87 lines (86 loc) • 3.46 kB
TypeScript
import type { Nullable } from "../types.js";
import type { BaseTexture } from "./Textures/baseTexture.js";
import type { UniformBuffer } from "./uniformBuffer.js";
import type { IAnimatable } from "../Animations/animatable.interface.js";
import { MaterialDefines } from "./materialDefines.js";
import { MaterialPluginBase } from "./materialPluginBase.js";
import type { Scene } from "../scene.js";
import type { StandardMaterial } from "./standardMaterial.js";
import type { PBRBaseMaterial } from "./PBR/pbrBaseMaterial.js";
import type { AbstractEngine } from "../Engines/abstractEngine.js";
/**
* @internal
*/
export declare class MaterialDetailMapDefines extends MaterialDefines {
DETAIL: boolean;
DETAILDIRECTUV: number;
DETAIL_NORMALBLENDMETHOD: number;
}
/**
* Plugin that implements the detail map component of a material
*
* Inspired from:
* Unity: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@9.0/manual/Mask-Map-and-Detail-Map.html and https://docs.unity3d.com/Manual/StandardShaderMaterialParameterDetail.html
* Unreal: https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/HowTo/DetailTexturing/index.html
* Cryengine: https://docs.cryengine.com/display/SDKDOC2/Detail+Maps
*/
export declare class DetailMapConfiguration extends MaterialPluginBase {
private _texture;
/**
* The detail texture of the material.
*/
texture: Nullable<BaseTexture>;
/**
* Defines how strongly the detail diffuse/albedo channel is blended with the regular diffuse/albedo texture
* Bigger values mean stronger blending
*/
diffuseBlendLevel: number;
/**
* Defines how strongly the detail roughness channel is blended with the regular roughness value
* Bigger values mean stronger blending. Only used with PBR materials
*/
roughnessBlendLevel: number;
/**
* Defines how strong the bump effect from the detail map is
* Bigger values mean stronger effect
*/
bumpLevel: number;
private _normalBlendMethod;
/**
* The method used to blend the bump and detail normals together
*/
normalBlendMethod: number;
private _isEnabled;
/**
* Enable or disable the detail map on this material
*/
isEnabled: boolean;
/** @internal */
private _internalMarkAllSubMeshesAsTexturesDirty;
/** @internal */
_markAllSubMeshesAsTexturesDirty(): void;
/**
* Gets a boolean indicating that the plugin is compatible with a given shader language.
* @returns true if the plugin is compatible with the shader language
*/
isCompatible(): boolean;
constructor(material: PBRBaseMaterial | StandardMaterial, addToPluginList?: boolean);
isReadyForSubMesh(defines: MaterialDetailMapDefines, scene: Scene, engine: AbstractEngine): boolean;
prepareDefines(defines: MaterialDetailMapDefines, scene: Scene): void;
bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): void;
hasTexture(texture: BaseTexture): boolean;
getActiveTextures(activeTextures: BaseTexture[]): void;
getAnimatables(animatables: IAnimatable[]): void;
dispose(forceDisposeTextures?: boolean): void;
getClassName(): string;
getSamplers(samplers: string[]): void;
getUniforms(): {
ubo?: Array<{
name: string;
size: number;
type: string;
}>;
vertex?: string;
fragment?: string;
};
}