Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用或不使用VSync_C#_Opengl_Opentk_Vsync - Fatal编程技术网

C# 使用或不使用VSync

C# 使用或不使用VSync,c#,opengl,opentk,vsync,C#,Opengl,Opentk,Vsync,我正在决定是否将VSync用于我一直在使用OpenGL开发的新游戏。我们的目标是为用户提供最佳的游戏体验,并在性能和质量之间取得良好的平衡。此游戏设计用于在较旧(英特尔/上网本)计算机和较新(NVidia/i7桌面)计算机上运行。然而,我知道VSync的目的是防止撕裂;即使关闭了VSync,我也无法重现这个令人撕裂的问题。提供最佳体验;VSync应该打开还是关闭?为了获得最佳的用户体验,请在菜单中放置一个选项以打开/关闭VSync。这样用户就可以决定。您可能无法复制撕裂,但在某些系统上这确实是一

我正在决定是否将VSync用于我一直在使用OpenGL开发的新游戏。我们的目标是为用户提供最佳的游戏体验,并在性能和质量之间取得良好的平衡。此游戏设计用于在较旧(英特尔/上网本)计算机和较新(NVidia/i7桌面)计算机上运行。然而,我知道VSync的目的是防止撕裂;即使关闭了VSync,我也无法重现这个令人撕裂的问题。提供最佳体验;VSync应该打开还是关闭?

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


至于什么应该是默认设置,我不确定,我想这是你的选择。我更喜欢在默认情况下关闭垂直同步,因为它在启用时会降低一点性能,而且大多数人都不知道或不关心它,但也有很好的理由在默认情况下启用它。

我认为VSync的默认设置应该是打开的(基于我所有的游戏,而不是编程经验:)。仅仅因为你没有看到它,并不意味着你不应该遵循一个好的规则 练习

  • 也许你不能像其他玩家那样盯着屏幕看
  • 也许当你看到一点点眼泪时,你并不像某些玩家那样恼火
  • 也许你的特定屏幕比其他屏幕更能隐藏撕裂

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

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

  • 如果你没有看到撕裂,你很可能是同步的,即使你认为你没有。原因可能有所不同,但最终,如果发生任何移动,帧中间的缓冲区交换非常明显(一个原因可能是,您没有被配置为翻转缓冲区,因此必须做一个帧缓冲区的拷贝)
  • vsync on也有明显的瑕疵。通常,它创建的帧显示时间可变,与显示刷新率的关系比与渲染率的关系更密切。这会造成微口吃,很难控制,因为您不知道何时生成帧,它将显示在哪个刻度,因此,您无法补偿运动伪影。这就是为什么有些人试图将渲染速度锁定为刷新率。始终以60fps(或30fps)进行渲染,时间更新为
    time+=16.7ms
    John Carmack一直要求使用一种模式,该模式可以“以60Hz进行vsync,但如果我错过了最后期限,则不同步”,我认为这就是原因
  • vsync on节省电源(在上网本上很重要)
  • vsync off减少了输入延迟(当您的输入在显示前3帧时,它就开始起作用了)。您可以尝试补偿其中的一部分,但最终,很难在最后一刻注入输入更新

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

    @schnaader:你如何解释一个不懂技术的用户这样一个选项的用途以及他们什么时候可能需要它?@Matti-大多数玩家都会意识到撕裂,有些玩家会准备接受它,因为他们从游戏中获得了额外的2%(或任何东西)的帧率。@ChrisF:什么样的玩家会在游戏机上玩netbook@Matti-哎呀!我本想回答,但当我看到这个答案时,我停止阅读(我的不好),只是回应了你的评论。@Matti:好问题,但我认为这是一个不同的问题。我看到的大多数游戏都有一个“VSync”选项,大多数甚至不使用长格式的“垂直同步”。我相信有很好的方法来解释它。你确定当你在应用程序中关闭VSync时,图形卡驱动程序无论如何都不会保持它打开吗?通常存在允许替代应用程序设置的驱动程序设置。根据我的经验,屏幕撕裂是一个很容易复制的问题。非常好的观点。作为一名游戏玩家,我必须使用VSync,因为撕裂会完全破坏游戏,但微口吃更糟糕。