View source: R/material_functions.R
change_material | R Documentation |
Change individual material properties, leaving others alone.
change_material(
mesh,
id = NULL,
sub_id = 1,
diffuse = NULL,
ambient = NULL,
specular = NULL,
transmittance = NULL,
emission = NULL,
shininess = NULL,
ior = NULL,
dissolve = NULL,
illum = NULL,
texture_location = NULL,
normal_texture_location = NULL,
specular_texture_location = NULL,
ambient_texture_location = NULL,
emissive_texture_location = NULL,
diffuse_intensity = NULL,
specular_intensity = NULL,
emission_intensity = NULL,
ambient_intensity = NULL,
culling = NULL,
type = NULL,
translucent = NULL,
toon_levels = NULL,
toon_outline_width = NULL,
toon_outline_color = NULL,
reflection_intensity = NULL,
reflection_sharpness = NULL,
two_sided = NULL
)
mesh |
Mesh to change. |
id |
Default 'NULL'. Either a number specifying the material to change, or a character vector matching the material name. |
sub_id |
Default '1'. A number specifying which material to change (within an id). |
diffuse |
Default 'NULL'. The diffuse color. |
ambient |
Default 'NULL'. The ambient color. |
specular |
Default 'NULL'. The specular color. |
transmittance |
Default 'NULL'. The transmittance |
emission |
Default 'NULL'. The emissive color. |
shininess |
Default 'NULL'. The shininess exponent. |
ior |
Default 'NULL'. The index of refraction. If this is not equal to '1.0', the material will be refractive. |
dissolve |
Default 'NULL'. The transparency. |
illum |
Default 'NULL'. The illumination. |
texture_location |
Default 'NULL'. The diffuse texture location. |
normal_texture_location |
Default 'NULL'. The normal texture location. |
specular_texture_location |
Default 'NULL'. The specular texture location. |
ambient_texture_location |
Default 'NULL'. The ambient texture location. |
emissive_texture_location |
Default 'NULL'. The emissive texture location. |
diffuse_intensity |
Default 'NULL'. The diffuse intensity. |
specular_intensity |
Default 'NULL'. The specular intensity. |
emission_intensity |
Default 'NULL'. The emission intensity. |
ambient_intensity |
Default 'NULL'. The ambient intensity. |
culling |
Default 'NULL'. The culling type. Options are 'back', 'front', and 'none'. |
type |
Default 'NULL'. The shader type. Options include 'diffuse','phong','vertex', and 'color'. |
translucent |
Default 'NULL'. Whether light should transmit through a semi-transparent material. |
toon_levels |
Default 'NULL'. Number of color breaks in the toon shader. |
toon_outline_width |
Default 'NULL'. Expansion term for model to specify toon outline width. Note: setting this property via this function currently does not generate outlines. Specify it during object creation. |
toon_outline_color |
Default 'NULL'. Toon outline color.Note: setting this property via this function currently does not color outlines. Specify it during object creation. |
reflection_intensity |
Default 'NULL'. Intensity of the reflection of the environment map, if present. This will be ignored if the material is refractive. |
reflection_sharpness |
Default 'NULL'. Sharpness of the reflection, where lower values have blurrier reflections. Must be greater than zero and less than one. |
two_sided |
Default 'NULL'. Whether diffuse materials should be two sided (normal is taken as the absolute value of the dot product of the light direction and the normal). |
Shape with new material settings
if(rayvertex:::run_documentation()) {
p_sphere = sphere_mesh(position=c(555/2,555/2,555/2),
radius=40,material=material_list(diffuse="purple"))
generate_cornell_mesh() |>
add_shape(p_sphere) |>
add_shape(change_material(translate_mesh(p_sphere,c(200,0,0)),diffuse="red")) |>
add_shape(change_material(translate_mesh(p_sphere,c(100,0,0)),dissolve=0.5)) |>
add_shape(change_material(translate_mesh(p_sphere,c(-100,0,0)),type="phong")) |>
add_shape(change_material(translate_mesh(p_sphere,c(-200,0,0)),type="phong",shininess=30)) |>
rasterize_scene(light_info=directional_light(direction=c(0.1,0.6,-1)))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.