MotionScript

@motion-script/core


@motion-script/core / PhysicalMaterial3D

Interface: PhysicalMaterial3D

Defined in: render3d/material.ts:120

Everything StandardMaterial3D has plus the expensive extras: clearcoat, transmission (real refraction), sheen and iridescence. Costs more per pixel, so reach for standard unless a surface needs these.

Extends

Properties

alphaMap?

optional alphaMap?: Texture3D

Defined in: render3d/material.ts:62

Per-pixel opacity, read from the red channel.

Inherited from

BasicMaterial3D.alphaMap


alphaTest?

optional alphaTest?: number

Defined in: render3d/material.ts:30

Structural. Discard fragments below this alpha. Cheap cutout transparency.

Inherited from

MaterialCommon3D.alphaTest


anisotropy?

optional anisotropy?: number

Defined in: render3d/material.ts:151

Anisotropic (brushed-metal) highlight stretching.


anisotropyRotation?

optional anisotropyRotation?: number

Defined in: render3d/material.ts:153

Degrees.


aoMap?

optional aoMap?: Texture3D

Defined in: render3d/material.ts:64

Ambient occlusion, read from the red channel. Needs a second UV set.

Inherited from

BasicMaterial3D.aoMap


aoMapIntensity?

optional aoMapIntensity?: number

Defined in: render3d/material.ts:65

Inherited from

BasicMaterial3D.aoMapIntensity


attenuationColor?

optional attenuationColor?: Color

Defined in: render3d/material.ts:135

Volumetric absorption colour at attenuationDistance.


attenuationDistance?

optional attenuationDistance?: number

Defined in: render3d/material.ts:136


blending?

optional blending?: Blending3D

Defined in: render3d/material.ts:36

Structural. How the colour combines with the framebuffer.

Inherited from

MaterialCommon3D.blending


clearcoat?

optional clearcoat?: number

Defined in: render3d/material.ts:123

A second specular lobe over the base — car paint, lacquer, varnish.


clearcoatMap?

optional clearcoatMap?: Texture3D

Defined in: render3d/material.ts:125


clearcoatNormalMap?

optional clearcoatNormalMap?: Texture3D

Defined in: render3d/material.ts:126


clearcoatRoughness?

optional clearcoatRoughness?: number

Defined in: render3d/material.ts:124


clearcoatRoughnessMap?

optional clearcoatRoughnessMap?: Texture3D

Defined in: render3d/material.ts:127


color?

optional color?: Color

Defined in: render3d/material.ts:104

Inherited from

StandardMaterial3D.color


depthTest?

optional depthTest?: boolean

Defined in: render3d/material.ts:45

Test against the depth buffer. Turn off to force draw-on-top.

Inherited from

MaterialCommon3D.depthTest


depthWrite?

optional depthWrite?: boolean

Defined in: render3d/material.ts:43

Write to the depth buffer. Turn off for additive glows and inside-out shells.

Inherited from

MaterialCommon3D.depthWrite


displacementBias?

optional displacementBias?: number

Defined in: render3d/material.ts:73

Inherited from

BasicMaterial3D.displacementBias


displacementMap?

optional displacementMap?: Texture3D

Defined in: render3d/material.ts:71

Displaces vertices along their normals. Needs a subdivided geometry.

Inherited from

BasicMaterial3D.displacementMap


displacementScale?

optional displacementScale?: number

Defined in: render3d/material.ts:72

Inherited from

BasicMaterial3D.displacementScale


dithering?

optional dithering?: boolean

Defined in: render3d/material.ts:51

Smooth gradient banding.

Inherited from

MaterialCommon3D.dithering


emissive?

optional emissive?: Color

Defined in: render3d/material.ts:86

Self-illumination colour. Does not light other objects (see post bloom).

Inherited from

StandardMaterial3D.emissive


emissiveIntensity?

optional emissiveIntensity?: number

Defined in: render3d/material.ts:87

Inherited from

StandardMaterial3D.emissiveIntensity


emissiveMap?

optional emissiveMap?: Texture3D

Defined in: render3d/material.ts:88

Inherited from

StandardMaterial3D.emissiveMap


envMap?

optional envMap?: Texture3D

Defined in: render3d/material.ts:75

Reflected environment. Usually inherited from the scene's environment.

Inherited from

BasicMaterial3D.envMap


envMapIntensity?

optional envMapIntensity?: number

Defined in: render3d/material.ts:77

Multiplies light received from the environment.

Inherited from

BasicMaterial3D.envMapIntensity


flatShading?

optional flatShading?: boolean

Defined in: render3d/material.ts:112

Structural. Facet shading — one normal per triangle.

Inherited from

StandardMaterial3D.flatShading


ior?

optional ior?: number

Defined in: render3d/material.ts:138

Index of refraction. 1.5 glass, 1.33 water, 2.42 diamond.


iridescence?

optional iridescence?: number

Defined in: render3d/material.ts:144

Thin-film interference — soap bubbles, oil slicks, beetle shells.


iridescenceIOR?

optional iridescenceIOR?: number

