Вы не можете этого сделать.Есть способы скрыть цикл удаления / перерисовки, но ни один из них не экономит память или время.
Таким образом, ваш общий подход должен выглядеть примерно так:
library(rgl)
open3d()
xyz <- cbind(x = c(0,1,1,0,2,3,3,2), y = 0, z = c(0,0,1,1))
quads <- quads3d(xyz, col = rainbow(8))
saveSkip <- par3d(skipRedraw = TRUE)
pop3d(id = quads)
quads <- quads3d(xyz, col = terrain.colors(8))
par3d(saveSkip)
Это будет близко ккак можно быстрее, не заходя в C ++ и не изменяя исходный код.