gpt4 book ai didi

c# - 使用或不使用 VSync

转载 作者:太空狗 更新时间:2023-10-29 22:12:50 32 4
gpt4 key购买 nike

我正在决定是否将 VSync 用于我一直使用 OpenGL 开发的新游戏。目标是为用户提供最佳的游戏体验,并在性能和质量之间取得良好的平衡。该游戏设计为可在较旧的(Intel/上网本)计算机和较新的(NVidia/i7 台式机)计算机上运行。但是,我知道 VSync 的目的是防止撕裂;即使关闭 VSync,我也从未能够重现这个撕裂问题。提供最佳体验;应该打开还是关闭 VSync?

最佳答案

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

  1. 如果您没有看到撕裂,则可能是垂直同步,即使您认为自己没有。原因可能各不相同,但最终,如果发生任何移动,帧中间的缓冲区交换非常明显(一个原因可能是您未配置为翻转缓冲区,因此必须执行帧缓冲区的副本)
  2. vsync on 也有明显的瑕疵。通常,它会创建显示可变时间量的帧,与显示刷新率比渲染率更相关。这会产生微小的卡顿,并且很难控制,因为您不知道生成帧时将在哪个点滴答显示,因此,您无法补偿运动伪影。这就是为什么有些人试图将他们的渲染速度锁定在刷新率上的原因。始终以 60fps(或 30fps)渲染,时间更新为 time += 16.7ms John Carmack 一直在寻求一种模式,该模式可以“以 60Hz 进行垂直同步,但如果我错过了最后期限,则不要同步”因为我认为是这个原因。
  3. 打开 vsync 可以省电(对上网本很重要)
  4. 关闭 vsync 可减少输入延迟(当您的输入在显示前 3 帧时,它可能开始变得重要)。您可以尝试弥补其中的一部分,但最终很难在最后一刻注入(inject)输入更新。

所以底线答案是没有完美的答案。这真的取决于什么对你的游戏更重要。您需要注意的事项:您想要达到的帧率、输入延迟的重要性、游戏中的移动量、功耗是否会成为一个问题。

关于c# - 使用或不使用 VSync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5923621/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com