Hierarchy

  • PhysicalMaterial
    • GaussianSplatMaterialPhysical

Constructors

Properties

alphaMap: null | ITexture = null
null
appliedMeshes: Set<IObject3D> = ...

Managed internally, do not change manually

assetType: "material" = ...
bumpMap: null | ITexture = null
null
constructor: typeof PhysicalMaterial

The initial value of Object.prototype.constructor is the standard built-in Object constructor.

displacementMap: null | ITexture = null
null
extraUniformsToUpload: Record<string, IUniform> = {}
generator?: IMaterialGenerator

Managed internally, do not change manually

gsplatExtension: GaussianSplatMaterialExtension = ...
isGaussianSplatMaterialPhysical: true
isPhysicalMaterial: true
map: null | ITexture = null
null
materialExtensions: MaterialExtension[] = []
metalnessMap: null | ITexture = null
null
normalMap: null | ITexture = null
null
onAfterRender: (
    renderer: WebGLRenderer,
    scene: Scene,
    camera: Camera,
    geometry: BufferGeometry,
    object: Object3D,
) => void = ...
registerMaterialExtensions: (
    this: IMaterial,
    customMaterialExtensions: MaterialExtension[],
) => void = iMaterialCommons.registerMaterialExtensions
roughnessMap: null | ITexture = null
null
setDirty: (this: IMaterial, options?: IMaterialSetDirtyOptions) => void = iMaterialCommons.setDirty
uiConfig: UiObjectConfig = ...
unregisterMaterialExtensions: (
    this: IMaterial,
    customMaterialExtensions: MaterialExtension[],
) => void = iMaterialCommons.unregisterMaterialExtensions
userData: IMaterialUserData

An object that can be used to store custom data about the Material. It should not hold references to functions as these will not be cloned.

{}
MaterialProperties: {
    alphaHash: boolean;
    alphaMap: null;
    alphaTest: number;
    alphaToCoverage: boolean;
    aoMap: null;
    aoMapIntensity: number;
    attenuationColor: Color;
    attenuationDistance: number;
    blendDst: 205;
    blendDstAlpha: null;
    blendEquation: 100;
    blendEquationAlpha: null;
    blending: 1;
    blendSrc: 204;
    blendSrcAlpha: null;
    bumpMap: null;
    bumpScale: number;
    clearcoat: number;
    clearcoatMap: null;
    clearcoatNormalMap: null;
    clearcoatNormalScale: Vector2;
    clearcoatRoughness: number;
    clearcoatRoughnessMap: null;
    clipIntersection: boolean;
    clippingPlanes: null;
    clipShadows: boolean;
    color: Color;
    colorWrite: boolean;
    depthFunc: 3;
    depthTest: boolean;
    depthWrite: boolean;
    displacementBias: number;
    displacementMap: null;
    displacementScale: number;
    dithering: boolean;
    emissive: string;
    emissiveIntensity: number;
    emissiveMap: null;
    envMap: null;
    envMapIntensity: number;
    flatShading: boolean;
    fog: boolean;
    forceSinglePass: boolean;
    iridescence: number;
    iridescenceIOR: number;
    iridescenceMap: null;
    iridescenceThicknessMap: null;
    iridescenceThicknessRange: number[];
    lightMap: null;
    lightMapIntensity: number;
    map: null;
    metalness: number;
    metalnessMap: null;
    name: string;
    normalMap: null;
    normalMapType: 0;
    normalScale: Vector2;
    opacity: number;
    polygonOffset: boolean;
    polygonOffsetFactor: number;
    polygonOffsetUnits: number;
    precision: null;
    premultipliedAlpha: boolean;
    reflectivity: number;
    roughness: number;
    roughnessMap: null;
    shadowSide: null;
    sheen: number;
    sheenColor: Color;
    sheenColorMap: null;
    sheenRoughness: number;
    sheenRoughnessMap: null;
    side: 0;
    specularColor: Color;
    specularColorMap: null;
    specularIntensity: number;
    specularIntensityMap: null;
    stencilFail: 7680;
    stencilFunc: 519;
    stencilFuncMask: number;
    stencilRef: number;
    stencilWrite: boolean;
    stencilWriteMask: number;
    stencilZFail: 7680;
    stencilZPass: 7680;
    thickness: number;
    thicknessMap: null;
    toneMapped: boolean;
    transmission: number;
    transmissionMap: null;
    transparent: boolean;
    userData: {};
    vertexColors: boolean;
    visible: boolean;
    wireframe: boolean;
    wireframeLinecap: string;
    wireframeLinejoin: string;
    wireframeLinewidth: number;
} = ...
MaterialTemplate: IMaterialTemplate<
    PhysicalMaterial,
    Partial<
        {
            alphaHash: boolean;
            alphaMap: null;
            alphaTest: number;
            alphaToCoverage: boolean;
            aoMap: null;
            aoMapIntensity: number;
            attenuationColor: Color;
            attenuationDistance: number;
            blendDst: 205;
            blendDstAlpha: null;
            blendEquation: 100;
            blendEquationAlpha: null;
            blending: 1;
            blendSrc: 204;
            blendSrcAlpha: null;
            bumpMap: null;
            bumpScale: number;
            clearcoat: number;
            clearcoatMap: null;
            clearcoatNormalMap: null;
            clearcoatNormalScale: Vector2;
            clearcoatRoughness: number;
            clearcoatRoughnessMap: null;
            clipIntersection: boolean;
            clippingPlanes: null;
            clipShadows: boolean;
            color: Color;
            colorWrite: boolean;
            depthFunc: 3;
            depthTest: boolean;
            depthWrite: boolean;
            displacementBias: number;
            displacementMap: null;
            displacementScale: number;
            dithering: boolean;
            emissive: string;
            emissiveIntensity: number;
            emissiveMap: null;
            envMap: null;
            envMapIntensity: number;
            flatShading: boolean;
            fog: boolean;
            forceSinglePass: boolean;
            iridescence: number;
            iridescenceIOR: number;
            iridescenceMap: null;
            iridescenceThicknessMap: null;
            iridescenceThicknessRange: number[];
            lightMap: null;
            lightMapIntensity: number;
            map: null;
            metalness: number;
            metalnessMap: null;
            name: string;
            normalMap: null;
            normalMapType: 0;
            normalScale: Vector2;
            opacity: number;
            polygonOffset: boolean;
            polygonOffsetFactor: number;
            polygonOffsetUnits: number;
            precision: null;
            premultipliedAlpha: boolean;
            reflectivity: number;
            roughness: number;
            roughnessMap: null;
            shadowSide: null;
            sheen: number;
            sheenColor: Color;
            sheenColorMap: null;
            sheenRoughness: number;
            sheenRoughnessMap: null;
            side: 0;
            specularColor: Color;
            specularColorMap: null;
            specularIntensity: number;
            specularIntensityMap: null;
            stencilFail: 7680;
            stencilFunc: 519;
            stencilFuncMask: number;
            stencilRef: number;
            stencilWrite: boolean;
            stencilWriteMask: number;
            stencilZFail: 7680;
            stencilZPass: 7680;
            thickness: number;
            thicknessMap: null;
            toneMapped: boolean;
            transmission: number;
            transmissionMap: null;
            transparent: boolean;
            userData: {};
            vertexColors: boolean;
            visible: boolean;
            wireframe: boolean;
            wireframeLinecap: string;
            wireframeLinejoin: string;
            wireframeLinewidth: number;
        },
    >,
