当我让我的程序只使用0-2%cpu(删除了一些CPU密集型opengl函数)时,我的鼠标坐标开始滞后!当我使用100%CPU时(启用opengl功能时)我得到漂亮而流畅的鼠标坐标,请注意opengl函数对我的鼠标坐标没有任何作用。看下面的图像我用鼠标坐标记录了我的旋转函数值:
这是100%的CPU使用率(应该看起来): no lag http://img15.imageshack.us/img15/1304/mousecursorsmoothcoords.png
-
这是2%的CPU使用率: lag http://img5.imageshack.us/img5/5514/mousecursorlaggedcoords.png
这真是烦人的问题,因为我使用鼠标光标位置来改变旋转角度,并且在上面的图像情况下,它看起来真的是滞后旋转。
我或许可以进行插值或其他操作,但我想知道导致这种情况的原因以及解决方法。
我正在使用WM_MOUSEMOVE消息获取鼠标坐标,并且我还尝试在旋转代码之前的每一帧上使用GetCursorPos(),但它没有区别。
编辑:我注意到CPU使用率不必100%才能顺利进行,但CPU只需要“唤醒”即使CPU使用率很低也能保持平稳。
答案 0 :(得分:1)
您的第二张图表似乎是“聚合”更新。 Y轴上的跳跃似乎在X轴上处于固定频率。
猜测:
答案 1 :(得分:0)