Unity-LightProbe导致的性能异常问题

本文最后更新于 2026年7月8日 下午

使用LightProbe烘焙间接光时,主要是有一些LightProbe的点出现了穿插,导致在运行时计算插值时出现了大量的计算开销,从而导致性能异常。

解决方案是让Probe不要出现穿插,避免计算时因为两个点之间存在Mesh导致计算开销过大以及错误结果

问题现象

场景里启用 LightProbe 后,运行时会出现异常的 CPU 开销。

这个开销不一定稳定复现,有时候只在某些位置、某些镜头角度、某些角色移动路径上明显。

表面上看像是渲染压力,但实际问题可能出在 LightProbe 的插值计算上。

原因

LightProbe 本质上是用空间中的 Probe 点来近似间接光。

运行时物体需要根据当前位置,在周围的 Probe 之间做插值,得到当前点的光照信息。

如果 Probe 布点不合理,比如:

  • Probe 点穿进了 Mesh
  • Probe 点分布过密但没有必要
  • Probe 点在墙体、地面、封闭空间附近交错
  • 两个 Probe 之间被场景几何体隔开

就可能导致插值结果不稳定,甚至让运行时计算出现额外开销。

说白了,LightProbe 不是点越多越好,关键是点要放在合理的位置。

排查方式

可以按这个顺序看:

  • 打开场景里的 LightProbe 可视化
  • 检查 Probe 是否穿进墙、地面、模型内部
  • 检查角色活动区域附近是否有异常密集的 Probe
  • 对比删除问题区域 Probe 前后的 Profiler 数据
  • 在问题位置附近移动角色,看开销是否跟位置相关

如果性能异常只在某一片区域出现,优先检查那片区域的 Probe 布局。

解决方案

  • 移除穿插到 Mesh 内部的 Probe
  • 让 Probe 尽量分布在角色真实可到达的空间
  • 不要在封闭墙体两侧放出容易互相干扰的 Probe
  • 对大面积平坦区域减少不必要的 Probe
  • 修改后重新烘焙,并在目标设备上验证

有时候删掉几个位置错误的 Probe,比继续堆优化参数更有效。

注意点

LightProbe 主要解决动态物体接受间接光的问题。

如果场景中大量静态物体已经走 Lightmap,就没有必要为了它们继续铺很多 Probe。

Probe 的数量、位置和场景结构关系很大。特别是移动端项目,最好把 LightProbe 当成需要验收的资源,而不是烘焙后就不管。


Unity-LightProbe导致的性能异常问题
https://nicoier.github.io/2025/08/07/Unity-LightProbe导致的性能异常问题/
作者
NicoIer
发布于
2025年8月7日
许可协议