如何防止Qt3D窗口自我更新?

时间:2018-01-05 21:17:52

标签: qt qt3d

我需要使用不同的变换渲染大量(数百个)相似的球体和圆柱体。目前,这是通过创建数百个相同的QEntity对象来实现的。结果是应用程序不断消耗20%-70%的CPU - 即使场景仍然存在。

是否存在窗口小部件的默认更新事件源?如果有,我可以将其关闭或降低频率吗?似乎没有其他CPU负载来源,而是Qt3D小部件。

1 个答案:

答案 0 :(得分:2)

你看过QRenderSettings班的enum了吗?看起来您可以将渲染策略设置为OnDemand,这会导致Qt仅在某些内容发生变化时渲染场景。

或者,如果您不需要与场景进行互动,您可以查看我对offline renderer的实施情况。每当您设置根实体时,基础QAspectEngine就会启动和停止。您可以设置根实体,捕获帧并取消设置根实体,从而导致图形循环停止,这将导致我猜测的CPU负载减少。