This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Surface plot with colormap-based lighting


h = surfl(...)


The surfl function displays a shaded surface based on a combination of ambient, diffuse, and specular lighting models.

surfl(Z) and surfl(X,Y,Z) create three-dimensional shaded surfaces using the default direction for the light source and the default lighting coefficients for the shading model. X, Y, and Z are vectors or matrices that define the x, y, and z components of a surface.

surfl(...,'light') produces a colored, lighted surface using a MATLAB® light object. This produces results different from the default lighting method, surfl(...,'cdata'), which changes the color data for the surface to be the reflectance of the surface.

surfl(...,s) specifies the direction of the light source. s is a two- or three-element vector that specifies the direction from a surface to a light source. s = [sx sy sz] or s = [azimuth elevation]. The default s is 45° counterclockwise from the current view direction.

surfl(X,Y,Z,s,k) specifies the reflectance constant. k is a four-element vector defining the relative contributions of ambient light, diffuse reflection, specular reflection, and the specular shine coefficient. k = [ka kd ks shine] and defaults to [.55,.6,.4,10].

surfl(ax,...) creates the surface in the axes specified by ax instead of in the current axes (gca). The option ax can precede any of the input argument combinations in the previous syntaxes.

h = surfl(...) returns the chart surface object. If you specify the 'light' option, then h contains both the surface and the light objects.


collapse all

Create a surface plot of the peaks function using colormap-based lighting. Set the shading to interp to interpolate the colors across lines and faces.

[x,y] = meshgrid(-3:1/8:3);
z = peaks(x,y);
shading interp


surfl does not accept complex inputs.

For smoother color transitions, use colormaps that have linear intensity variations (e.g., gray, copper, bone, pink).

The ordering of points in the X, Y, and Z matrices defines the inside and outside of parametric surfaces. If you want the opposite side of the surface to reflect the light source, use surfl(X',Y',Z'). Because of the way surface normal vectors are computed, surfl requires matrices that are at least 3-by-3.

See Also

| |

Introduced before R2006a

Was this topic helpful?