Calculates a color for each point on the surface using the surface normals and hemispherical UV mapping. This uses either a texture map provided by the user (as an RGB array), or a built-in color texture.

sphere_shade(
  heightmap,
  sunangle = 315,
  texture = "imhof1",
  normalvectors = NULL,
  colorintensity = 1,
  zscale = 1,
  progbar = interactive()
)

Arguments

heightmap

A two-dimensional matrix, where each entry in the matrix is the elevation at that point. All points are assumed to be evenly spaced.

sunangle

Default `315` (NW). The direction of the main highlight color (derived from the built-in palettes or the `create_texture` function).

texture

Default `imhof1`. Either a square matrix indicating the spherical texture mapping, or a string indicating one of the built-in palettes (`imhof1`,`imhof2`,`imhof3`,`imhof4`,`desert`, `bw`, and `unicorn`).

normalvectors

Default `NULL`. Cache of the normal vectors (from `calculate_normal` function). Supply this to speed up texture mapping.

colorintensity

Default `1`. The intensity of the color mapping. Higher values will increase the intensity of the color mapping.

zscale

Default `1/colorintensity`. The ratio between the x and y spacing (which are assumed to be equal) and the z axis. Ignored unless `colorintensity` missing.

progbar

Default `TRUE` if interactive, `FALSE` otherwise. If `FALSE`, turns off progress bar.

Value

RGB array of hillshaded texture mappings.

Examples

#Basic example:
montereybay %>%
 sphere_shade() %>%
 plot_map()

 
#Decrease the color intensity:
montereybay %>%
 sphere_shade(colorintensity=0.1) %>%
 plot_map()

 
#Change to a built-in color texture:
montereybay %>%
 sphere_shade(texture="desert") %>%
 plot_map()


#Change the highlight angle:
montereybay %>%
 sphere_shade(texture="desert", sunangle = 45) %>%
 plot_map()


#Create our own texture using the `create_texture` function:
montereybay %>%
 sphere_shade(zscale=10,texture=create_texture("#E9C68D","#AF7F38",
                                               "#674F30","#494D30",
                                               "#B3BEA3")) %>%
 plot_map()