The falloff of the point light intensity is given by the following equation (referenc:
Intensity = intensity / (constant + falloff * distance + falloff_quad * (distance * distance));
point_light(
position = c(0, 0, 0),
color = "white",
intensity = 1,
constant = 1,
falloff = 1,
falloff_quad = 1
)
A two-dimensional matrix, where each entry in the matrix is the elevation at that point. All points are assumed to be evenly spaced.
Default 400
. Width of the rendered image.
Default 1
. Intensity of the point light.
Default 1
. Constant term. See description for details.
Default 1
. Linear falloff term. See description for details.
Default 1
. Quadratic falloff term. See description for details.
A matrix representing the light information.
if(run_documentation()) {
#Add point lights and vary the intensity
lights_int = point_light(position=c(100,100,400), color="white", intensity=0.125,
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005) |>
add_light(point_light(position=c(100,455,400), color="white", intensity=0.25,
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005)) |>
add_light(point_light(position=c(455,100,400), color="white", intensity=0.5,
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005)) |>
add_light(point_light(position=c(455,455,400), color="white", intensity=1,
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005))
generate_cornell_mesh(light=FALSE) |>
rasterize_scene(light_info = lights_int)
#Add point lights and vary the color
lights_c = point_light(position=c(100,100,500), color="red",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005) |>
add_light(point_light(position=c(100,455,500), color="blue",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005)) |>
add_light(point_light(position=c(455,100,500), color="purple",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005)) |>
add_light(point_light(position=c(455,455,500), color="yellow",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005))
generate_cornell_mesh(light=FALSE) |>
rasterize_scene(light_info = lights_c)
#Add point lights and vary the falloff term
lights_fo = point_light(position=c(100,100,500), color="white",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.005) |>
add_light(point_light(position=c(100,455,500), color="white",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.01)) |>
add_light(point_light(position=c(455,100,500), color="white",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.02)) |>
add_light(point_light(position=c(455,455,500), color="white",
falloff_quad = 0.0, constant = 0.0002, falloff = 0.04))
generate_cornell_mesh(light=FALSE) |>
rasterize_scene(light_info = lights_fo)
#Add point lights and vary the quadradic falloff term
lights_quad = point_light(position=c(100,100,500), color="white",
falloff_quad = 0.0001, constant = 0.0002, falloff = 0.005) |>
add_light(point_light(position=c(100,455,500), color="white",
falloff_quad = 0.0002, constant = 0.0002, falloff = 0.005)) |>
add_light(point_light(position=c(455,100,500), color="white",
falloff_quad = 0.0004, constant = 0.0002, falloff = 0.005)) |>
add_light(point_light(position=c(455,455,500), color="white",
falloff_quad = 0.0008, constant = 0.0002, falloff = 0.005))
generate_cornell_mesh(light=FALSE) |>
rasterize_scene(light_info = lights_quad)
}
#> Setting default values for Cornell box: lookfrom `c(278,278,-800)` lookat `c(278,278,0)` fov `40` .
#> Setting default values for Cornell box: lookfrom `c(278,278,-800)` lookat `c(278,278,0)` fov `40` .
#> Setting default values for Cornell box: lookfrom `c(278,278,-800)` lookat `c(278,278,0)` fov `40` .
#> Setting default values for Cornell box: lookfrom `c(278,278,-800)` lookat `c(278,278,0)` fov `40` .