rgl.pixels: Extract pixel information from window

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/device.R

Description

This function extracts single components of the pixel information from the topmost window.

Usage

1
2
rgl.pixels(component = c("red", "green", "blue"), 
        viewport = par3d("viewport"), top = TRUE)

Arguments

component

Which component(s)?

viewport

Lower left corner and size of desired region.

top

Whether to bring window to top before reading.

Details

The possible components are "red", "green", "blue", "alpha", "depth", and "luminance" (the sum of the three colors). All are scaled from 0 to 1.

Note that the luminance is kept below 1 by truncating the sum; this is the definition used for the GL_LUMINANCE component in OpenGL.

Value

A vector, matrix or array containing the desired components. If one component is requested, a vector or matrix will be returned depending on the size of block requested (length 1 dimensions are dropped); if more, an array, whose last dimension is the list of components.

Author(s)

Duncan Murdoch

See Also

rgl.snapshot to write a copy to a file, demo("stereo") for functions that make use of this to draw a random dot stereogram and an anaglyph.

Examples

1
2
3
4
example(surface3d)
depth <- rgl.pixels(component = "depth")
if (length(depth) && is.matrix(depth)) # Protect against empty or single pixel windows
    contour(depth)

Example output

Warning messages:
1: In rgl.init(initValue, onlyNULL) : RGL: unable to open X11 display
2: 'rgl.init' failed, running with 'rgl.useNULL = TRUE'. 

srfc3d> #
srfc3d> # volcano example taken from "persp"
srfc3d> #
srfc3d> 
srfc3d> data(volcano)

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 
   1 

srfc3d> surface3d(x, y, z, color = col, back = "lines")
Warning message:
In rgl.pixels(component = "depth") : Error reading component 'depth'

rgl documentation built on Feb. 1, 2021, 3:01 a.m.