zoukankan      html  css  js  c++  java
  • slate AAA优化

    1.  ui frame的3部分

    1.  hud

     缓存

     2. draw window

     widget树的层级的上面和下面都要计算。

    (1)弄平

     递归调用每个容器,容器包容器包容器,递归进入容器

    更多的代码要执行,更多的表要查询,cpu缓存没有命中,修改:

     widget tree是代码执行这些widget的task graph的表示

    更少层 更少的函数调用 更少的递归

    (2)hittestInvisible和selfHittestInvisible而不是visible。widget不加入hittest grid,子孙不被hittest。

    (3)删掉tick函数,事件驱动

    3. slate prepass

     

     widget geometry影响它层级向上的和向下的。

    (1)用collapse代替hidden,去掉整个task graph分支。

     hidden还有geometry,还有重新计算它和它的子孙的geometry。

     (2)invalidation box

     容器 缓存geometry和可见性。有时有问题,用代码解决。

    4.高级ui

     用smeshWidget直接用材质渲染2d mesh。

     instance

     在render batch,你可以用一个渲染的instance数量去渲染一个mesh的多个instance,把那个buffer传给材质shader。在一个buffer里渲染许多instance。

    用于粒子发射器

     在gpu上渲染的。

    相同的widget用instance,如图,小地图中的同样的icon:

     render geometry是gpu控制的,不需要prepass。

    相比普通的,减少了层数,发送的render command数目。

     用在所有的复杂widget上。同样东西多个widget或持续移动的东西。

     不能用sequence工具。不同的工作流,在shader里layout。美术要依赖程序去改这些bespoke 定制的widget。

    5. 总结

    https://www.youtube.com/watch?v=OyY3OYbNK7s

  • 相关阅读:
    构建之法阅读笔记03
    12.16第三周总结
    构建之法阅读笔记02
    12.9第二周周总结
    四则运算2
    构建之法阅读笔记01
    12.2第一周总结
    课堂练习-增加信息
    软件工程00
    web自动化测试---web页面元素的定位
  • 原文地址:https://www.cnblogs.com/Shaojunping/p/15534236.html
Copyright © 2011-2022 走看看