rayrender (version 0.4.0)

triangle: Triangle Object

Description

Triangle Object

Usage

triangle(v1 = c(1, 0, 0), v2 = c(0, 1, 0), v3 = c(-1, 0, 0),
  n1 = rep(NA, 3), n2 = rep(NA, 3), n3 = rep(NA, 3),
  color1 = rep(NA, 3), color2 = rep(NA, 3), color3 = rep(NA, 3),
  material = lambertian(), angle = c(0, 0, 0), order_rotation = c(1,
  2, 3), flipped = FALSE, scale = c(1, 1, 1))

Arguments

v1

Default `c(1, 0, 0)`. Length-3 vector indicating the x, y, and z coordinate of the first triangle vertex.

v2

Default `c(0, 1, 0)`. Length-3 vector indicating the x, y, and z coordinate of the second triangle vertex.

v3

Default `c(-1, 0, 0)`. Length-3 vector indicating the x, y, and z coordinate of the third triangle vertex.

n1

Default `NA`. Length-3 vector indicating the normal vector associated with the first triangle vertex.

n2

Default `NA`. Length-3 vector indicating the normal vector associated with the second triangle vertex.

n3

Default `NA`. Length-3 vector indicating the normal vector associated with the third triangle vertex.

color1

Default `NA`. Length-3 vector or string indicating the color associated with the first triangle vertex. If NA but other vertices specified, color inherits from material.

color2

Default `NA`. Length-3 vector or string indicating the color associated with the second triangle vertex. If NA but other vertices specified, color inherits from material.

color3

Default `NA`. Length-3 vector or string indicating the color associated with the third triangle vertex. If NA but other vertices specified, color inherits from material.

material

Default lambertian.The material, called from one of the material functions lambertian, metal, or dielectric.

angle

Default `c(0, 0, 0)`. Angle of rotation around the x, y, and z axes, applied in the order specified in `order_rotation`.

order_rotation

Default `c(1, 2, 3)`. The order to apply the rotations, referring to "x", "y", and "z".

flipped

Default `FALSE`. Whether to flip the normals.

scale

Default `c(1, 1, 1)`. Scale transformation in the x, y, and z directions. If this is a single value, number, the object will be scaled uniformly. Note: emissive objects may not currently function correctly when scaled.

Value

Single row of a tibble describing the XZ plane in the scene.

Examples

Run this code
# NOT RUN {
#Generate a triangle in the Cornell box.
# }
# NOT RUN {
generate_cornell() %>%
  add_object(triangle(v1 = c(100, 100, 100), v2 = c(555/2, 455, 455), v3 = c(455, 100, 100),
                      material = lambertian(color = "purple"))) %>%
  render_scene(lookfrom = c(278, 278, -800) ,lookat = c(278, 278, 0), fov = 40, 
               ambient_light = FALSE, samples = 400, parallel = TRUE, clamp_value = 5)
# }
# NOT RUN {
#Pass individual colors to each vertex:
# }
# NOT RUN {
generate_cornell() %>%
  add_object(triangle(v1 = c(100, 100, 100), v2 = c(555/2, 455, 455), v3 = c(455, 100, 100),
                      color1 = "green", color2 = "yellow", color3 = "red")) %>%
  render_scene(lookfrom = c(278, 278, -800) ,lookat = c(278, 278, 0), fov = 40, 
               ambient_light = FALSE, samples = 400, parallel = TRUE, clamp_value = 5)
# }

Run the code above in your browser using DataCamp Workspace