csg_cylinder: CSG Cylinder

View source: R/csg_construct.R

csg_cylinderR Documentation

CSG Cylinder

Description

CSG Cylinder

Usage

csg_cylinder(
  start = c(0, 0, 0),
  end = c(0, 1, 0),
  radius = 1,
  corner_radius = 0
)

Arguments

start

Default 'c(0, 0, 0)'. Start point of the cylinder, specifing 'x', 'y', 'z'.

end

Default 'c(0, 1, 0)'. End point of the cylinder, specifing 'x', 'y', 'z'.

radius

Default '1'. Cylinder radius.

corner_radius

Default '0'. Radius if rounded cylinder.

Value

List describing the cylinder in the scene.

Examples

if(rayrender:::run_documentation()) {
#Generate a basic cylinder:
generate_ground(material=diffuse(checkercolor="grey20")) %>% 
  add_object(csg_object(csg_cylinder(radius=0.25),material=glossy(color="red"))) %>% 
  render_scene(clamp_value=10,fov=20)
  }
if(rayrender:::run_documentation()) {
#Change the orientation by specifying a start and end
generate_ground(material=diffuse(color="dodgerblue4",checkercolor="grey10")) %>% 
  add_object(csg_object(csg_cylinder(start = c(-1,0.5,-2), end = c(1,0.5,-2),
    radius=0.5),material=glossy(checkercolor="red"))) %>% 
  render_scene(clamp_value=10,fov=20,
               lookat=c(0,0.5,-2),lookfrom=c(3,3,10))
 }
if(rayrender:::run_documentation()) {
#Show the effect of changing the radius
generate_ground(material=diffuse(color="dodgerblue4",checkercolor="grey10")) %>% 
  add_object(csg_object(
    csg_combine(
    csg_cylinder(start = c(-1,0.5,-2), end = c(1,0.5,-2), radius=0.5),
    csg_cylinder(start = c(-0.5,1.5,-2), end = c(0.5,1.5,-2), radius=0.25)),
    material=glossy(checkercolor="red"))) %>% 
  render_scene(clamp_value=10,fov=20,
               lookat=c(0,0.5,-2),lookfrom=c(-3,3,10))
    }
if(rayrender:::run_documentation()) {           
#Render a red marble cylinder in a Cornell box
generate_cornell(light=FALSE) %>% 
  add_object(csg_object(
    csg_cylinder(start = c(555/2,0,555/2), end = c(555/2,350,555/2), radius=100),
    material=glossy(color="darkred",noisecolor="white",noise=0.03))) %>% 
    add_object(sphere(y=555,x=5,z=5, radius=5,
               material=light(intensity=10000,
                              spotlight_focus = c(555/2,555/2,555/2),spotlight_width = 45))) %>% 
  render_scene(clamp_value=4)
}

rayrender documentation built on June 8, 2023, 6:34 a.m.