Dielectric (glass) Material

dielectric(
  color = "white",
  refraction = 1.5,
  attenuation = c(0, 0, 0),
  importance_sample = FALSE
)

Arguments

color

Default `white`. The color of the surface. Can be either a hexadecimal code, R color string, or a numeric rgb vector listing three intensities between `0` and `1`.

refraction

Default `1.5`. The index of refraction.

attenuation

Default `c(0,0,0)`. The Beer-Lambert color-channel specific exponential attenuation through the material. Higher numbers will result in less of that color making it through the material. Note: This assumes the object has a closed surface.

importance_sample

Default `FALSE`. If `TRUE`, the object will be sampled explicitly during the rendering process. If the object is particularly important in contributing to the light paths in the image (e.g. light sources, refracting glass ball with caustics, metal objects concentrating light), this will help with the convergence of the image.

Value

Single row of a tibble describing the dielectric material.

Examples

#Generate a checkered ground scene = generate_ground(depth=-0.5, material = diffuse(checkercolor="grey30",checkerperiod=2)) # \donttest{ render_scene(scene,parallel=TRUE)
# } #Add a glass sphere # \donttest{ scene %>% add_object(sphere(x=-0.5,radius=0.5,material=dielectric())) %>% render_scene(parallel=TRUE,samples=400)
# } #Add a rotated colored glass cube # \donttest{ scene %>% add_object(sphere(x=-0.5,radius=0.5,material=dielectric())) %>% add_object(cube(x=0.5,xwidth=0.5,material=dielectric(color="darkgreen"),angle=c(0,-45,0))) %>% render_scene(parallel=TRUE,samples=40)
# } #Add an area light behind and at an angle and turn off the ambient lighting # \donttest{ scene %>% add_object(sphere(x=-0.5,radius=0.5,material=dielectric())) %>% add_object(cube(x=0.5,xwidth=0.5,material=dielectric(color="darkgreen"),angle=c(0,-45,0))) %>% add_object(yz_rect(z=-3,y=1,x=0,zwidth=3,ywidth=1.5, material=light(intensity=15), angle=c(0,-90,45), order_rotation = c(3,2,1))) %>% render_scene(parallel=TRUE,aperture=0, ambient_light=FALSE,samples=1000)
# } #Color glass using Beer-Lambert attenuation, which attenuates light on a per-channel #basis as it travels through the material. This effect is what gives some types of glass #a green glow at the edges. We will get this effect by setting a lower attenuation value #for the `green` (second) channel in the dielectric `attenuation` argument. # \donttest{ generate_ground(depth=-0.5,material=diffuse(checkercolor="grey30",checkerperiod=2)) %>% add_object(sphere(z=-5,x=-0.5,y=1,material=light(intensity=10))) %>% add_object(cube(y=0.3,ywidth=0.1,xwidth=2,zwidth=2, material=dielectric(attenuation=c(1.2,0.2,1.2)),angle=c(45,110,0))) %>% render_scene(parallel=TRUE, samples = 1000)
# }