我正在使用新的Qt 3D API在计算密集型计算期间显示 3D 场景。该场景仅作为对用户输入的响应而改变。但是,Qt 3D 的默认行为似乎将场景的帧速率锁定为某个较高的常数值,在这种情况下消耗的资源数量令人无法接受。
有没有办法控制 Qt 3D 中的帧速率?理想情况下,我只想在对场景进行更改时渲染一个新帧,但将其降低到较小的固定值也足够了。Qt 3D 文档很少,我一直无法找到一种方法来做这些事情。
编辑:我设法找到并将QRenderSettings::OnDemand应用于我的根节点和框架图,但它似乎没有效果,尽管这意味着它应该,因为我使用的是 Qt 5.7。对此的任何其他输入都将非常受欢迎(即使它只需要评论)。
编辑 2:安装Fraps并直接测量帧速率后,看起来场景实际上是在应用 QRenderSettings::OnDemand 的情况下仅根据需要渲染帧。没有这个,帧速率保持在稳定的 60fps,这恰好是我屏幕的刷新率。但是,在启用 Qt 3D 的情况下,该程序继续消耗大量 CPU 时间,无论是否显示 3D 窗口。我开始认为这是一个与帧速率无关的单独 Qt 3D 问题,并且可能会相应地提出一个新问题。