63. 2023-06-03周总结

  1. 篮球项目转小程序
  2. 3D项目特效优化
  3. PS插件ControlNet部分预处理器功能无法使用

1. 篮球项目转小程序

  • 通用修改
    【x】删除不必要的插件(减少编译的wasm大小)
    【x】配置表改用二进制(减少GC,加快加载速度)
    【x】使用YooAsset替换Addressable(YooAsset用着更顺手,同时打包收集策略更好点)
    【x】静态图片和动态图片整理(图集比较乱)
    【x】动态图片懒加载(改动比较大,很容易出bug)
    【x】UI框架支持资源卸载

  • webgl修改
    【x】服务器和客户端支持websocket
    【x】打webgl包测试
    【x】Http访问方式修改(webgl不支持System.Net下的Http)
    【x】资源释放
    【 】音频修改
    【x】打包小程序测试
    【x】图片压缩
    【 】优化性能
    【 】优化wasm大小

几个问题:

  1. Shader找不到问题(没有进行变体收集,之前记录过类似问题)
  2. wasm过大,目前所有优化都打开wasm还在38M左右,这个不太符合要求,计划最好能够压倒30M左右。不然ios很容易崩溃
  3. 小程序已经打出来了,但是测试某些界面还是比较卡,要逐个优化

3D项目特效优化

  1. Shader问题

大部分情况下,只用到了Shader中的少部分功能,虽然之前Shader之前加了宏,但是一些公共计算量还是带来一些性能损耗,所以提供简化版的特效Shader来减少这部分的损耗

  1. 粒子数过多

这部分还没有比较好的标准,有些粒子为了达到效果overdraw会很高,导致性能问题,这只能做个取舍。

  1. 小Mesh过多增加DrawCall

小的网格过多,我们一个云海是通过100多个小Prefab组成,导致平白增加了很多DrawCall。通过网格合并减少这一部分的开销。

PS插件ControlNet部分预处理器功能无法使用

PS插件ControlNet部分预处理无法使用,看了下因为不同的预处理器需要的参数不一样,参数传递不对的时候会导致预处理器无法工作。

api接口/controlnet/module_list返回预处理器列表的同时,每个预处理器需要的参数也都会传递回来,可以根据返回的参数对每个预处理器的UI进行适配。