MeshStandardMaterial class
A standard physically based material, using Metallic-Roughness workflow.
Physically based rendering (PBR) has recently become the standard in many 3D applications, such as Unity, Unreal and 3D Studio Max.
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.
In practice this gives a more accurate and realistic looking result than the MeshLambertMaterial or MeshPhongMaterial, at the cost of being somewhat more computationally expensive. MeshStandardMaterial uses per-fragment shading.
Note that for best results you should always specify an environment map
when using this material.
For a non-technical introduction to the concept of PBR and how to set up a PBR material, check out these articles by the people at marmoset:
Technical details of the approach used in three.js (and most other PBR systems) can be found is this paper from Disney (pdf), by Brent Burley.
- Inheritance
- Implementers
Constructors
-
MeshStandardMaterial([Map<
MaterialProperty, dynamic> ? parameters]) -
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 and MeshStandardMaterial) can be passed in here. -
MeshStandardMaterial.fromMap([Map<
String, dynamic> ? parameters])
Properties
- alphaMap ↔ Texture?
-
getter/setter pairinherited
- alphaTest ↔ double
-
getter/setter pairinherited
- alphaToCoverage ↔ bool
-
getter/setter pairinherited
- aoMap ↔ Texture?
-
getter/setter pairinherited
- aoMapIntensity ↔ double?
-
getter/setter pairinherited
- attenuationColor ↔ Color?
-
getter/setter pairinherited
- attenuationDistance ↔ double?
-
getter/setter pairinherited
- blendDst ↔ int
-
getter/setter pairinherited
- blendDstAlpha ↔ int?
-
getter/setter pairinherited
- blendEquation ↔ int
-
getter/setter pairinherited
- blendEquationAlpha ↔ int?
-
getter/setter pairinherited
- blending ↔ int
-
getter/setter pairinherited
- blendSrc ↔ int
-
getter/setter pairinherited
- blendSrcAlpha ↔ int?
-
getter/setter pairinherited
- bumpMap ↔ Texture?
-
getter/setter pairinherited
- bumpScale ↔ double?
-
getter/setter pairinherited
- clearcoat ↔ double
-
getter/setter pairinherited
- clearcoatMap ↔ Texture?
-
getter/setter pairinherited
- clearcoatNormalMap ↔ Texture?
-
getter/setter pairinherited
- clearcoatNormalScale ↔ Vector2?
-
getter/setter pairinherited
- clearcoatRoughness ↔ double?
-
getter/setter pairinherited
- clearcoatRoughnessMap ↔ Texture?
-
getter/setter pairinherited
- clipIntersection ↔ bool
-
getter/setter pairinherited
- clipping ↔ bool?
-
getter/setter pairinherited
-
clippingPlanes
↔ List<
Plane> ? -
getter/setter pairinherited
- clipShadows ↔ bool
-
getter/setter pairinherited
- color ↔ Color
-
getter/setter pairinherited
- colorWrite ↔ bool
-
getter/setter pairinherited
- combine ↔ int?
-
getter/setter pairinherited
- customProgramCacheKey ↔ Function
-
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 for this material as needed.
getter/setter pairinherited
- dashSize ↔ double?
-
getter/setter pairinherited
-
defaultAttributeValues
↔ Map<
String, dynamic> ? -
getter/setter pairinherited
-
defines
↔ Map<
String, dynamic> ? -
getter/setter pairinherited
- depthFunc ↔ int
-
getter/setter pairinherited
- depthPacking ↔ int?
-
getter/setter pairinherited
- depthTest ↔ bool
-
getter/setter pairinherited
- depthWrite ↔ bool
-
getter/setter pairinherited
- displacementBias ↔ double?
-
getter/setter pairinherited
- displacementMap ↔ Texture?
-
getter/setter pairinherited
- displacementScale ↔ double?
-
getter/setter pairinherited
- dithering ↔ bool
-
getter/setter pairinherited
- emissive ↔ Color?
-
getter/setter pairinherited
- emissiveIntensity ↔ double
-
getter/setter pairinherited
- emissiveMap ↔ Texture?
-
getter/setter pairinherited
- envMap ↔ Texture?
-
getter/setter pairinherited
- envMapIntensity ↔ double?
-
getter/setter pairinherited
-
extensions
↔ Map<
String, dynamic> ? -
getter/setter pairinherited
-
extra
↔ Map<
String, dynamic> -
getter/setter pairinherited
- flatShading ↔ bool
-
getter/setter pairinherited
- fog ↔ bool
-
getter/setter pairinherited
- fragmentShader ↔ String?
-
getter/setter pairinherited
- gapSize ↔ double?
-
getter/setter pairinherited
- glslVersion ↔ String?
-
getter/setter pairinherited
- gradientMap ↔ Texture?
-
getter/setter pairinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- id ↔ int
-
getter/setter pairinherited
- index0AttributeName ↔ String?
-
getter/setter pairinherited
- instanced ↔ bool
-
getter/setter pairinherited
- ior ↔ double?
-
getter/setter pairinherited
- isMaterial ↔ bool
-
getter/setter pairinherited
- lightMap ↔ Texture?
-
getter/setter pairinherited
- lightMapIntensity ↔ double?
-
getter/setter pairinherited
- lights ↔ bool?
-
getter/setter pairinherited
- linecap ↔ String?
-
getter/setter pairinherited
- linejoin ↔ String?
-
getter/setter pairinherited
- linewidth ↔ double?
-
getter/setter pairinherited
- map ↔ Texture?
-
getter/setter pairinherited
- matcap ↔ Texture?
-
getter/setter pairinherited
- metalness ↔ double
-
getter/setter pairinherited
- metalnessMap ↔ Texture?
-
getter/setter pairinherited
- metalnessNode ↔ dynamic
-
getter/setter pairinherited
- name ↔ String
-
getter/setter pairinherited
- needsUpdate ← bool
-
no getterinherited
- normalMap ↔ Texture?
-
getter/setter pairinherited
- normalMapType ↔ int?
-
getter/setter pairinherited
- normalNode ↔ dynamic
-
getter/setter pairinherited
- normalScale ↔ Vector2?
-
getter/setter pairinherited
- onBeforeCompile ↔ Function?
-
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.
getter/setter pairinherited
- onBeforeRender ↔ Function?
-
getter/setter pairinherited
- opacity ↔ double
-
getter/setter pairinherited
- polygonOffset ↔ bool
-
getter/setter pairinherited
- polygonOffsetFactor ↔ double
-
getter/setter pairinherited
- polygonOffsetUnits ↔ double
-
getter/setter pairinherited
- precision ↔ String?
-
getter/setter pairinherited
- premultipliedAlpha ↔ bool
-
getter/setter pairinherited
- reflectivity ↔ double?
-
getter/setter pairinherited
- refractionRatio ↔ double?
-
getter/setter pairinherited
- rotation ↔ double
-
getter/setter pairinherited
- roughness ↔ double
-
getter/setter pairinherited
- roughnessMap ↔ Texture?
-
getter/setter pairinherited
- roughnessNode ↔ dynamic
-
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scale ↔ double?
-
getter/setter pairinherited
- shaderID ↔ String
-
getter/setter pairinherited
- shaderid ↔ String?
-
getter/setter pairinherited
- shadowSide ↔ int?
-
getter/setter pairinherited
- sheen ↔ double
-
getter/setter pairinherited
- sheenColor ↔ Color?
-
getter/setter pairinherited
- sheenColorMap ↔ Texture?
-
getter/setter pairinherited
- sheenRoughness ↔ double
-
getter/setter pairinherited
- sheenRoughnessMap ↔ Texture?
-
getter/setter pairinherited
- sheenTintMap ↔ Texture?
-
getter/setter pairinherited
- shininess ↔ double?
-
getter/setter pairinherited
- side ↔ int
-
getter/setter pairinherited
- size ↔ double?
-
getter/setter pairinherited
- sizeAttenuation ↔ bool
-
getter/setter pairinherited
- specular ↔ Color?
-
getter/setter pairinherited
- specularColor ↔ Color?
-
getter/setter pairinherited
- specularColorMap ↔ Texture?
-
getter/setter pairinherited
- specularIntensity ↔ double?
-
getter/setter pairinherited
- specularIntensityMap ↔ Texture?
-
getter/setter pairinherited
- specularMap ↔ Texture?
-
getter/setter pairinherited
- stencilFail ↔ int
-
getter/setter pairinherited
- stencilFunc ↔ int
-
getter/setter pairinherited
- stencilFuncMask ↔ int
-
getter/setter pairinherited
- stencilRef ↔ int
-
getter/setter pairinherited
- stencilWrite ↔ bool
-
getter/setter pairinherited
- stencilWriteMask ↔ int
-
getter/setter pairinherited
- stencilZFail ↔ int
-
getter/setter pairinherited
- stencilZPass ↔ int
-
getter/setter pairinherited
- thickness ↔ double?
-
getter/setter pairinherited
- thicknessMap ↔ Texture?
-
getter/setter pairinherited
- toneMapped ↔ bool
-
getter/setter pairinherited
- transmission ↔ double
-
getter/setter pairinherited
- transmissionMap ↔ Texture?
-
getter/setter pairinherited
- transparent ↔ bool
-
getter/setter pairinherited
- type ↔ String
-
getter/setter pairinherited
-
uniforms
↔ Map<
String, dynamic> -
getter/setter pairinherited
- uniformsNeedUpdate ↔ bool?
-
getter/setter pairinherited
-
userData
↔ Map<
String, dynamic> -
getter/setter pairinherited
- uuid ↔ String
-
getter/setter pairinherited
- version ↔ int
-
getter/setter pairinherited
- vertexColors ↔ bool
-
getter/setter pairinherited
- vertexShader ↔ String?
-
getter/setter pairinherited
- vertexTangents ↔ bool
-
getter/setter pairinherited
- visible ↔ bool
-
getter/setter pairinherited
- wireframe ↔ bool
-
getter/setter pairinherited
- wireframeLinecap ↔ String?
-
getter/setter pairinherited
- wireframeLinejoin ↔ String?
-
getter/setter pairinherited
- wireframeLinewidth ↔ double?
-
getter/setter pairinherited
Methods
-
addEventListener(
String type, Function listener) → void -
type
- The type of event to listen to.inherited -
clearListeners(
) → void -
Remove all Listeners.
inherited
-
clone(
) → MeshStandardMaterial -
Return a new material with the same parameters as this material.
override
-
copy(
Material source) → MeshStandardMaterial -
Copy the parameters from the passed material into this material.
override
-
dispatchEvent(
Event event) → void -
event
- The event that gets fired.inherited -
dispose(
) → void -
Frees the GPU-related resources allocated by this instance. Call this
method whenever this instance is no longer used in your app.
inherited
-
getProperty(
String propertyName) → Object? -
inherited
-
hasEventListener(
String type, Function listener) → bool -
type
- The type of event to listen to.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onBuild(
dynamic shaderobject, dynamic renderer) → void -
inherited
-
removeEventListener(
String type, Function listener) → void -
type - The type of the listener that gets removed.
inherited
-
setProperty(
String propertyName, dynamic value) → void -
inherited
-
setValue(
MaterialProperty type, dynamic newValue) → void -
type
- the parameter to change.inherited -
setValueFromString(
String key, dynamic newValue) → void -
key
- String values of the parameter to change.inherited -
setValues(
Map< MaterialProperty, dynamic> ? values) → void -
values
- a container with parameters.inherited -
setValuesFromString(
Map< String, dynamic> ? values) → void -
inherited
-
toJson(
{Object3dMeta? meta}) → Map< String, dynamic> -
meta -- object containing metadata such as textures or images for the
material.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator []=(
String key, dynamic value) → void -
inherited