2015-03-13 4 views
1

У меня есть 2D-элементы, которые я рисую с помощью postRender() на холсте Java3D и хочу анимировать эти элементы. В цикле я называю Canvas3D.repaint():Почему холст Java3D мерцает, когда я вызываю Canvas3D.repaint()

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

Для каждой короткой анимации, это приводит к тому, весь 3D холст мерцать один или два раза.

+1

Вы включили функцию двойной буферизации? – Obicere

+0

Да, он включен, не помог. – Codev

+0

В документации указано, что использование 'postRender()' не должно выполняться. Это может быть проблемой здесь. – Obicere

ответ

2

Я думаю, я нашел решение в моем случае:

Вместо

canvas3d.repaint(); 

Я призываю

canvas3d.getView().repaint(); 

Таким образом я могу обновить свою анимацию с высокой частотой кадров без мерцания.

 Смежные вопросы

  • Нет связанных вопросов^_^