rgl-package.Rd
3D real-time rendering system.
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.
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.
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()
#> null
#> 117
#>
#> srfc3d> surface3d(x, y, z, color = col, back = "lines")
example(plot3d)
#>
#> plot3d> open3d()
#> null
#> 118
#>
#> plot3d> x <- sort(rnorm(1000))
#>
#> plot3d> y <- rnorm(1000)
#>
#> plot3d> z <- rnorm(1000) + atan2(x, y)
#>
#> plot3d> plot3d(x, y, z, col = rainbow(1000))