Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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# 格式限制为每秒60帧_C#_Opengl_Frame Rate - Fatal编程技术网

C# 格式限制为每秒60帧

C# 格式限制为每秒60帧,c#,opengl,frame-rate,C#,Opengl,Frame Rate,我决定将OpenGL4Net库用于我的游戏引擎。关键是我每秒只有60帧。我至少要120 这就是我用于渲染的内容: protected override void WndProc(ref Message m) { switch (m.Msg) { case Windows.WM_PAINT: App.AppInstance.Loop(); break; default: base.WndProc(ref m);

我决定将OpenGL4Net库用于我的游戏引擎。关键是我每秒只有60帧。我至少要120

这就是我用于渲染的内容:

protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case Windows.WM_PAINT: App.AppInstance.Loop(); break;
            default: base.WndProc(ref m); break;
        }
    }
在表格里。 App.AppInstance.Loop()仅用于计算FP、更新内容和渲染


帮帮我。是否可以在表格中增加fps限制?或者可能有不同的方式来渲染和更新引擎?

监视器的刷新率是多少

这个问题听起来像是启用了VSync。可以使用gl.SwapInterval(int)打开/关闭VSync。值0将关闭VSync,值1将打开VSync


VSync实际上并不是一件坏事,因为您的监视器刷新速度非常快。即使您的拍摄速度为120fps或更高,监视器也只会显示其中的60帧。

没有帮助-但我可以问一下为什么您要拍摄120fps吗?这是一个相当高的帧率拍摄…我只是想更准确的更新。在我玩的每一个限制为每秒60帧的游戏中,比如移动鼠标时都会有一个小的延迟;如果您愿意,您也可以多次运行模拟。(不知道OpenGL4Net是什么)为什么要使用WM_PAINT?那幅画是怎么寄出去的?你打开了垂直同步吗?@SimonWhitehead:有很多理由可以将目标对准非常高的帧速率。例如,虚拟现实(想想Oculus Rift)。75Hz似乎是使事物可组合所需的绝对最小值。至于延迟问题:虽然更高的帧率当然会减少绝对延迟,但相对延迟(即相对于更新间隔,图像滞后于输入的程度)取决于事件处理的结构。许多简单编写的程序的相对延迟接近1,但您希望它尽可能接近0。