增加R射线阴影图像的分辨率

时间:2019-11-11 07:28:15

标签: r image render rayshader

我正在尝试使用rayshader软件包制作图像。我很高兴能够使用如下代码创建png文件:

library(ggplot2)
library(rayshader)

example_plot <- 
  ggplot(data.frame(x=c(1,2,3),y=c(4,5,6),z=c(5,4,3)),aes(x=x,y=y,color=z)) + geom_point()

plot_gg(example_plot, width = 2, height = 2, multicore = TRUE, scale = 125, 
        zoom = 0.5, phi = 60, theta=-10, windowsize = c(3200, 3200), offset_edges = TRUE)

Sys.sleep(2.0)

render_depth(focus = 0.5, focallength = 100, fstop = 8, clear = TRUE,filename="example.png")

不幸的是,我不知道如何使输出图像具有更高的分辨率。我尝试过调整windowsize的值,该值在低值时可能会有所不同,但是我遇到了某种天花板,在该天花板上输出图像的分辨率不会超过1372 x893。我该怎么办才能获得输出分辨率为3200 x 3200的图像?

谢谢!

enter image description here

1 个答案:

答案 0 :(得分:2)

当前, rayshader rgl 的限制,因为它不支持大于屏幕分辨率的设备尺寸。我在1440p显示器上对其进行了测试,并能够render_snapshot()创建图像2564x1421(大约是1440p显示器的分辨率)。如果您的显示器支持更高的分辨率,则可以通过临时增加桌面分辨率来增加快照大小。否则,它目前是一个限制(请参阅此github问题):

https://github.com/tylermorganwall/rayshader/issues/28

但是,如果您有时间/耐心并且不介意它产生的图像类型略有不同,render_highquality()使用完全不同的渲染引擎,可以将其设置为任何大小的输出。调用该函数时,只需将widthheight参数设置为所需的大小即可。