【问题标题】:OpenGL - Objects shake when camera moves or rotatesOpenGL - 相机移动或旋转时物体抖动
【发布时间】:2012-06-21 21:48:59
【问题描述】:

我已将相机对象附加到场景中的移动对象(汽车)上。摄像头显示物体所在的区域(汽车前窗)。

我的问题是,当我的对象(带摄像头)移动或旋转时,屏幕上的对象(路灯、其他平行移动的汽车)似乎在晃动。即,我在原始对象附近看到了同一对象的实体对象和一些小的透明版本。相机改变方向时比直线移动时更容易观察到。直线移动时,灯离观察者较远时会晃动,在一定范围内会停止晃动,当靠近观察者时又会开始晃动。

我不认为 OpenGL 自己会在背景上产生运动模糊。但是我也找不到这个问题的名字,所以我找不到起点。

【问题讨论】:

  • 你的双缓冲是否正确?
  • 实际上,我正在使用 Presagis 的 LynX Prime 实用程序。我知道双缓冲(所以不要这么快降级问题)。 我觉得问题没这么简单! 但可能是这样。。我才发现,当我使用 Motion Walk 作为动作策略时,画面是流畅的,但是当我使用 Motion Game 时,物体振动。
  • 我想提供更多有关此案的信息。想想一个有一个白色边和一个深灰色边的盒子,我们看到了两面。当我靠近物体并左右移动时,物体会移动到屏幕的左右两侧,颜色会相互进入一点。我打开了应用程序和驱动程序的 vsync,并调整了驱动程序的设置以提高视觉效果。我会深入调查发布的双缓冲。
  • 根据我和一些朋友的谈话,这个话题与显示器的垂直同步和刷新率有关。我接受了这个问题,并且不会再投资于它的解决方案。
  • 这听起来不错,可以作为答案;请将您的评论移至答案并将其标记为已接受。谢谢!

标签: opengl camera simulation transformation visual-glitch


【解决方案1】:

当程序处于全屏模式时,绘制完整场景所需的时间低于 16 毫秒(对于 60 fps),那么我可以在没有物体摆动的情况下进行流畅的运动。

当绘制时间振荡过多或我将 Vega 设置为通过算法限制 fps 时,场景会振荡。

当我将交换间隔设置为1,即让底层绘制线程与屏幕刷新匹配时,就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2021-04-15
    相关资源
    最近更新 更多