CSG Rounded Cone
List describing the box in the scene.
if(run_documentation()) {
#Generate a basic rounded cone:
generate_ground(material=diffuse(checkercolor="grey20")) %>%
add_object(csg_object(csg_rounded_cone(),material=glossy(color="red"))) %>%
render_scene(clamp_value=10, samples=16,fov=20)
}
if(run_documentation()) {
#Change the orientation by specifying a start and end
generate_ground(material=diffuse(color="dodgerblue4",checkercolor="grey10")) %>%
add_object(csg_object(csg_rounded_cone(start = c(-1,0.5,-2), end = c(1,0.5,-2),
radius=0.5),material=glossy(checkercolor="red"))) %>%
render_scene(clamp_value=10, samples=16,fov=20,
lookat=c(0,0.5,-2),lookfrom=c(3,3,10))
}
if(run_documentation()) {
#Show the effect of changing the radius
generate_ground(material=diffuse(color="dodgerblue4",checkercolor="grey10")) %>%
add_object(csg_object(
csg_combine(
csg_rounded_cone(start = c(-1,0.5,-2), end = c(1,0.5,-2), radius=0.5),
csg_rounded_cone(start = c(-0.5,1.5,-2), end = c(0.5,1.5,-2), radius=0.2,upper_radius = 0.5)),
material=glossy(checkercolor="red"))) %>%
render_scene(clamp_value=10, samples=16,fov=20,
lookat=c(0,0.5,-2),lookfrom=c(-3,3,10))
}
if(run_documentation()) {
#Render a glass rounded cone in a Cornell box
generate_cornell() %>%
add_object(csg_object(
csg_rounded_cone(start = c(555/2,555/2-100,555/2), end = c(555/2,555/2+100,555/2), radius=100),
material=dielectric(attenuation=c(1,1,0.3)/100))) %>%
render_scene(clamp_value=10, samples=16)
}
#> Setting default values for Cornell box: lookfrom `c(278,278,-800)` lookat `c(278,278,555/2)` fov `40` .