Capítulo 77 de 859

Chapter 77: MeshPhongMaterial

Core Idea

A material for shiny surfaces with specular highlights.

The material uses a non-physically based Blinn-Phong model for calculating reflectance. Unlike the Lambertian model used in the MeshLambertMaterial this can simulate shiny surfaces with specular highlights (such as varnished wood). MeshPhongMaterial uses per-fragment shading.

Performance will generally be greater when using this material over the MeshStandardMaterial or MeshPhysicalMaterial, at the cost of some graphical accuracy.

Key Concepts

  • alphaMap : Texture: The alpha map is a grayscale texture that controls the opacity across the surface (black: fully transparent; white: fully opaque).
  • aoMap : Texture: The red channel of this texture is used as the ambient occlusion map. Requires a second set of UVs.
  • aoMapIntensity : number: Intensity of the ambient occlusion effect. Range is [0,1], where 0 disables ambient occlusion. Where intensity is 1 and the AO map's …
  • 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 af…
  • bumpScale : number: How much the bump map affects the material. Typical range is [0,1].
  • color : Color: Color of the material.
  • combine : MultiplyOperation | MixOperation | AddOperation: How to combine the result of the surface's color with the environment map, if any.
  • displacementBias : number: The offset of the displacement map's values on the mesh's vertices. The bias is added to the scaled sample of the displacement map. Without…
  • displacementMap : Texture: The displacement map affects the position of the mesh's vertices. Unlike other maps which only affect the light and shade of the material t…
  • displacementScale : number: How much the displacement map affects the mesh (where black is no displacement, and white is maximum displacement). Without a displacement …

Reference Tables

Constructor

Signature
new MeshPhongMaterial( parameters : Object )

Properties

PropertyDescription
.alphaMap : TextureThe alpha map is a grayscale texture that controls the opacity across the surface (black: fully transparent; white: fully opaque).
.aoMap : TextureThe red channel of this texture is used as the ambient occlusion map. Requires a second set of UVs.
.aoMapIntensity : numberIntensity of the ambient occlusion effect. Range is [0,1], where 0 disables ambient occlusion. Where intensity is 1 and the AO map's red channel is also 1, ambient light is fully occluded on …
.bumpMap : TextureThe 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 nor…
.bumpScale : numberHow much the bump map affects the material. Typical range is [0,1].
.color : ColorColor of the material.
`.combine : MultiplyOperationMixOperation
.displacementBias : numberThe offset of the displacement map's values on the mesh's vertices. The bias is added to the scaled sample of the displacement map. Without a displacement map set, this value is not applied.
.displacementMap : TextureThe displacement map affects the position of the mesh's vertices. Unlike other maps which only affect the light and shade of the material the displaced vertices can cast shadows, block other objects,…
.displacementScale : numberHow much the displacement map affects the mesh (where black is no displacement, and white is maximum displacement). Without a displacement map set, this value is not applied.
.emissive : ColorEmissive (light) color of the material, essentially a solid color unaffected by other lighting.
.emissiveIntensity : numberIntensity of the emissive light. Modulates the emissive color.
.emissiveMap : TextureSet emissive (glow) map. 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 b…
.envMap : TextureThe environment map.
.envMapIntensity : numberScales the effect of the environment map by multiplying its color.
.envMapRotation : EulerThe rotation of the environment map in radians.
.flatShading : booleanWhether the material is rendered with flat shading or not.
.fog : booleanWhether the material is affected by fog or not.
.isMeshPhongMaterial : boolean (readonly)This flag can be used for type testing.
.lightMap : TextureThe light map. Requires a second set of UVs.
.lightMapIntensity : numberIntensity of the baked light.
.map : TextureThe color map. May optionally include an alpha channel, typically combined with Material#transparent or Material#alphaTest. The texture map col…
.normalMap : TextureThe 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, on…
`.normalMapType : TangentSpaceNormalMapObjectSpaceNormalMap`
.normalScale : Vector2How much the normal map affects the material. Typical value range is [0,1].
.reflectivity : numberHow much the environment map affects the surface. The valid range is between 0 (no reflections) and 1 (full reflections).
.refractionRatio : numberThe index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material. It is used with environment mapping modes [CubeRefractionMapping](global.html#CubeRefraction…
.shininess : numberHow shiny the specular highlight is; a higher value gives a sharper highlight.
.specular : ColorSpecular color of the material. The default color is set to 0x111111 (very dark grey)
.specularMap : TextureThe specular map value affects both how much the specular surface highlight contributes and how much of the environment map affects the surface.
.wireframe : booleanRenders the geometry as a wireframe.
`.wireframeLinecap : 'round''bevel'
`.wireframeLinejoin : 'round''bevel'
.wireframeLinewidth : numberControls the thickness of the wireframe.

Key Takeaways

  1. MeshPhongMaterial extends: EventDispatcher → Material
  2. Most relevant properties: alphaMap, aoMap, aoMapIntensity, bumpMap.

Connects To