Diffuse Material
diffuse(color = "#ffffff", checkercolor = NA, checkerperiod = 3, noise = 0, noisephase = 0, noiseintensity = 10, noisecolor = "#000000", image_array = NA, fog = FALSE, fogdensity = 0.01, sigma = NULL, importance_sample = FALSE)
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`. |
---|---|
checkercolor | Default `NA`. If not `NA`, determines the secondary color of the checkered surface. Can be either a hexadecimal code, or a numeric rgb vector listing three intensities between `0` and `1`. |
checkerperiod | Default `3`. The period of the checker pattern. Increasing this value makes the checker pattern bigger, and decreasing it makes it smaller |
noise | Default `0`. If not `0`, covers the surface in a turbulent marble pattern. This value will determine the amount of turbulence in the texture. |
noisephase | Default `0`. The phase of the noise. The noise will repeat at `360`. |
noiseintensity | Default `10`. Intensity of the noise. |
noisecolor | Default `#000000`. The secondary color of the noise pattern. Can be either a hexadecimal code, or a numeric rgb vector listing three intensities between `0` and `1`. |
image_array | A 3-layer RGB array to be used as the texture on the surface of the object. |
fog | Default `FALSE`. If `TRUE`, the object will be a volumetric scatterer. |
fogdensity | Default `0.01`. The density of the fog. Higher values will produce more opaque objects. |
sigma | Default `NULL`. A number between 0 and Infinity specifying the roughness of the surface using the Oren-Nayar microfacet model. Higher numbers indicate a roughed surface, where sigma is the standard deviation of the microfacet orientation angle. When 0, this reverts to the default lambertian behavior. |
importance_sample | Default `FALSE`, unless the object is a light. If `TRUE`, the object will be sampled as part of the scattering probability density function. |
Single row of a tibble describing the diffuse material.
#Generate the cornell box and add a single white sphere to the center scene = generate_cornell() %>% add_object(sphere(x=555/2,y=555/2,z=555/2,radius=555/8,material=diffuse()))render_scene(scene, lookfrom=c(278,278,-800),lookat = c(278,278,0), samples=500, aperture=0, fov=40, ambient_light=FALSE, parallel=TRUE)#Add a checkered rectangular cube below scene = scene %>% add_object(cube(x=555/2,y=555/8,z=555/2,xwidth=555/2,ywidth=555/4,zwidth=555/2, material = diffuse(checkercolor="purple",checkerperiod=20)))render_scene(scene, lookfrom=c(278,278,-800),lookat = c(278,278,0), samples=500, aperture=0, fov=40, ambient_light=FALSE, parallel=TRUE)#Add a marbled sphere scene = scene %>% add_object(sphere(x=555/2+555/4,y=555/2,z=555/2,radius=555/8, material = diffuse(noise=1/20)))render_scene(scene, lookfrom=c(278,278,-800),lookat = c(278,278,0), samples=500, aperture=0, fov=40, ambient_light=FALSE, parallel=TRUE)#Add an orange volumetric (fog) cube scene = scene %>% add_object(cube(x=555/2-555/4,y=555/2,z=555/2,xwidth=555/4,ywidth=555/4,zwidth=555/4, material = diffuse(fog=TRUE, fogdensity=0.05,color="orange")))render_scene(scene, lookfrom=c(278,278,-800),lookat = c(278,278,0), samples=500, aperture=0, fov=40, ambient_light=FALSE, parallel=TRUE)