UE5部分场景在使用MRQ渲染时崩溃

在部分复杂场景中会触发Assertion failed: ScatterBufferSize >= ScatterBytes [File:./Runtime/RenderCore/Private/UnifiedBuffer.cpp] [Line: 950]

论坛上的解决方案是:

game\_override.flush\_grass\_streaming \= False

game\_override.flush\_streaming\_managers \= False

但是MRQ渲染出的结果草就完全没有了,请问有解决办法吗?

[Attachment Removed]

Hi,

你好,这个问题我们应该刚刚修复,你可以看一下https://github.com/EpicGames/UnrealEngine/commit/96eab839f0027d77a8553c865ecb33eb4503e9b4​

[Attachment Removed]

感谢回复,我们现在用的UE5.5,不太方便升级引擎或者修改源码,但可以接受降低部分效果,在设置了:

[FoliageQuality@3]

foliage.DensityScale=0.5

grass.DensityScale=0.5

[FoliageQuality@Cine]

foliage.DensityScale=0.5

grass.DensityScale=0.5

之后,ScatterBufferSize 没有异常了,但是又遇到了: Assertion failed: InstanceDesc.InstanceId <= 0xFFFFFF [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Renderer\Private\RayTracing\RayTracingInstanceBufferUtil.cpp] [Line: 312]

Error: InstanceId must fit in 24 bits.

这个问题。怎样才能避免这个RayTracingInstance超过限制呢?我试了关闭LandscapeGrass材质的Support Ray Tracing选项,但是没有解决问题。

[Attachment Removed]

Hi,

如果不能修改引擎的话,只能限制场景内Instance数量的限制,目前这个报错还是因为场景内的Instance(包括StaticMeshActor,ISM,HISM,SkeletalMeshActor等等)的数量超过了上限,调整DensityScale会降低草和植被的Instance的数量,可以缓解这个问题。后者试试生成HLOD,减少Actor的数量。

[Attachment Removed]