> = ...
TYPE: "PhysicalMaterial" = 'PhysicalMaterial'
TypeSlug: "pmat" = 'pmat'

Methods

  • Copy the parameters from the passed material into this material.

    Parameters

    • source: any

    Returns this

  • In case onBeforeCompile is used, this callback can be used to identify values of settings used in onBeforeCompile, so three.js can reuse a cached shader or recompile the shader as needed.

    Returns string

  • Fire an event type.

    Type Parameters

    • T extends keyof IMaterialEventMap

    Parameters

    • event: BaseEvent<T> & IMaterialEventMap[T]

      The event that gets fired.

    Returns void

  • Deserializes the material from JSON. Note: some properties that are not serialized in Material.toJSON when they are default values (like side, alphaTest, blending, maps), they wont be reverted back if not present in JSON If _internal = true, Textures should be loaded and in meta.textures before calling this method.

    Parameters

    • data: any
    • Optionalmeta: SerializationMetaType
    • _internal: boolean = false

    Returns null | GaussianSplatMaterialPhysical

  • An optional callback that is executed immediately before the shader program is compiled. This function is called with the shader source code as a parameter. Useful for the modification of built-in materials.

    Parameters

    • shader: Shader & { defines: any }

      Source code of the shader

    • renderer: WebGLRenderer

      WebGLRenderer Context that is initializing the material

    Returns void

  • Sets the values of this material based on the values of the passed material or an object with material properties The input is expected to be a valid material or a deserialized material parameters object(including the deserialized userdata)

    Parameters

    • parameters: Material | MeshPhysicalMaterialParameters & { type?: string }

      material or material parameters object

    • allowInvalidType: boolean = true

      if true, the type of the oldMaterial is not checked. Objects without type are always allowed.

    • clearCurrentUserData: undefined | boolean = undefined

      if undefined, then depends on material.isMaterial. if true, the current userdata is cleared before setting the new values, because it can have data which wont be overwritten if not present in the new material.

    Returns this

  • Serializes this material to JSON.

    Parameters

    • Optionalmeta: SerializationMetaType

      metadata for serialization

    • _internal: boolean = false

      Calls only super.toJSON, does internal three.js serialization and @serialize tags. Set it to true only if you know what you are doing. This is used in Serialization->serializer->material

    Returns any