rgl (version 0.95.1367)

scene3d: Saves the current scene to a variable, and displays such variables.

Description

This function saves a large part of the RGL state associated with the current window to a variable.

Usage

scene3d()
## S3 method for class 'rglscene':
plot3d(x, add = FALSE, ...)
## S3 method for class 'rglobject':
plot3d(x, ...)
## S3 method for class 'rglscene':
print(x, ...)
## S3 method for class 'rglobject':
print(x, ...)

Arguments

x
An object of class "rglscene"
add
Whether to open a new window, or add to the existing one.
...
Additional parameters, currently ignored.

Value

  • The scene3d function returns an object of class "rglscene". This is a list with some or all of the components
  • par3dThe results returned from a par3d call.
  • materialThe results returned from a material3d call.
  • bgA list containing some of the properties of the scene background.
  • bboxA list containing some of the properties of the scene bounding box decoration.
  • objectsA list containing the RGL lights and objects in the scene.
  • The objects in the objects component are of class "rglobject". They are lists containing some or all of the components
  • idThe RGL identifier of the object in the original scene.
  • typeA character variable identifying the type of object.
  • materialComponents of the material that differ from the scene material.
  • vertices, normals, etc.Any of the attributes of the object retrievable by rgl.attrib.
  • ignoreExtentA logical value indicating whether this object contributes to the bounding box. Currently this may differ from the object in the original scene.
  • objectsSprites may contain other objects; they will be stored here as a list of "rglobject"s.
  • Lights in the scene are stored similarly, mixed into the objects list.

    The plot3d methods invisibly return a vector of RGL object ids that were plotted. The print methods invisibly return the object that was printed.

Details

The components saved are: the par3d settings, the material3d settings, the bg3d settings, the lights and the objects in the scene.

In most cases, calling plot3d on that variable will duplicate the scene. (There are likely to be small differences, mostly internal, but some aspects of the scene are not currently available.) If textures are used, the name of the texture will be saved, rather than the contents of the texture file.

Other than saving the code to recreate a scene, saving the result of scene3d to a file will allow it to be reproduced later most accurately. In roughly decreasing order of fidelity, writeWebGL, writePLY, writeOBJ and writeSTL write the scene to a file in formats readable by other software.

See Also

writeWebGL, writePLY, writeOBJ and writeSTL write the scene to a file in various formats.

Examples

Run this code
open3d()
z <- 2 * volcano        # Exaggerate the relief
x <- 10 * (1:nrow(z))   # 10 meter spacing (S to N)
y <- 10 * (1:ncol(z))   # 10 meter spacing (E to W)
persp3d(x, y, z, col = "green3", aspect = "iso")

s <- scene3d()
# Make it bigger
s$par3d$windowRect <- 1.5*s$par3d$windowRect
# and draw it again
plot3d(s)

Run the code above in your browser using DataLab