代码改变世界

umg优化

2022-09-14 22:16  kk20161206  阅读(124)  评论(0编辑  收藏  举报
  1. 如果你的hud大部分是静态的,invalidation会很有用。我们将迷你地图记为可变的,因为它需要以高帧率运行。在虚幻争霸里,由于小地图有许多东西,我们将小地图放到限位器里面,渲染帧率为30hz。将每个ratainer panel放在单独帧上绘制,避免所有ui布局发生在同一帧上。能限制帧率为30hz。但缺点是重新渲染时的开销很大。限位器将整个树折叠成单个纹理。它们还支持基于阶段的渲染和有帧率限制的渲染,这意味着每个限位器都可以在单独帧上绘制,避免所有UI布局发生于同一帧上。例如,你可在一帧上绘制小地图,然后在另一帧上绘制血条。你还可以降低限位器的渲染频率,比如以30帧/秒的速度来渲染小地图,而不是60帧/秒。利用基于阶段的渲染,它们可以通过限制同一帧上的重绘次数来减少绘制调用。而缺点是,重新渲染时的开销很大,所以一定要注意。同时,由于它们有各自的渲染目标,因此内存耗用会更多。此外,它们也遇到了4.25版之前的无效面板所遭遇的问题。我们在移动硬件上使用它们,但是我们还是更喜欢先用无效面板。

  2. 无效面板缺点是当一个控件元件失效时,无效面板的整个树都将重新布局和渲染。

  3. 消除每帧tick,蓝图里的tick。蓝图只用于基于事件的逻辑或者短暂的动画。

  4. 消除绑定属性的使用。