Defined in: render3d/material.ts:145


iridescenceThicknessRange?

optional iridescenceThicknessRange?: readonly [number, number]

Defined in: render3d/material.ts:146


key?

optional key?: string

Defined in: render3d/material.ts:54

Explicit reconciler identity — see Transform3D.key.

Inherited from

MaterialCommon3D.key


lightMap?

optional lightMap?: Texture3D

Defined in: render3d/material.ts:79

Baked light added on top, unaffected by scene lights.

Inherited from

BasicMaterial3D.lightMap


lightMapIntensity?

optional lightMapIntensity?: number

Defined in: render3d/material.ts:80

Inherited from

BasicMaterial3D.lightMapIntensity


map?

optional map?: Texture3D

Defined in: render3d/material.ts:60

Base colour (albedo). Sampled as sRGB.

Inherited from

BasicMaterial3D.map


metalness?

optional metalness?: number

Defined in: render3d/material.ts:108

0 dielectric → 1 metal. Metals tint their reflections by color.

Inherited from

StandardMaterial3D.metalness


metalnessMap?

optional metalnessMap?: Texture3D

Defined in: render3d/material.ts:110

Inherited from

StandardMaterial3D.metalnessMap


normalMap?

optional normalMap?: Texture3D

Defined in: render3d/material.ts:67

Tangent-space normals. Sampled as linear data, not colour.

Inherited from

BasicMaterial3D.normalMap


normalScale?

optional normalScale?: number | Vector2

Defined in: render3d/material.ts:69

Normal strength, per axis. A number applies to both.

Inherited from

BasicMaterial3D.normalScale


opacity?

optional opacity?: number

Defined in: render3d/material.ts:19

0–1. Needs transparent to actually show through. Free to animate.

Inherited from

MaterialCommon3D.opacity


params?

optional params?: Record<string, unknown>

Defined in: render3d/geometry.ts:14

Inherited from

Passthrough3D.params


polygonOffset?

optional polygonOffset?: boolean

Defined in: render3d/material.ts:47

Nudge depth to break z-fighting between coplanar surfaces.

Inherited from

MaterialCommon3D.polygonOffset


polygonOffsetFactor?

optional polygonOffsetFactor?: number

Defined in: render3d/material.ts:48

Inherited from

MaterialCommon3D.polygonOffsetFactor


polygonOffsetUnits?

optional polygonOffsetUnits?: number

Defined in: render3d/material.ts:49

Inherited from

MaterialCommon3D.polygonOffsetUnits


roughness?

optional roughness?: number

Defined in: render3d/material.ts:106

0 mirror-smooth → 1 fully diffuse.

Inherited from

StandardMaterial3D.roughness


roughnessMap?

optional roughnessMap?: Texture3D

Defined in: render3d/material.ts:109

Inherited from

StandardMaterial3D.roughnessMap


sheen?

optional sheen?: number

Defined in: render3d/material.ts:140

Retroreflective sheen — cloth, velvet, dust.


sheenColor?

optional sheenColor?: Color

Defined in: render3d/material.ts:141


sheenRoughness?

optional sheenRoughness?: number

Defined in: render3d/material.ts:142


side?

optional side?: Side3D

Defined in: render3d/material.ts:32

Structural. Which faces to rasterize. Default "front".

Inherited from

MaterialCommon3D.side


specularColor?

optional specularColor?: Color

Defined in: render3d/material.ts:149


specularIntensity?

optional specularIntensity?: number

Defined in: render3d/material.ts:148

Strength/tint of the dielectric specular highlight.


thickness?

optional thickness?: number

Defined in: render3d/material.ts:132

Wall thickness for transmission tinting.


thicknessMap?

optional thicknessMap?: Texture3D

Defined in: render3d/material.ts:133


toneMapped?

optional toneMapped?: boolean

Defined in: render3d/material.ts:40

Structural. Apply the scene's tone mapping. Default true.

Inherited from

MaterialCommon3D.toneMapped


transmission?

optional transmission?: number

Defined in: render3d/material.ts:129

Light transmitted through the surface — glass, water. Needs transparent.


transmissionMap?

optional transmissionMap?: Texture3D

Defined in: render3d/material.ts:130


transparent?

optional transparent?: boolean

Defined in: render3d/material.ts:28

Structural. Opt into alpha blending. Off by default because blended surfaces must be depth-sorted, which costs correctness at intersections — prefer alphaTest for cutouts like foliage.

Inherited from

MaterialCommon3D.transparent


type

type: "physical"

Defined in: render3d/material.ts:121


vertexColors?

optional vertexColors?: boolean

Defined in: render3d/material.ts:38

Structural. Read per-vertex colours from the geometry's color buffer.

Inherited from

MaterialCommon3D.vertexColors


visible?

optional visible?: boolean

Defined in: render3d/material.ts:21

Hide without removing. Free to animate.

Inherited from

MaterialCommon3D.visible


wireframe?

optional wireframe?: boolean

Defined in: render3d/material.ts:34

Structural. Draw edges only.

Inherited from

MaterialCommon3D.wireframe