在部分复杂场景中会触发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]
Liu.Wei
(Liu.Wei)
2
感谢回复,我们现在用的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]
Liu.Wei
(Liu.Wei)
4
Hi,
如果不能修改引擎的话,只能限制场景内Instance数量的限制,目前这个报错还是因为场景内的Instance(包括StaticMeshActor,ISM,HISM,SkeletalMeshActor等等)的数量超过了上限,调整DensityScale会降低草和植被的Instance的数量,可以缓解这个问题。后者试试生成HLOD,减少Actor的数量。
[Attachment Removed]