MATLAB Function Reference |

Surface plot with colormap-based lighting

**Syntax**

**Description**

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.

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(...,'light')
```

```
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]`

.

```
h = surfl(...)
```

returns a handle to a surface graphics object.

**Remarks**

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 define 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.

**Examples**

View `peaks`

using colormap-based lighting.

[x

`,`

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

y); surfl(x`,`

y`,`

z); shading interp colormap(gray); axis([-3 3 -3 3 -8 8])

To plot a lighted surface from a view direction other than the default.

**See Also**

Creating Surfaces and Meshes for functions related to surfaces

Lighting for functions related to lighting

Surface Properties | surfnorm |