Избегайте мерцания с LWJGL - PullRequest
2 голосов
/ 22 августа 2010

В контексте приложения Cube Java Rubik я пытаюсь анимировать действия куба, выполняемые конечным пользователем.

Для этого я просто использую повороты и много перерисовок следующим образом:

GL11.glRotatef(zRotate, 0.0f, 0.0f, 1.0f);

переменная zRotate имеет значение от 0 до 90, и я выполняю перерисовки каждые 20 миллисекунд.

Работает отлично, но я вижу мерцание на экране. Как мне этого избежать?

Ответы [ 3 ]

1 голос
/ 24 августа 2010

Решением было добавить стиль SWT.NO_BACKGROUND в создание холста Opengl.

1 голос
/ 22 августа 2010

Согласно этой теме , Вы можете вызвать Display.setVSyncEnabled(true); при инициализации.

0 голосов
/ 22 августа 2010

Использовать двойную буферизацию.

http://en.wikipedia.org/wiki/Double_buffer#Double_buffering_in_computer_graphics

У меня нет опыта работы с LWJGL, но обычная техника - рисовать растровое изображение и перерисовывать экран / окно растровым изображением за один шаг.

...