Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.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++ 外部限制程序的帧速率_C++_C_Windows_Frame Rate - Fatal编程技术网

C++ 外部限制程序的帧速率

C++ 外部限制程序的帧速率,c++,c,windows,frame-rate,C++,C,Windows,Frame Rate,试图找到一种方法,以类似于VSync的方式从外部限制程序/游戏的帧速率,但限制为指定的数字(而不是屏幕刷新率)。我的目标的一个完美例子可以在FRAPS中看到,当录制视频时,帧速率仅限于录制速率。这是因为快节奏游戏的图形强度不高,无法阻止由帧速率大幅变化引起的“屏幕延迟”,但VSync并不适合,因为它会奇怪地增加键盘/鼠标之间的延迟(两者都以高速率轮询,因此不是硬件问题) 在C/++中寻找一些理想的建议,老实说,我不确定从哪里开始。我不确定您是否理解您的问题 FPS游戏的操作方式是,它绘制屏幕,执

试图找到一种方法,以类似于VSync的方式从外部限制程序/游戏的帧速率,但限制为指定的数字(而不是屏幕刷新率)。我的目标的一个完美例子可以在FRAPS中看到,当录制视频时,帧速率仅限于录制速率。这是因为快节奏游戏的图形强度不高,无法阻止由帧速率大幅变化引起的“屏幕延迟”,但VSync并不适合,因为它会奇怪地增加键盘/鼠标之间的延迟(两者都以高速率轮询,因此不是硬件问题)

在C/++中寻找一些理想的建议,老实说,我不确定从哪里开始。

我不确定您是否理解您的问题

FPS游戏的操作方式是,它绘制屏幕,执行键盘/鼠标/etc处理和游戏逻辑,然后再次绘制屏幕。在一个紧密的循环中

它绘制屏幕的速度越快(这主要是图形适配器的问题),完成逻辑工作的速度越快,帧速率就越快。因为这就是正在发生的一切

帧速率不会降低处理速度,相反。如果您在屏幕绘制之间暂停,您的CPU运行会稍微冷却一点,但不会完成其他任何事情


换言之:帧速率是一种结果,而不是原因。你的电脑每一微秒都在做屏幕更新,因为它没有更好的事情可做

当你看到延迟时,你的电脑真的陷入了巨大的内存移动、磁盘读取、屏幕计算(想想有1000个敌人向你飞来)或互联网延迟的困扰。延迟不是由屏幕重新绘制引起的


更新:


我很难相信你说的话,但我只是这里的回答者。如果你真的想降低帧速率,给你的CPU做点什么。运行Linux内核编译。不,等等,gamez=Windowz。调出Calc.exe并向科学模式询问大数的阶乘。看看会发生什么。如果帧速率没有下降,那么使用2到3个并行的Calc实例来实现。

(开源)为演示做了这项工作。我不知道是否可以为你的目的修改。它创建了一个代理视频驱动程序,但它可能太难处理。

使用线程API将游戏线程暂停几毫秒,然后恢复它们。并对此进行了详细说明。

谢谢您的回复。我理解图形是如何处理的,但是我正在玩的游戏(GunZ)在每秒250-350帧的速度范围之外出现了严重的问题。如果高于或低于这个数字,游戏会感觉非常迟钝,当我启用VSync时,实际执行任何操作都需要花费0.5秒的时间。希望这能让我对我奇怪的请求有更多的了解:)我希望我有你的问题!如果达到每秒60帧,我的系统运行良好。因为任何超过80 FPS的速度对一个快速的眼睛来说都是完全不可分辨的,因此浪费了CPU/GPU的能量,我认为任何需要250 FPS的软件都是严重损坏的。在现代游戏中,我的系统在达到5 FPS以上的速度时有问题,这个游戏是多年前开发的。我想我理解你的意思,但游戏确实有这样的效果,我的牌超过了500,很难让它达到我想要的,不管它是否合乎逻辑,它发生了,打卡不足有帮助,但却是一种烦恼。至于帧速率的巨大变化,问问任何玩家,从150到75 fps下降会有什么效果,你会看到这种变化,因为计算是基于帧速率的(至少,在这个游戏中以及我玩过的大多数游戏中都是如此)。好吧,我们说的是一个场景更新计算执行得很差的游戏。您是否了解我的更新和降低CPU速度的建议?我不寒而栗地提出这一点,但它实际上可能会帮助你在一个非常温和的努力投资的游戏体验。奥雷奥米加,如果欠时钟工作,使用一个简单的“慢下来”实用程序。如果您在实现该功能时遇到问题,请将问题提交给超级用户。谢谢您的回复,我将查看代码,看看我能推断出什么。