为什么调用Canvas3D.repaint()时Java3D画布会闪烁

为什么调用Canvas3D.repaint()时Java3D画布会闪烁,java,java-3d,Java,Java 3d,我在Java3D画布上使用postRender()绘制2D元素,并希望为这些元素设置动画。在一个循环中,我调用Canvas3D.repaint(): 对于每个短动画,这会导致整个3D画布闪烁一次或两次。我想我找到了一个解决方案: 而不是 canvas3d.repaint(); 我援引 canvas3d.getView().repaint(); 这样,我可以用高帧率更新动画,而不会闪烁。是否启用了双缓冲?是的,它已启用,但没有帮助。文档中说,不能使用postdrender()。这可能是这里的问

我在Java3D画布上使用postRender()绘制2D元素,并希望为这些元素设置动画。在一个循环中,我调用Canvas3D.repaint():


对于每个短动画,这会导致整个3D画布闪烁一次或两次。

我想我找到了一个解决方案:

而不是

canvas3d.repaint();
我援引

canvas3d.getView().repaint();

这样,我可以用高帧率更新动画,而不会闪烁。

是否启用了双缓冲?是的,它已启用,但没有帮助。文档中说,不能使用
postdrender()
。这可能是这里的问题。根据一些经验,这里有一个粗略的猜测:尝试添加
System.setProperty(“sun.awt.noerasebackground”,“true”)
作为
main
方法的第一行。
canvas3d.getView().repaint();