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

时间:2015-03-13 17:19:17

标签: java java-3d

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

while(animationIsRunning){
    // I update positions of 2D elements here...
    // ...
    canvas3D.repaint();
    Thread.sleep((long)(1.0/30.0 * 1000));
}

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

1 个答案:

答案 0 :(得分:2)

我想我在我的案例中找到了一个解决方案:

而不是

canvas3d.repaint();

我调用

canvas3d.getView().repaint();

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