当rgl.useNULL = TRUE时rgl.postscript

时间:2016-04-17 21:54:00

标签: r rgl

rgl.postscript()不应该适用于无头服务器,即选项时(rgl.useNULL = TRUE)?我知道rgl.snapshot()不起作用。

library(rgl)
options(rgl.useNULL = TRUE)
open3d()
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x, y)
plot3d(x, y, z, col = rainbow(1000))
rgl.postscript("test.pdf",fmt="pdf")

这给了我“在rgl.postscript(”test.pdf“,fmt =”pdf“):Postscript转换失败”。

1 个答案:

答案 0 :(得分:3)

在某些情况下可以这样做,但目前还没有。一个问题是,如果rgl是使用null设备启动的,它在OpenGL函数中甚至不会链接,而rgl.postscript()会使用其中的一些。

编辑:对不起,&#34;没有链接&#34;是我喜欢的。目前它确实需要链接,但它不会运行初始化代码,因此它应该在没有显示可用的上下文(例如无头服务器)中工作。

在无头服务器上,您可以将Xvfb用于&#34;虚拟帧缓冲区&#34;。我没有很多经验,但我想我已经听说它没有正确处理rgl.snapshot。我希望rgl.postscript可以工作。

原则上,您还可以在WebGL中渲染,然后使用其他工具将输出转换为所需的格式。我不知道是否存在任何此类工具。