WOLFRAM

is a threedimensional 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 normalvector interpolation shading.

uses the attenuation factor d for the diffuse light.

uses the attenuation factor s for the specular light.

PhongShading[d,s,a]

uses the attenuation factor a for the ambient light.

Details

  • PhongShading is also known as perpixel 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:

Examples

open allclose all

Basic Examples  (3)Summary of the most common use cases

Apply PhongShading to the unit sphere:

Out[1]=1

Style a plot with PhongShading:

Out[1]=1

Draw a 3D model with PhongShading:

Out[1]=1

Scope  (14)Survey of the scope of standard use cases

Basic Uses  (5)

Apply Phong shading to a graphics primitive:

Out[1]=1

Apply Phong shading to a plot:

Out[1]=1

Apply Phong shading to a chart:

Out[1]=1

Apply Phong shading to a 3D object:

Out[1]=1

Summary box:

Out[1]=1

Specification  (5)

PhongShading with no arguments uses similar calculations as the default system shader:

Out[1]=1

Attenuate all light from the surface by a scaler value:

Out[1]=1

This is equivalent to specifying each attenuation factor explicitly:

Out[2]=2

Attenuate the diffuse light, setting other attenuation factors to zero:

Out[1]=1

Attenuate the specular light, setting other attenuation factors to zero:

Out[1]=1

Attenuate the ambient light, setting other attenuation factors to zero:

Out[1]=1

Lighting  (4)

PhongShading works with all types of lights:

Out[2]=2

Use colored lights:

Out[1]=1

The specular percentage only applies if the Specularity directive has been specified:

Out[1]=1

The ambient percentage only applies if an AmbientLight is has been specified:

Out[1]=1

Applications  (2)Sample problems that can be solved with this function

Basic Applications  (2)

Show interior normals interpolated from vertex normals:

Triangle with identical vertex normals:

Out[22]=22

Triangle with a different normal at each vertex:

Out[23]=23

PhongShading can be separated into individual components for diffuse, specular and ambient lighting:

Out[1]=1

These components are summed to achieve the final result:

Out[2]=2

PhongShading performs the individual calculations and summation by default:

Out[3]=3

Properties & Relations  (4)Properties of the function, and connections to other functions

PhongShading uses VertexNormals if specified:

Out[2]=2

Specify FaceForm with PhongShading:

Out[1]=1

GouraudShading approximates the PhongShading when the screen size and shade variance across polygons are small:

Out[1]=1

PhongShading typically has a smaller specular highlight than the default system shader:

Out[1]=1
Wolfram Research (2022), PhongShading, Wolfram Language function, https://reference.wolfram.com/language/ref/PhongShading.html.
Wolfram Research (2022), PhongShading, Wolfram Language function, https://reference.wolfram.com/language/ref/PhongShading.html.

Text

Wolfram Research (2022), PhongShading, Wolfram Language function, https://reference.wolfram.com/language/ref/PhongShading.html.

Wolfram Research (2022), PhongShading, Wolfram Language function, https://reference.wolfram.com/language/ref/PhongShading.html.

CMS

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. Wolfram Research. https://reference.wolfram.com/language/ref/PhongShading.html.

APA

Wolfram Language. (2022). PhongShading. Wolfram Language & System Documentation Center. Retrieved from 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

BibTeX

@misc{reference.wolfram_2025_phongshading, author="Wolfram Research", title="{PhongShading}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/PhongShading.html}", note=[Accessed: 21-April-2025 ]}

@misc{reference.wolfram_2025_phongshading, author="Wolfram Research", title="{PhongShading}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/PhongShading.html}", note=[Accessed: 21-April-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_phongshading, organization={Wolfram Research}, title={PhongShading}, year={2022}, url={https://reference.wolfram.com/language/ref/PhongShading.html}, note=[Accessed: 21-April-2025 ]}

@online{reference.wolfram_2025_phongshading, organization={Wolfram Research}, title={PhongShading}, year={2022}, url={https://reference.wolfram.com/language/ref/PhongShading.html}, note=[Accessed: 21-April-2025 ]}