首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用或不使用VSync

使用或不使用VSync
EN

Stack Overflow用户
提问于 2011-05-08 03:51:41
回答 3查看 3.4K关注 0票数 5

我正在决定是否在我用OpenGL开发的新游戏中使用VSync。目标是为用户提供最佳的游戏体验,并在性能和质量之间取得良好的平衡。这款游戏可以在老款(英特尔/上网本)电脑和新款(NVidia/i7台式机)电脑上运行。我知道VSync的目的是防止撕裂,然而,即使在关闭VSync的情况下,我也从未能够重现这种撕裂问题。为了提供最佳体验,应该打开还是关闭VSync?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-08 05:11:49

关于这个问题,有很多事情可以说。让我来数一数:

  1. 如果你没有看到撕裂,即使你认为你没有,你也很可能已经被vsync了。原因可能有所不同,但最终,如果发生任何移动,在帧中间交换缓冲区是非常明显的(一个原因可能是您没有配置翻转缓冲区,所以必须执行的操作framebuffer)
  2. vsync的副本也有明显的伪像。通常,它会创建显示时间可变的帧,这与显示刷新率的关系比与渲染速率的关系更密切。这会造成微卡顿,并且很难控制,因为你不知道什么时候生成帧,它将显示在哪个节拍上,所以,你无法补偿运动伪影。这就是为什么有些人试图将渲染速度锁定在刷新率上。始终渲染在60fps (或30fps),时间更新是time += 16.7ms约翰·卡马克一直要求的模式,做"vsync在60 it,但不要同步,如果我错过了最后期限“,我认为这将是这个原因。
  3. vsync on节省能源(重要的是关闭vsync可以减少输入延迟(当你的输入是显示前的3帧时,它可能会开始变得重要)。您可以尝试补偿其中的一部分,但最终很难在最后一分钟注入输入更新。

所以底线答案是没有完美的答案。这真的取决于什么对你的游戏更重要。你需要注意的是:你想要达到哪个帧率,输入延迟有多重要,游戏中有多少移动,电力是否会成为一个问题。

票数 9
EN

Stack Overflow用户

发布于 2011-05-08 03:55:15

为获得最佳用户体验,请在菜单中放置一个选项以打开/关闭VSync。这样用户就可以做出决定了。您可能无法重现撕裂,但这在某些系统上肯定是一个真正的问题。

至于什么应该是默认设置,我不确定,我认为这是你的选择。我更喜欢在默认情况下关闭垂直同步,因为它在启用时会降低性能,而且大多数人不会意识到这种撕裂或不关心它,但也有充分的理由在默认情况下启用它。

票数 4
EN

Stack Overflow用户

发布于 2011-05-08 04:04:06

我认为VSync的默认值应该是开的(基于我所有的游戏经验,而不是编程经验:)。仅仅因为你看不到它,并不意味着你不应该遵循一个好的实践。

  • 也许你不能像其他玩家那样仔细地盯着屏幕
  • 也许当你看到一滴泪水时你不会像一些玩家那样恼火
  • 也许你的特定屏幕比其他屏幕更好地隐藏了撕裂

正如schanaader提到的,通常游戏会在视频设置菜单中的某个地方保留vsync作为配置选项。对于那些不知道vsync是什么意思的人来说,默认值应该仍然是“开”的,如果用户足够了解,他们可以选择调整它,看看有什么不同

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5923621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档