如何 remove/reduce rgl 图中球体的光泽度

how to remove/reduce shininess of spheres in rgl plot

我有以下数据框:

df <- data.frame(x=c(1,3,-3,-2), y=c(2,5,2,1),z=c(1,7,4,1))

我使用以下 rgl 代码:

library(rgl)
open3d()
plot3d(df,col=3,type="p", radius=0.5)
plot3d(df,col=rgb(1,0,0.3),alpha=0.5, add=T,type="s",radius=1)

并得到以下内容:

现在,我喜欢我的身材,但想减少gloss/shininess(甚至完全消除它)。它占用了我太多的绘图角色。我该怎么做?

我尝试将光泽度作为参数传递,虽然它有些帮助,但并没有完全消除它。即使光泽度为128(最大值),它也没有完全摆脱它。

library(rgl)
open3d()
plot3d(df,col=3,type="p", radius=0.5)
plot3d(df,col=rgb(1,0,0.3),alpha=.3, add=T,type="s",radius=1, shininess=128)

然后我得到:

我能否完全去除光泽,或者至少以一种几乎不存在的方式去除光泽?

如果将 specular material 颜色设置为黑色,您将看不到任何光泽。更极端的版本是将 lit 设置为 FALSE。例如,这里的球体是用 specular = "black":

绘制的

黑点是你画的点。在这里,它们是用 lit = FALSE:

绘制的

这消除了人们用于深度感知的重要线索,因此我不推荐它。

编辑添加:如果您正在绘制透明球体,我推荐的另一件事是:添加 back = "cull"。否则,在某些旋转中,球体的正面和背面之间会出现奇怪的相互作用。