is a three‐dimensional graphics directive that specifies that faces of polygons and other filled graphics objects are to be drawn to reflect as a smooth surface using a normal‐vector interpolation shading.
uses the attenuation factor d for the diffuse light.
uses the attenuation factor s for the specular light.
uses the attenuation factor a for the ambient light.
- PhongShading is also known as per‐pixel shading and Phong interpolation.
- PhongShading is typically used to achieve smooth lighting on polygon surfaces.
- The final colors are computed from the interpolation of the surface normals across polygons and the luminosity of the color resulting from standard shading.
- PhongShading[d,s,a] specifies that the diffuse light on a 3D surface should be attenuated by a factor d, the specular light by s and the ambient light by a.
- PhongShading is effectively equivalent to PhongShading[1,1,1].
- The setting Lighting"Accent" uses a directional light and faithfully reproduces colors on the surface.
- The basic shading models FlatShading, GouraudShading and PhongShading compared:
Examplesopen allclose all
Basic Examples (3)
Apply PhongShading to the unit sphere:
Style a plot with PhongShading:
Draw a 3D model with PhongShading:
Basic Uses (5)
PhongShading with no arguments uses similar calculations as the default system shader:
Attenuate all light from the surface by a scaler value:
This is equivalent to specifying each attenuation factor explicitly:
Attenuate the diffuse light, setting other attenuation factors to zero:
Attenuate the specular light, setting other attenuation factors to zero:
Attenuate the ambient light, setting other attenuation factors to zero:
PhongShading works with all types of lights:
The specular percentage only applies if the Specularity directive has been specified:
The ambient percentage only applies if an AmbientLight is has been specified:
Basic Applications (2)
Show interior normals interpolated from vertex normals:
Triangle with identical vertex normals:
Triangle with a different normal at each vertex:
PhongShading can be separated into individual components for diffuse, specular and ambient lighting:
These components are summed to achieve the final result:
PhongShading performs the individual calculations and summation by default:
Properties & Relations (4)
PhongShading uses VertexNormals if specified:
Specify FaceForm with PhongShading:
GouraudShading approximates the PhongShading when the screen size and shade variance across polygons are small:
PhongShading typically has a smaller specular highlight than the default system shader:
Wolfram Research (2022), PhongShading, Wolfram Language function, https://reference.wolfram.com/language/ref/PhongShading.html.
Wolfram Language. 2022. "PhongShading." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/PhongShading.html.
Wolfram Language. (2022). PhongShading. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/PhongShading.html