From b73da8d70243507398fe028743c4d2cba992b7ad Mon Sep 17 00:00:00 2001 From: zzzisfunnyboy <7838555+zzzisfunnyboy@user.noreply.gitee.com> Date: Sun, 10 Aug 2025 23:44:07 +0800 Subject: [PATCH] =?UTF-8?q?8.10=20=E5=AE=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1Project/理财.md | 16 +++++ 3Resources/游戏开发/性能优化/性能优化-面试.md | 66 +++++++++++-------- 2 files changed, 53 insertions(+), 29 deletions(-) create mode 100644 1Project/理财.md diff --git a/1Project/理财.md b/1Project/理财.md new file mode 100644 index 0000000..5bab6a1 --- /dev/null +++ b/1Project/理财.md @@ -0,0 +1,16 @@ + +- 整理 + - 每个月的计划 + - 收入 + - 主动收入:工作 + - 被动收入:投资基金等收入 + - 支出 + - 固定支出:吃住行 + - 弹性支出:娱乐开销等 + - 做两张借记卡,一张存固定支出的钱,一张存弹性支出的钱,剩下的钱拿去理财 + +- 信用卡每月需要做 + - + +- 股票怎么玩 + - \ No newline at end of file diff --git a/3Resources/游戏开发/性能优化/性能优化-面试.md b/3Resources/游戏开发/性能优化/性能优化-面试.md index c1a57b9..7254438 100644 --- a/3Resources/游戏开发/性能优化/性能优化-面试.md +++ b/3Resources/游戏开发/性能优化/性能优化-面试.md @@ -1,31 +1,39 @@ -- UGUI - - 降低UI刷新的频次 - - HUD刷新 - - 可以在代码逻辑中做一定的延迟 - - 颜色不同会导致无法合批 - - 可以用MaterialPropertyBlock解决 - - Canvas下**网格的变化**会引起**Canvas.BuildBatch的调用** - - 解決 - - 減少Canvas下网格顶点的变换,例如UI元素的**Transform变动** - - FGUI的处理方式 - - 自动合并相邻组件 - - UGUI无法做到的原因是因为依赖底层的动态合并以及静态合并,但FGUI只处理UI - - 顶点数据重组 - - 将多个组件的顶点UV颜色数据合并到单个顶点缓冲区,一次性提交到GPU - - 文本处理: - - 将某几个字的纹理和图片的纹理打到同一个图集 - - 动态变更字体的时候,往图集里更新新的字体,避免发生材质重建 - - 颗粒度不同 - - UGUI的Canvas下元素被设置Dirty后会导致整个CanvasReBuild - - FGUI的局部更新更高效 - - TextMeshPro - - +# UGUI优化 +- HUD刷新 + - 可以在代码逻辑中做一定的延迟 +- 颜色不同导致无法合批 + - 可以用MaterialPropertyBlock解决 + - UGUI的shader中虽然有顶点颜色,但是却从来没有使用过,提交顶点颜色也依赖CanvasRender,无法使用顶点色 +- Canvas下**网格的变化**会引起**Canvas.BuildBatch的调用** + - 減少Canvas下网格顶点的变换,例如UI元素的**Transform变动** - 合并批次 - - 问题 - - **无法合批**的情况 - - 不同Canvas|图集交叉|深度交叉 - - 同一个Canvas,同一图集深度,但无法合批的情况 - - **动态合批未通过:超过顶点限制,缩放不为1** - - 对于Alpha为0的Image,需要勾选其CanvasRender组件上的Cull Transparent Mesh选项,否则依然会产生DrawCall且容易打断合批。 + - **无法合批**的情况 + - 不同Canvas|图集交叉|深度交叉 + - 同一个Canvas,同一图集深度,但无法合批的情况 + - **动态合批未通过:超过顶点限制,缩放不为1** + - 对于Alpha为0的Image,需要勾选其CanvasRender组件上的Cull Transparent Mesh选项,否则依然会产生DrawCall且容易打断合批。 -- \ No newline at end of file +- FGUI的处理方式 + - 自动合并相邻组件 + - UGUI无法做到的原因是因为依赖底层的动态合并以及静态合并,但FGUI只处理UI + - 顶点数据重组 + - 将多个组件的顶点UV颜色数据合并到单个顶点缓冲区,一次性提交到GPU + - 文本处理: + - 将某几个字的纹理和图片的纹理打到同一个图集 + - 动态变更字体的时候,往图集里更新新的字体,避免发生材质重建 + - 颗粒度不同 + - UGUI的Canvas下元素被设置Dirty后会导致整个CanvasReBuild + - FGUI的局部更新更高效 + +## 改变颜色是否能合批的本质原因 +- UGUI 将颜色存储在材质属性层级 ++ FGUI 将颜色存储在顶点数据层级 + +## FGUI的字体与图片合批 +- FGUI的字体图片合批 + 本质是Texture2DArray,字体纹理与图集纹理形成 + - 字符纹理生成 + - 与动态图集差不多 + - 申请一张512\*512的贴图 + - 如果动态图集里没有这个字的图,调用系统字体渲染API + - 写入数据兵返回uv顶点数据 \ No newline at end of file