在Java Rubik's Cube应用程序的上下文中,我试图为最终用户执行的多维数据集操作设置动画效果。避免使用LWJGL闪烁
要做到这一点,我只是用旋转和许多重绘如下:
GL11.glRotatef(zRotate, 0.0f, 0.0f, 1.0f);
的zRotate变量icremented从0到90,我进行重绘每20毫秒。
它完美的作品,但我看到在屏幕上闪烁..我怎样才能避免这种情况?
在Java Rubik's Cube应用程序的上下文中,我试图为最终用户执行的多维数据集操作设置动画效果。避免使用LWJGL闪烁
要做到这一点,我只是用旋转和许多重绘如下:
GL11.glRotatef(zRotate, 0.0f, 0.0f, 1.0f);
的zRotate变量icremented从0到90,我进行重绘每20毫秒。
它完美的作品,但我看到在屏幕上闪烁..我怎样才能避免这种情况?
解决方法是在Opengl画布创建中添加SWT.NO_BACKGROUND样式。
根据this thread,您可以在初始化过程中调用Display.setVSyncEnabled(true);
。
使用双缓冲。
http://en.wikipedia.org/wiki/Double_buffer#Double_buffering_in_computer_graphics
我没有与任何LWJGL经验,但一个共同的技术是绘制成位图,并重绘与位图的屏幕/窗口,一步到位。
没有vsync,这也可能导致闪烁。 – Rekin 2010-08-22 18:11:50
LWJGL默认使用双缓冲工作,所以您不必担心这一点。 (http://lwjgl.org/forum/index.php?topic=1187.0) – 2010-08-23 07:18:32