MeshStandardMaterial - Verge3D User Manual - Soft8Soft
Description: Learn how to use MeshStandardMaterial in your interactive 3D apps made with Verge3D

Material →

# MeshStandardMaterial

A standard physically based material, using Metallic-Roughness workflow.

Physically based rendering (PBR) has recently become the standard in many 3D applications. This approach differs from older approaches in that instead of using approximations for the way in which light interacts with a surface, a physically correct model is used. The idea is that, instead of tweaking materials to look good under specific lighting, a material can be created that will react 'correctly' under all lighting scenarios.

For best results you should always specify an environment map when using this material.

## Constructor

### MeshStandardMaterial(parameters : Object)

parameters — (optional) an object with one or more properties defining the material's appearance. Any property of the material (including any property inherited from Material) can be passed in here.

The exception is the property color, which can be passed in as a hexadecimal string and is `0xffffff` (white) by default. Color.set(color) is called internally.

Instead of creating standard materials with JavaScript, it can be more efficient to simply make such materials in Blender, 3ds Max, or Maya.

## Properties

See the base Material class for inherited properties.

### # .aoMap : Texture

The red channel of this texture is used as the ambient occlusion map. Default is `null`. The aoMap requires a second set of UVs.

### # .aoMapIntensity : Float

Intensity of the ambient occlusion effect. Default is `1`. Zero is no occlusion effect.

### # .bumpMap : Texture

The texture to create a bump map. The black and white values map to the perceived depth in relation to the lights. Bump doesn't actually affect the geometry of the object, only the lighting. If a normal map is defined this will be ignored.

### # .bumpScale : Float

How much the bump map affects the material. Typical ranges are 0-1. Default is `1`.

### # .color : Color

Color of the material, by default set to white (`0xffffff`).

### # .defines : Object

An object of the form:

`{ 'STANDARD': '' };`

This is used by the WebGLRenderer for selecting shaders.

### # .emissive : Color

Emissive (light) color of the material, essentially a solid color unaffected by other lighting. Default is black.

### # .emissiveMap : Texture

Set emissive (glow) map. Default is `null`. The emissive map color is modulated by the emissive color and the emissive intensity. If you have an emissive map, be sure to set the emissive color to something other than black.

### # .emissiveIntensity : Float

Intensity of the emissive light. Modulates the emissive color. Default is `1`.

### # .envMap : Texture

The environment map. To ensure a physically correct rendering, you should only add environment maps which were preprocessed by PMREMGenerator. Assigned automatically from a corresponding CubeReflectionProbe object if Material.envMapAutoAssign is `true`. Default is `null`.

### # .envMapIntensity : Float

Scales the effect of the environment map by multiplying its color.

### # .envMapParallaxMatrix : Matrix4

A Matrix4 used for applying the parallax effect to the material's .envMap. This matrix carries the transformation from the world space to the space of a particular reflection probe, which environment map this material uses for rendering. Calculated automatically if Material.envMapAutoAssign is `true`. Default is the identity matrix.

### # .envMapParallaxMatrixInv : Matrix4

A Matrix4 inverse to .envMapParallaxMatrix. Used for applying the parallax effect to the material's .envMap. Calculated automatically if Material.envMapAutoAssign is `true`. Default is the identity matrix.

### # .envMapParallaxType : Constant

Defines the type of the parallax volume. The same as CubeReflectionProbe.parallaxType. Assigned automatically from the corresponding CubeReflectionProbe if Material.envMapAutoAssign is `true`. Default is ReflectionProbeTypeInfinite.

### # .flatShading : Boolean

Define whether the material is rendered with flat shading. Default is `false`.

### # .fog : Boolean

Whether the material is affected by fog. Default is `true`.

### # .isMeshStandardMaterial : Boolean

Read-only flag to check if a given object is of type MeshStandardMaterial.

### # .map : Texture

The color map. May optionally include an alpha channel, typically combined with .transparent or .alphaTest. Default is `null`. The texture map color is modulated by the diffuse .color.

### # .metalness : Float

How much the material is like a metal. Non-metallic materials such as wood or stone use 0.0, metallic use 1.0, with nothing (usually) in between. Default is `0.0`. A value between `0.0` and `1.0` could be used for a rusty metal look. If metalnessMap is also provided, both values are multiplied.

### # .metalnessMap : Texture

The blue channel of this texture is used to alter the metalness of the material.

### # .normalMap : Texture

The texture to create a normal map. The RGB values affect the surface normal for each pixel fragment and change the way the color is lit. Normal maps do not change the actual shape of the surface, only the lighting. In case the material has a normal map authored using the left handed convention, the y component of .normalScale should be negated to compensate for the different handedness.

### # .normalScale : Vector2

How much the normal map affects the material. Typical ranges are 0-1. Default is a Vector2 set to `(1, 1)`.

### # .roughness : Float

How rough the material appears. `0.0` means a smooth mirror reflection, `1.0` means fully diffuse. Default is `1.0`. If roughnessMap is also provided, both values are multiplied.

### # .roughnessMap : Texture

The green channel of this texture is used to alter the roughness of the material.

### # .wireframe : Boolean

Render geometry as wireframe. Default is `false` (i.e. render as flat polygons).

### # .wireframeLinewidth : Float

Controls wireframe thickness. Default is `1`.

Due to limitations of WebGL on most platforms wireframeLinewidth will always be 1 regardless of the set value.

## Methods

See the base Material class for inherited methods.

## Source

For more info on how to obtain the source code of this module see this page.