在构建全局光照时,经常会出现“Lightmass crashed”的错误,导致光照构建失败。本文将分析这一问题的原因,并给出解决建议。
UE4 版本4.26
报错如下:
<None> === Lightmass crashed: ===
Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:d:\build\++ue4\sync\engine\source\runtime\core\public\Containers/Array.h] [Line: 611]
Array index out of bounds: 60 from an array of size 36
0x00007ffdb619cf19 KERNELBASE.dll!UnknownFunction [].......
一、问题原因
“Lightmass crashed”在技术层面是由于Lightmass运算时数组越界造成的崩溃。简单来说,就是Lightmass在进行光照运算时,需要访问的数组索引超出了数组范围,导致程序崩溃。
造成这一问题的原因通常有:
1. 光照贴图分辨率过大,超过Lightmass所能处理的范围。
2. 系统内存不足,无法支持Lightmass的运算需求。
3. Lightmass进程冲突,多开swarm agent造成进程混乱。
二、解决方法
针对上述原因,可以从以下几点着手解决“Lightmass crashed”的问题:
1. 适当降低光照贴图的分辨率,比如从4096降到2048。
2