validate_mesh {rayvertex}R Documentation

Validate Mesh Data

Description

This function takes a mesh and validates it. The mesh should be a list with "shapes", "materials", "vertices", "texcoords", "normals", and "material_hashes" entries.

Usage

validate_mesh(mesh, validate_materials = TRUE)

Arguments

mesh

List. A mesh is a list as described above.

validate_materials

Default TRUE. Whether or not to validate "materials".

Value

A mesh.

Shapes

Each "shapes" entry should be a list with "mesh", "name", and "material" entries. Each "mesh" entry should have "indices", "tex_indices", "norm_indices", "material_ids", "has_vertex_tex", and "has_vertex_normals". The indices should not exceed the number of rows in their corresponding vertex/normal/texcoord data. There should be no NA/NaN values in the vertex/normal/texcoord data.

Materials (for rayvertex package only)

Each "materials" entry is expected to be a list with several entries with specific required lengths, as listed below:

Attribute Length Type
diffuse 3 Numeric
ambient 3 Numeric
specular 3 Numeric
transmittance 3 Numeric
emission 3 Numeric
shininess 1 Numeric
ior 1 Numeric
dissolve 1 Numeric
illum 1 Numeric
diffuse_texname 1 Character
normal_texname 1 Character
bump_texname 1 Character
specular_texname 1 Character
ambient_texname 1 Character
emissive_texname 1 Character
diffuse_intensity 1 Numeric
bump_intensity 1 Numeric
specular_intensity 1 Numeric
emission_intensity 1 Numeric
ambient_intensity 1 Numeric
culling 1 Character
type 1 Character
translucent 1 Logical
toon_levels 1 Numeric
toon_outline_width 1 Numeric
toon_outline_color 3 Numeric
reflection_intensity 1 Numeric
reflection_sharpness 1 Numeric
two_sided 1 Logical

Note: This materials validation only applies to the rayvertex package. Other renderers might choose to use their own information in the material list.

Examples

# validate a mesh
mesh = validate_mesh(sphere_mesh())

[Package rayvertex version 0.10.4 Index]