File: MeshPhysicalMaterial.md | Updated: 11/15/2025
An extension of the MeshStandardMaterial, providing more advanced physically-based rendering properties:
As a result of these complex shading features, MeshPhysicalMaterial has a higher performance cost, per pixel, than other three.js materials. Most effects are disabled by default, and add cost as they are enabled. For best results, always specify an environment map when using this material.
Constructs a new mesh physical material.
parameters | An object with one or more properties defining the material's appearance. Any property of the material (including any property from inherited materials) can be passed in here. Color values can be passed any type of value accepted by Color#set.
---|---
The anisotropy strength, from 0.0 to 1.0.
Default is 0.
Red and green channels represent the anisotropy direction in [-1, 1] tangent, bitangent space, to be rotated by anisotropyRotation. The blue channel contains strength as [0, 1] to be multiplied by anisotropy.
Default is null.
The rotation of the anisotropy in tangent, bitangent space, measured in radians counter-clockwise from the tangent. When anisotropyMap is present, this property provides additional rotation to the vectors in the texture.
Default is 1.
The color that white light turns into due to absorption when reaching the attenuation distance.
Default is (1,1,1).
Density of the medium given as the average distance that light travels in the medium before interacting with a particle. The value is given in world space units, and must be greater than zero.
Default is Infinity.
Represents the intensity of the clear coat layer, from 0.0 to 1.0. Use clear coat related properties to enable multilayer materials that have a thin translucent layer over the base layer.
Default is 0.
The red channel of this texture is multiplied against clearcoat, for per-pixel control over a coating's intensity.
Default is null.
Can be used to enable independent normals for the clear coat layer.
Default is null.
How much clearcoatNormalMap affects the clear coat layer, from (0,0) to (1,1).
Default is (1,1).
Roughness of the clear coat layer, from 0.0 to 1.0.
Default is 0.
The green channel of this texture is multiplied against clearcoatRoughness, for per-pixel control over a coating's roughness.
Default is null.
Defines the strength of the angular separation of colors (chromatic aberration) transmitting through a relatively clear volume. Any value zero or larger is valid, the typical range of realistic values is [0, 1]. This property can be only be used with transmissive objects.
Default is 0.
Index-of-refraction for non-metallic materials, from 1.0 to 2.333.
Default is 1.5.
The intensity of the iridescence layer, simulating RGB color shift based on the angle between the surface and the viewer, from 0.0 to 1.0.
Default is 0.
Strength of the iridescence RGB color shift effect, represented by an index-of-refraction. Between 1.0 to 2.333.
Default is 1.3.
The red channel of this texture is multiplied against iridescence, for per-pixel control over iridescence.
Default is null.
A texture that defines the thickness of the iridescence layer, stored in the green channel. Minimum and maximum values of thickness are defined by iridescenceThicknessRange array:
0.0 in the green channel will result in thickness equal to first element of the array.1.0 in the green channel will result in thickness equal to second element of the array.Default is null.
Array of exactly 2 elements, specifying minimum and maximum thickness of the iridescence layer. Thickness of iridescence layer has an equivalent effect of the one thickness has on ior.
Default is [100,400].
This flag can be used for type testing.
Default is true.
Degree of reflectivity, from 0.0 to 1.0. Default is 0.5, which corresponds to an index-of-refraction of 1.5.
This models the reflectivity of non-metallic materials. It has no effect when metalness is 1.0
Default is 0.5.
The intensity of the sheen layer, from 0.0 to 1.0.
Default is 0.
The sheen tint.
Default is (0,0,0).
The RGB channels of this texture are multiplied against sheenColor, for per-pixel control over sheen tint.
Default is null.
Roughness of the sheen layer, from 0.0 to 1.0.
Default is 1.
The alpha channel of this texture is multiplied against sheenRoughness, for per-pixel control over sheen roughness.
Default is null.
Tints the specular reflection at normal incidence for non-metals only.
Default is (1,1,1).
The RGB channels of this texture are multiplied against specularColor, for per-pixel control over specular color.
Default is null.
A float that scales the amount of specular reflection for non-metals only. When set to zero, the model is effectively Lambertian. From 0.0 to 1.0.
Default is 1.
The alpha channel of this texture is multiplied against specularIntensity, for per-pixel control over specular intensity.
Default is null.
The thickness of the volume beneath the surface. The value is given in the coordinate space of the mesh. If the value is 0 the material is thin-walled. Otherwise the material is a volume boundary.
Default is 0.
A texture that defines the thickness, stored in the green channel. This will be multiplied by thickness.
Default is null.
Degree of transmission (or optical transparency), from 0.0 to 1.0.
Thin, transparent or semitransparent, plastic or glass materials remain largely reflective even if they are fully transmissive. The transmission property can be used to model these materials.
When transmission is non-zero, opacity should be set to 1.
Default is 0.
The red channel of this texture is multiplied against transmission, for per-pixel control over optical transparency.
Default is null.