为了提高应用程序的性能,我们可以缓存 2D 节点的渲染使其变为静态的在某个点或者自身很少进行渲染的时候, 使用此方法可以加速复杂节点的渲染。
当我们对2D 节点启用缓存时,该节点会为自己生成一个缓存图像,将自己渲染给它,在后面的帧渲染中使用这个生成的缓存图像而不是再次渲染自己。
因为缓存会消耗 GPU 内存,所以默认情况下它是禁用的。 当为节点禁用缓存时,Kanzi 正常渲染该节点并释放与渲染缓存关联的所有资源。
使用自动渲染缓存更新
我们可以对渲染成本高且不经常变化的复杂节点使用自动缓存更新,这样当节点或其子节点只有在渲染发生变化,例如节点内容的大小或者形状发生变化时,才会自动更新渲染缓存,没有变化的时候,不会进行渲染,显示的时当前状态的缓存图像。
如果节点是静态的,Kanzi重新创建缓存图像或者渲染当前节点用当前存在且有效的缓存图像。
如果当前渲染的节点发生变化,Kanzi会使当前缓存图像无效同时会正常渲染节点。
手动控制渲染缓存更新
如果我们明确的知道渲染缓存何时更新,或者自定义更新时机的时候,我们可以手动控制缓存更新,最简单的方法可以通过绑定Caching Mode的方式去控制何时去Disabled 何时去 Enabled,当然当逻辑比较复杂时,我们也可以通过编写Kanzi Engine 插件去控制Caching Mode。
我们也可以通过设置Cache Vaild属性来让渲染缓存无效。
Tips:使渲染缓存失效不会释放节点分配的任何资源,如果要释放与渲染缓存关联的资源,需要将缓存模式属性设置为禁用,
与本节课内容相关的Kanzi Engine 开源插件 “performanceNode”,相关视频以及插件源码资源可以从以下链接进入。
如果大家想了解更过关于Kanzi Engine plugin的更多学习信息,可以B站订阅“中科创达-智能座舱”官方号,https://space.bilibili.com/301867101/channel/series。目前内含Kanzi插件教程/Kanzi仪表教程/Kanzi零基础教程,后续会有课程陆续上新。