3D real-time rendering system.

Details

RGL is a 3D real-time rendering system for R. Multiple windows are managed at a time. Windows may be divided into “subscenes”, where one has the current focus that receives instructions from the R command-line. The device design is oriented towards the R device metaphor. If you send scene management instructions, and there's no device open, it will be opened automatically. Opened devices automatically get the current device focus. The focus may be changed by using set3d() or useSubscene3d().

RGL provides medium to high level functions for 3D interactive graphics, including functions modelled on base graphics (plot3d(), etc.) as well as functions for constructing geometric objects (cube3d(), etc.). Output may be on screen using OpenGL, or to various standard 3D file formats including WebGL, PLY, OBJ, STL as well as 2D image formats, including PNG, Postscript, SVG, PGF.

The open3d() function attempts to open a new RGL window, using default settings specified by the user.

See the first example below to display the ChangeLog.

See also

r3d for a description of the *3d interface; par3d for a description of scene properties and the rendering pipeline; rgl.useNULL for a description of how to use RGL on a system with no graphics support.

Examples

if (!in_pkgdown_example())
  file.show(system.file("NEWS", package = "rgl"))
example(surface3d)
#> 
#> srfc3d> #
#> srfc3d> # volcano example taken from "persp"
#> srfc3d> #
#> srfc3d> 
#> srfc3d> z <- 2 * volcano        # Exaggerate the relief
#> 
#> srfc3d> x <- 10 * (1:nrow(z))   # 10 meter spacing (S to N)
#> 
#> srfc3d> y <- 10 * (1:ncol(z))   # 10 meter spacing (E to W)
#> 
#> srfc3d> zlim <- range(z)
#> 
#> srfc3d> zlen <- zlim[2] - zlim[1] + 1
#> 
#> srfc3d> colorlut <- terrain.colors(zlen) # height color lookup table
#> 
#> srfc3d> col <- colorlut[ z - zlim[1] + 1 ] # assign colors to heights for each point
#> 
#> srfc3d> open3d()
#> glX 
#> 121 
#> 
#> srfc3d> surface3d(x, y, z, color = col, back = "lines")
example(plot3d)
#> 
#> plot3d>   open3d()
#> glX 
#> 122 
#> 
#> plot3d>   x <- sort(rnorm(1000))
#> 
#> plot3d>   y <- rnorm(1000)
#> 
#> plot3d>   z <- rnorm(1000) + atan2(x, y)
#> 
#> plot3d>   plot3d(x, y, z, col = rainbow(1000))