【发布时间】:2018-01-05 21:17:52
【问题描述】:
我需要渲染许多(数百个)具有不同变换的类似球体和圆柱体。目前这是通过创建数百个相同的QEntity 对象来实现的。结果是应用不断消耗 20..70% 的 CPU —— 即使场景静止。
小部件是否有默认的更新事件源?如果有,我可以关闭它或降低它的频率吗?除了 Qt3D 小部件之外,似乎没有其他 CPU 负载来源。
【问题讨论】:
我需要渲染许多(数百个)具有不同变换的类似球体和圆柱体。目前这是通过创建数百个相同的QEntity 对象来实现的。结果是应用不断消耗 20..70% 的 CPU —— 即使场景静止。
小部件是否有默认的更新事件源?如果有,我可以关闭它或降低它的频率吗?除了 Qt3D 小部件之外,似乎没有其他 CPU 负载来源。
【问题讨论】:
你看过QRenderSettings类的enum吗?看来您可以将渲染策略设置为 OnDemand,这会导致 Qt 仅在发生变化时渲染场景。
或者,如果您不需要与场景交互,您可以查看我对offline renderer 的实现。每当您设置根实体时,底层QAspectEngine 就会启动和停止。您可以设置根实体,捕获帧并取消设置根实体,从而导致图形循环停止,这会导致 CPU 负载减少。
【讨论】: