Draw surfaces with rgl from any shape3d classed object. Produces a 3D surface plot from a mesh-alike object.

# S3 method for TRI
shade3d(x, ...)

# S3 method for TRI0
shade3d(x, ...)

# S3 method for PATH
shade3d(x, ...)

# S3 method for PATH0
shade3d(x, ...)

# S3 method for DEL
shade3d(x, ...)

# S3 method for DEL0
shade3d(x, ...)

# S3 method for QUAD
shade3d(x, ...)

# S3 method for BasicRaster
shade3d(x, ...)

# S3 method for matrix
shade3d(x, ...)

# S3 method for sfc
shade3d(x, ...)

# S3 method for sf
shade3d(x, ...)

# S3 method for SC
shade3d(x, ...)

# S3 method for SC0
shade3d(x, ...)

# S3 method for Spatial
shade3d(x, ...)

# S3 method for triangulation
shade3d(x, ...)

Arguments

x

sp, sf, raster, or any other surface model understood by anglr/silicate

...

pass material3d properties to rgl

Details

Objects that are not explicitly surfaces will be triangulated in order to produce the mesh. Whether this is a good idea or not is an open question, and some conversions will fail due to "extra" attributes like z or time stored on vertices. Polygons are only implicit surfaces but these are usually unproblematic to triangulate so this is done.

See also

Examples

rgl::open3d()
#> wgl #> 4
shade3d(volcano) # \donttest{ ## create a globe plot of land areas with elevation rgl::open3d()
#> wgl #> 5
world <- copy_down(DEL(simpleworld, max_area = 0.5), gebco * 50)
#> Warning: both proj are different longlat, no transformation done
shade3d(globe(world), specular = "black", color = "white") rgl::spheres3d(0, 0, 0, radius = 6378000, col = "dodgerblue", alpha = 0.75) rgl::bg3d("black") # }