18.Unity性能分析工具-Profiler窗口RealtimeGI
18.1 知识点
Realtime GI是什么
Realtime GI(实时全局光照)模块用于排查项目中实时全局光照系统的运行时性能开销,展示 CPU 侧用于 Realtime GI 的探针更新、任务调度、环境光照解算等子系统的耗时情况。
注意:
- 不同 Unity 版本底层使用的光照系统可能不同
- 想要该模块记录数据,需要在 Unity 中开启实时全局光照功能
- 路径:Window → Rendering → Lighting 中开启

Realtime GI中各参数功能的含义和作用
实时全局光照(Realtime GI)性能分析视图

- Light Probe(光照探针):光照探针相关计算总耗时。如果你使用了大量动态物体与光照探针混合,耗时可能升高
- Setup(设置):光照系统每帧的设置初始化阶段,包括检测哪些网格、材质或光照发生了变化
- Environment(环境光照):对全局环境数据的处理,比如环境光、间接光设置的变化。大场景或频繁变更环境参数时可能消耗大
- Input Lighting(输入光照数据):传入光照系统的阶段,包括静态光源、动态发光材质、光探针灯光等
- Systems(系统处理):光照系统内部系统数据结构更新(场景结构)。多用于动态场景结构变化时,比如加载/卸载物体、地形修改等
- Solve Tasks(解算任务):光照系统实际求解任务的耗时(核心计算阶段)。是影响性能最关键的部分,包括反射、间接光反弹计算等等
- Dynamic Objects(动态物体):与动态物体(非静态)交互的光照数据处理。比如动态发光物体、玩家、移动平台等与场景间的光照互相影响
- Other Commands(其它命令):其他杂项指令的耗时。一般不需要重点关注,除非此项异常高
- Blocked Command Write(写入阻塞命令):表示光照系统请求写入数据(例如更新 GI 网格)时被阻塞了。可能是主线程、Job 系统冲突等问题。若此项频繁 >1ms,可能影响帧率
实时全局光照(Realtime GI)详细信息

- Total CPU:本帧光照系统(Realtime GI)在 CPU 上总共消耗的时间
- Light Probe:与光照探针(Light Probes)相关的计算耗时
- Setup:光照系统初始化本帧需要处理的数据阶段,如变更检测、场景结构分析等
- Environment:环境光照相关的处理(如天空盒光照等)
- Input Lighting:收集所有光源、发光材质输入数据传给光照系统的时间
- Systems:光照系统中管理场景光照传播的系统结构处理耗时(如场景加载或结构变更时)
- Solve Tasks:光照核心求解阶段,是计算间接光照、反射等最耗性能的部分
- Dynamic Objects:动态物体(非静态)参与全局光照的计算耗时,如动态发光物体、玩家角色等
- Time Between Updates:光照系统两次更新之间的时间间隔(非帧间隔),用于内部节奏控制
- Other Commands:其他零散命令的耗时,通常不重要,除非异常高
- Blocked Command Write:光照系统写入数据到系统时被阻塞的耗时。如果不为 0,说明性能瓶颈可能在同步阶段
- Blocked Buffer Writes:被阻塞的缓冲区写入次数。正常应为 0
- Total Light Probes:场景中存在的光照探针总数量(用于动态物体光照混合)
- Solved Light Probes:本帧中实际求解(更新)的光照探针数量
- Probe Sets:当前光照探针分组数量(用于优化 GI 更新效率)
- Systems:当前启用的光照系统实例数量(每个光照区域或子场景可能算一个)
- Pending Material GPU Renders:等待在 GPU 上进行材质处理的数量
- Pending Material Updates:等待进行材质更新的材质数量
重点关注对象:
- Solve Tasks(光照核心求解阶段):是否每帧都执行并且耗时过高。建议转为静态光照或减少动态发光物体
- Dynamic Objects:动态物体是否频繁导致光照更新。让动态物体远离 GI 区域或使用 Light Probe 替代
- Blocked Command Write:是否为 0。非零说明 Enlighten 写入数据被阻塞,可能导致卡顿
- Pending Material Updates:避免每帧改材质参数
Realtime GI对于我们的意义
需要注意的是,该模块对于我们的意义取决于项目中是否启用了 Unity 实时全局光照系统。
如果启用了,那么它可以帮助我们:
- 评估实时全局光照的性能开销
- 做出是否保留实时光照的决策
- 针对特定平台做有针对性的优化
- 等等
18.2 知识点代码
Lesson18_Unity性能分析工具_Profiler窗口RealtimeGI.cs
public class Lesson18_Unity性能分析工具_Profiler窗口RealtimeGI
{
#region 知识点一 Realtime GI是什么
/*
* Realtime GI(实时全局光照)模块
* - 用于排查项目中实时全局光照系统的运行时性能开销
* - 展示 CPU 侧用于 Realtime GI 的探针更新、任务调度、环境光照解算等子系统的耗时情况
*
* 注意:
* - 不同 Unity 版本底层使用的光照系统可能不同
* - 想要该模块记录数据,需要在 Unity 中开启实时全局光照功能
* - 路径:Window → Rendering → Lighting 中开启
*/
#endregion
#region 知识点二 Realtime GI中各参数功能的含义和作用
/*
* 界面参数功能:
* - 在思维导图中讲解
*/
#endregion
#region 知识点三 Realtime GI对于我们的意义
/*
* 需要注意的是:
* - 该模块对于我们的意义,取决于项目中是否启用了 Unity 实时全局光照系统
*
* 如果启用了,那么它可以帮助我们:
* 1. 评估实时全局光照的性能开销
* 2. 做出是否保留实时光照的决策
* 3. 针对特定平台做有针对性的优化
* 等等
*/
#endregion
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com