scene3d.RdThis function saves a large part of the RGL state associated with the current window to a variable.
scene3d(minimal = TRUE)
# S3 method for class 'rglscene'
plot3d(x, add = FALSE, open3dParams = getr3dDefaults(), ...)
# S3 method for class 'rglobject'
plot3d(x, ...)
# S3 method for class 'rglscene'
print(x, ...)
# S3 method for class 'rglobject'
print(x, ...)Should attributes be skipped if they currently have no effect? See Details.
An object of class "rglscene"
Whether to open a new window, or add to the existing one.
Default parameters for open3d
Additional parameters passed to open3d
by plot3d(..., add = FALSE). These override
open3dParams.
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 (now deprecated), writePLY, writeOBJ and writeSTL
write the scene to a file in formats readable by other software.
If minimal = TRUE (the default), then attributes of objects
will not be saved if they currently have no effect on
the display, thereby reducing the file size.
Set minimal = FALSE if the scene is intended
to be used in a context where the appearance could be changed.
Currently this only affects the inclusion of normals; with
minimal = TRUE they are
omitted for objects when the material is not lit.
The scene3d function returns an object of class
"rglscene". This is a list with some or all of the components:
The results returned from a material3d call.
A list containing information about the main ("root") subscene. This may include:
The scene id.
"subscene"
The par3d settings for the
subscene.
The subsceneInfo()$embeddings for the main subscene.
The ids for objects in the subscene.
A recursive list of child subscenes.
A list containing the RGL lights, background 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
The RGL identifier of the object in the original scene.
A character variable identifying the type of object.
Components of the material that differ from the scene material.
Any of the attributes of the object retrievable by rgl.attrib.
A logical value indicating whether this object contributes to the bounding box. Currently this may differ from the object in the original scene.
Sprites 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.
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")
3D plot
s <- scene3d()
# Make it bigger
s$par3d$windowRect <- 1.5*s$par3d$windowRect
# and draw it again
plot3d(s)
3D plot