primitive: add primitive set shape

Description Usage Arguments Details Value See Also Examples


Adds a shape node to the current scene


rgl.points(x, y = NULL, z = NULL, ... )
rgl.lines(x, y = NULL, z = NULL, ... )
rgl.linestrips(x, y = NULL, z = NULL, ...)
rgl.triangles(x, y = NULL, z = NULL, normals = NULL, texcoords = NULL, ... )
rgl.quads(x, y = NULL, z = NULL, normals = NULL, texcoords = NULL, ... )


x, y, z

coordinates. Any reasonable way of defining the coordinates is acceptable. See the function xyz.coords for details.


Normals at each point.


Texture coordinates at each point.


Material properties. See rgl.material for details.


Adds a shape node to the scene. The appearance is defined by the material properties. See rgl.material for details.

The names of these functions correspond to OpenGL primitives. They all take a sequence of vertices in x, y, z. The only non-obvious ones are rgl.lines which draws line segments based on pairs of vertices, and rgl.linestrips which joins the vertices.

For triangles and quads, the normals at each vertex may be specified using normals. These may be given in any way that would be acceptable as a single argument to xyz.coords. These need not match the actual normals to the polygon: curved surfaces can be simulated by using other choices of normals.

Texture coordinates may also be specified. These may be given in any way that would be acceptable as a single argument to xy.coords, and are interpreted in terms of the bitmap specified as the material texture, with (0, 0) at the lower left, (1, 1) at the upper right. The texture is used to modulate the color of the polygon.

These are the lower level functions called by points3d, segments3d, lines3d, etc. The two principal differences between the rgl.* functions and the *3d functions are that the former set all unspecified material properties to defaults, whereas the latter use current values as defaults; the former make persistent changes to material properties with each call, whereas the latter make temporary changes only for the duration of the call.


Each primitive function returns the integer object ID of the shape that was added to the scene. These can be passed to rgl.pop to remove the object from the scene.

See Also

rgl.material, rgl.spheres, rgl.texts, rgl.surface, rgl.sprites


rgl.points(rnorm(1000), rnorm(1000), rnorm(1000), color = heat.colors(1000))

rgl documentation built on Jan. 16, 2017, 2:29 a.m.

Search within the rgl package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at

Please suggest features or report bugs in the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.