Skip to content

OpenTK 入门 Vsync 垂直同步对刷新率的影响

Updated: at 08:22,Created: at 00:46

本文将和大家介绍 Vsync 垂直同步的开启对 OpenTK 应用的刷新率的影响

在上一篇博客 OpenTK 入门 初始化窗口 告诉了大家如何初始化 OpenTK 承载 OpenGL 的窗口的应用,在上一篇博客基础上,咱尝试修改创建 MainWindow 的参数,从而测试 Vsync 垂直同步对刷新率的影响

回顾上一篇博客提到的代码,创建窗口的时候设置了两个重要参数,分别是 RenderFrequency 和 Vsync 参数

static void Main(string[] args)
{
var mainWindow = new MainWindow(new GameWindowSettings()
{
RenderFrequency = 0,
}, new NativeWindowSettings()
{
Size = new Vector2i(1000, 1000 / 2),
Title = "OpenTK",
Vsync = VSyncMode.Off
});
mainWindow.Run();
}

在上一篇博客将 FPS 打在了窗口标题上,运行代码可以看到窗口在不断刷新。在我的电脑上以上代码运行的 FPS 能到 1000 以上

在 OpenTK 里面的 RenderFrequency 表示渲染的频率,设置为 0 表示让 OpenGL 以尽可能快的速度进行刷新。设置 Vsync 为关闭即可关闭垂直同步

接下来尝试修改一下参数,使用以下代码关闭垂直同步

internal class Program
{
static void Main(string[] args)
{
var mainWindow = new MainWindow(new GameWindowSettings()
{
RenderFrequency = 0,
}, new NativeWindowSettings()
{
Size = new Vector2i(1000, 1000 / 2),
Title = "OpenTK",
Vsync = VSyncMode.On
});
mainWindow.Run();
}
}

开启垂直同步之后,可以看到窗口标题上的 FPS 只能到 60 左右。但是开启之后在我的电脑上的整体效果会更好一些

本文以上代码放在githubgitee 欢迎访问

可以通过如下方式获取源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到代码

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 6b04d4bc03c379f776ac4d372833ca1118cb9343

以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 6b04d4bc03c379f776ac4d372833ca1118cb9343

获取代码之后,进入 NaeawurcaDowhemcenunalfe 文件夹


知识共享许可协议

原文链接: http://blog.lindexi.com/post/OpenTK-%E5%85%A5%E9%97%A8-Vsync-%E5%9E%82%E7%9B%B4%E5%90%8C%E6%AD%A5%E5%AF%B9%E5%88%B7%E6%96%B0%E7%8E%87%E7%9A%84%E5%BD%B1%E5%93%8D

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系