Render a 3D floating cloud layer of the map.
Note: Underlying layers with transparency can cause rendering issues in rgl.
render_clouds(
heightmap,
start_altitude = 1000,
end_altitude = 2000,
sun_altitude = 10,
sun_angle = 315,
time = 0,
cloud_cover = 0.5,
layers = 10,
offset_x = 0,
offset_y = 0,
scale_x = 1,
scale_y = 1,
scale_z = 1,
frequency = 0.005,
fractal_levels = 16,
attenuation_coef = 1,
seed = 1,
zscale = 1,
baseshape = "rectangle",
clear_clouds = FALSE
)
A two-dimensional matrix, where each entry in the matrix is the elevation at that point. This is used by render_clouds()
to
calculate the regions the clouds should be rendered in.
Default 1000
. The bottom of the cloud layer.
Default 2000
. The top of the cloud layer.
Default 90
. The angle, in degrees (as measured from the horizon) from which the light originates.
Default 315
(NW). The angle, in degrees, around the matrix from which the light originates. Zero degrees is North, increasing clockwise
Default 0
. Advance this to make the clouds evolve and change in shape.
Default 0.5
. The percentage of cloud cover.
Default 10
. The number of layers to render the cloud layer.
The default is layers/(start_altitude - end_altitude)
.
Default 0
. Change this to move the cloud layer sideways.
Default 0
. Change this to move the cloud layer backwards and forwards.
Default 1
. Scale the fractal pattern in the x direction.
Default 1
. Scale the fractal pattern in the y direction.
Default 1
. Scale the fractal pattern in the z (vertical) direction. (automatically calculated). Scale the fractal pattern in the z (vertical) direction.
Default 0.005
. The base frequency of the noise used to calculate the fractal cloud structure.
Default 16
. The fractal dimension used to calculate the noise. Higher values give more fine structure, but take longer to calculate.
Default 1
. Amount of attenuation in the cloud (higher numbers give darker shadows). This value is automatically scaled to account for increasing the number of layers.
Default 1
. Random seed used to generate clouds.
Default 1
. The ratio between the x and y spacing (which are assumed to be equal) and the z axis. For example, if the elevation levels are in units
of 1 meter and the grid values are separated by 10 meters, zscale
would be 10.
Default rectangle
. Shape of the base. Options are c("rectangle","circle","hex")
.
Default FALSE
. Clears all existing floating layers on the visualization.
Adds a 3D floating cloud layer to the map. No return value.
if(run_documentation()) {
#Render a cloud layer over Monterey Bay
montereybay %>%
sphere_shade() %>%
plot_3d(montereybay,background="brown",zscale=50)
#Render some clouds
render_clouds(montereybay, zscale=50)
render_snapshot()
}
if(run_documentation()) {
#Change the seed for a different set of clouds and add cloud shadows on the ground
montereybay %>%
sphere_shade() %>%
add_shadow(cloud_shade(montereybay,zscale=50, seed = 2), 0.0) %>%
plot_3d(montereybay,background="brown",zscale=50)
render_camera(theta=-65, phi = 25, zoom = 0.45, fov = 80)
render_clouds(montereybay, zscale=50, seed=2, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
montereybay %>%
sphere_shade() %>%
plot_3d(montereybay,background="brown",zscale=50)
#Lower the frequency for larger, smoother clouds
render_clouds(montereybay, zscale=50, frequency = 0.001, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Increase the frequency for more broken clouds
render_clouds(montereybay, zscale=50, frequency = 0.05, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Increase the fractal level for fluffier, bumpier clouds
render_clouds(montereybay, zscale=50, fractal_levels = 32, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Decrease the fractal level for more smoother, continuous clouds
render_clouds(montereybay, zscale=50, fractal_levels = 4, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Increase the cloud cover
render_clouds(montereybay, zscale=50, cloud_cover=0.8, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Decrease the cloud cover
render_clouds(montereybay, zscale=50, cloud_cover=0.2, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Change the altitude range of the clouds
render_clouds(montereybay,zscale=50,start_altitude=2000,end_altitude = 4000, clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Increase the number of layers
render_clouds(montereybay, zscale=50,start_altitude=2000,end_altitude = 4000, layers = 20,
clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Change the sun angle and altitude, and increase the attenuation for darker clouds
render_clouds(montereybay,zscale=50,sun_angle=45, sun_altitude= 5, attenuation_coef = 5,
clear_clouds = T)
render_snapshot()
}
if(run_documentation()) {
#Render the scene with a different baseshape
montereybay %>%
sphere_shade() %>%
plot_3d(montereybay,background="darkred",zscale=50, baseshape="hex")
render_clouds(montereybay,zscale=50, seed=3, baseshape="hex", clear_clouds = T)
render_camera(zoom=0.65)
render_snapshot()
}