• 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

  • 相关阅读:
    从头学pytorch(二十一):全连接网络dense net
    Linux环境实现python远程可视编程
    centos7安装Anaconda3
    sql语句中包含引号处理方法
    syslog 日志
    python 判断是否为中文
    numpy简介
    django之模板显示静态文件
    Linux(Ubuntu)安装libpcap
    Bug预防体系
  • 原文地址:https://www.cnblogs.com/Shaojunping/p/15534236.html
Copyright © 2020-2023  润新知