UPL2-12——Realtime GI 模块

Realtime GI 模块

Realtime GI(实时全局光照)模块,用于排查项目中 实时全局光照系统 的运行时性能开销
展示 CPU 侧用于 Realtime GI 的探针更新、任务调度、环境光照解算 等子系统的耗时情况

注意:不同 Unity 版本底层使用的光照系统可能不同,并且想要该模块记录数据,我们需要在 Unity 中开启实时全局光照功能
Window ——> Rendering ——> Lighting 中开启

image

Realtime GI 中各参数功能的含义和作用

image

  • 实时全局光照 (Realtime GI) 性能分析视图

    image

    • Light Probe(光照探针): 光照探针相关计算总耗时

      如果你使用了大量动态物体与光照探针混合,耗时可能升高

    • Setup(设置): 光照系统每帧的设置初始化阶段

      包括检测哪些网格、材质或光照发生了变化

    • Environment(环境光照): 对全局环境数据的处理,比如环境光、间接光设置的变化

      大场景或频繁变更环境参数时可能消耗大

    • Input Lighting(输入光照数据): 传入光照系统的阶段

      包括静态光源、动态发光材质、光探针灯光等

    • Systems(系统处理): 光照系统内部系统数据结构更新(场景结构)

      多用于动态场景结构变化时,比如加载/卸载物体、地形修改等

    • Solve Tasks(解算任务): 光照系统实际求解任务的耗时(核心计算阶段)

      是影响性能最关键的部分。包括反射、间接光反弹计算等等

    • Dynamic Objects(动态物体): 与动态物体(非静态)交互的光照数据处理

      比如动态发光物体、玩家、移动平台等与场景间的光照互相影响

    • Other Commands(其它命令): 其他杂项指令的耗时

      一般不需要重点关注,除非此项异常高

    • Blocked Command Write(写入阻塞命令): 表示光照系统请求写入数据(例如更新 GI 网格)时被阻塞了

      可能是主线程、Job 系统冲突等问题。若此项频繁 > 1ms,可能影响帧率

  • 详细信息视图

    image

    • 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:等待进行材质更新的材质数量

    重点关注对象:

    1. Solve Tasks(光照核心求解阶段):是否每帧都执行并且耗时过高;建议转为静态光照或减少动态发光物体
    2. Dynamic Objects:动态物体是否频繁导致光照更新;让动态物体远离 GI 区域或使用 Light Probe 替代
    3. Blocked Command Write:是否为 0;非零说明 Enlighten 写入数据被阻塞,可能导致卡顿
    4. Pending Material Updates:避免每帧改材质参数

Realtime GI 对于我们的意义

需要注意的是,该模块对于我们的意义,取决于项目中是否启用了 Unity 实时全局光照系统
如果启用了,那么它可以帮助我们:

  1. 评估实时全局光照的性能开销
  2. 做出是否保留实施光照的决策
  3. 针对特定平台做有针对性的优化

等等