为什么调用 Canvas3D.repaint() 时 Java3D canvas 会闪烁
Why does the Java3D canvas flicker when I call Canvas3D.repaint()
我在 Java3D canvas 上使用 postRender() 绘制了 2D 元素,并希望为这些元素设置动画。在循环中我调用 Canvas3D.repaint():
while(animationIsRunning){
// I update positions of 2D elements here...
// ...
canvas3D.repaint();
Thread.sleep((long)(1.0/30.0 * 1000));
}
对于每个短动画,这会导致整个 3D canvas 闪烁一次或两次。
我想我找到了解决方案:
而不是
canvas3d.repaint();
我调用
canvas3d.getView().repaint();
这样我就可以在不闪烁的情况下以高帧率更新我的动画。
我在 Java3D canvas 上使用 postRender() 绘制了 2D 元素,并希望为这些元素设置动画。在循环中我调用 Canvas3D.repaint():
while(animationIsRunning){
// I update positions of 2D elements here...
// ...
canvas3D.repaint();
Thread.sleep((long)(1.0/30.0 * 1000));
}
对于每个短动画,这会导致整个 3D canvas 闪烁一次或两次。
我想我找到了解决方案:
而不是
canvas3d.repaint();
我调用
canvas3d.getView().repaint();
这样我就可以在不闪烁的情况下以高帧率更新我的动画。