gpt4 book ai didi

c++ - 渲染场景后让 CPU 休息

转载 作者:太空狗 更新时间:2023-10-29 23:46:48 25 4
gpt4 key购买 nike

我读到过,让涉及渲染的 3D 程序在渲染之间休息一下是个好主意。这是真的?这会减少 CPU 负载还是无关?

如果是这样,您推荐什么方法?此外,这是否与帧率上限有关,即上限为 60 fps,如果没有时间渲染另一帧,请休息并等待,直到我们需要渲染另一帧以满足 60fps 标记。

我正在使用 OpenGL 和 C++。

最佳答案

是的,限制帧率可以减少 CPU 负载。

此外,如果您的帧率为 2000 fps,您的显示器将不会显示每一帧,通常只有 60fps。 http://en.wikipedia.org/wiki/Refresh_rate

我推荐以下方法(使用boost日期时间和线程库的代码):

#include <boost/thread.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>

long desiredFps=60;

void drawLoop() {
using namespace boost;
using namespace boost::posix_time;

ptime lastDraw = microsec_clock::universal_time();
while( true ) {
ptime now = microsec_clock::universal_time();
long diff = (now-lastDraw).total_microseconds();
long desiredDiff = 1000000/desiredFps;
if( diff < desiredDiff ) {
this_thread::sleep(microseconds(desiredDiff-diff));
}
draw();
lastDraw = now;
}
}

关于c++ - 渲染场景后让 CPU 休息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8904352/

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