UNPKG

@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
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; }; }