Here's a minimal example with the
g <- icosa::trigrid(tessellation = 6)
plot3d(g, guides = FALSE, sphere = FALSE)
There is a lot to explore here, and you can do almost anything but it won't be obvious at first. The mesh itself is simply vertices in 3D geometry with an accompanying index that links the vertices in triplets. That generic structure can be used more directly by
rgl, to plot surfaces and can include texture mapped images.
For direct use in rgl, get the vertices and the character-named indexes like this:
## geocentric vertices, use output = "polar" for long-lat
v <- vertices(g, output = "")
f <- faces(g)
## note we need to treat the colours in triplets explicitly to match
## the face index
rgl::rgl.triangles(v[t(f), ], col = rep(c("firebrick", "darkgrey", "dodgerblue"), each = 3))
This is a special, regular case of the Delaunay triangulation, which is the same as the convex hull in 3D. The triangulation is a 2D topology represented within a 3D geometric space, and can also be generated with "geometry::convhulln", but icosa provides very good tools for evenly distributed points.