texture_shade: Calculate Texture Shading Map

View source: R/texture_shade.R

texture_shadeR Documentation

Calculate Texture Shading Map

Description

Calculates a shadow for each point on the surface using the method described by Leland Brown in "Texture Shading: A New Technique for Depicting Terrain Relief."

Usage

texture_shade(
  heightmap,
  detail = 0.5,
  contrast = 1,
  brightness = 0,
  transform = TRUE,
  dx = 1,
  dy = 1,
  pad = 50
)

Arguments

heightmap

A two-dimensional matrix, where each entry in the matrix is the elevation at that point.

detail

Default '0.5'. Amount of detail in texture shading algorithm. '0' is the least detail, while '1' is the most.

contrast

Default '1',standard brightness. Amount of contrast in the texture shading. This transforms the resulting darkness using the formula 'tanh(input * contrast + brightness)'.

brightness

Default '0', standard brightness. Higher values will brighten the texture hillshade, while lower values will darken it.

transform

Default 'TRUE'. Whether to apply the 'tanh(input * contrast + brightness)' transformation. This transforms the resulting darkness using the formula 'tanh(input * contrast + brightness)'.

dx

Default '1'. The distance between each row of data (compared to the height axis).

dy

Default '1'. The distance between each column of data (compared to the height axis).

pad

Default ‘50'. The amount to pad the heightmap so edge effects don’t appear from the fourier transform. Only increase this if you encounter boundary effects.

Value

2D matrix of hillshade values.

Examples

#Create a direct mapping of elevation to color:
if(run_documentation()) {

#Plut using default values
montereybay %>% 
  texture_shade() %>% 
  plot_map()
}
if(run_documentation()) {
#Increase the level of detail
montereybay %>% 
  texture_shade(detail=1) %>% 
  plot_map()
}
if(run_documentation()) {
#Decrease the level of detail
montereybay %>% 
  texture_shade(detail=0) %>% 
  plot_map()
}
if(run_documentation()) {
#Increase the level of contrast
montereybay %>% 
  texture_shade(contrast=3) %>% 
  plot_map()
}
if(run_documentation()) {
#Increase the brightness for this level of contrast
montereybay %>% 
  texture_shade(contrast=5, brightness = 2) %>% 
  plot_map()
}
#Add a texture_shade() layer into a map
montbay = montereybay
montbay[montbay < 0] = 0
if(run_documentation()) {
montbay %>%
  height_shade() %>%
  add_water(detect_water(montbay), color="dodgerblue") %>%
  add_shadow(texture_shade(montbay, detail=1/3, contrast = 5, brightness = 6),0) %>%
  add_shadow(lamb_shade(montbay,zscale=50),0) %>% 
  plot_map()
}

tylermorganwall/rayshader documentation built on Dec. 21, 2024, 4:29 p.m.