ObjectBounds property crashes volumetric clouds

When working with volumetric cloud materials, if I use object bounds to affect the UV scale of the cloud Conservative Density, cloud weather map texture sampler, not only does the editor crash, but the blueprint which contains the volumetric cloud component becomes corrupted causing the editor to crash on re-launch.

Crash&CorruptionCause

Crash Report

Fatal error: [File:D:\build++UE5\Sync\Engine\Source\Runtime\RHICore\Public\RHICoreShader.h] [Line: 127] Shader expected a uniform buffer at slot 4 but got null instead (Shader=‘’ UB=‘Scene’). Rendering code needs to set a valid uniform buffer for this slot.

UnrealEditor_D3D12RHI!UE::RHICore::SetResourcesFromTables<FD3D12ResourceBinder &,FD3D12UniformBuffer * [16],unsigned short>() [D:\build++UE5\Sync\Engine\Source\Runtime\RHICore\Public\RHICoreShader.h:127]
UnrealEditor_D3D12RHI!FD3D12CommandContext::CommitGraphicsResourceTables() [D:\build++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Commands.cpp:1582]
UnrealEditor_D3D12RHI!FD3D12CommandContext::RHIDrawIndexedPrimitive() [D:\build++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Commands.cpp:1747]
UnrealEditor_RHI!FRHICommandDrawIndexedPrimitive::Execute() [D:\build++UE5\Sync\Engine\Source\Runtime\RHI\Public\RHICommandListCommandExecutes.inl:159]
UnrealEditor_Renderer!FRHICommand<FRHICommandDrawIndexedPrimitive,FRHICommandDrawIndexedPrimitiveString1468>::ExecuteAndDestruct() [D:\build++UE5\Sync\Engine\Source\Runtime\RHI\Public\RHICommandList.h:1245]
UnrealEditor_RHI!FRHICommandListBase::Execute() [D:\build++UE5\Sync\Engine\Source\Runtime\RHI\Private\RHICommandList.cpp:461]
UnrealEditor_RHI!FRHICommandListImmediate::ExecuteAndReset'::35’::<lambda_4>::operator()() [D:\build++UE5\Sync\Engine\Source\Runtime\RHI\Private\RHICommandList.cpp:772]
UnrealEditor_RHI!TGraphTask<TFunctionGraphTaskImpl<void __cdecl(void),0> >::ExecuteTask() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:1265]
UnrealEditor_Core!FNamedTaskThread::ProcessTasksNamedThread() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:758]
UnrealEditor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:649]
UnrealEditor_RenderCore!FRHIThread::Run() [D:\build++UE5\Sync\Engine\Source\Runtime\RenderCore\Private\RenderingThread.cpp:328]
UnrealEditor_Core!FRunnableThreadWin::Run() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Windows\WindowsRunnableThread.cpp:149]

While this is likely a user error in my use of the Object Bounds property, I’d like to learn why so I can better avoid such crashes and corruption in the future.

There’s no reason to use object bounds in a volumetric clouds material. I don’t think it has any bounds.

That being said, it shouldn’t be crashing. Hopefully you sent in the crash report that popped up after the editor closed, better chance that will actually get seen by the devs than reporting it here.

Yes, I submitted it as well as posted here incase it was my own error.

I’d still assumed they’d have controllable bounds to manage their area of effect, not unlike post process volumes. That way they can be faded in/out of ‘solid cloud’ to more smoothly blend or scale with their environments.

I guess i could use a distance to ‘horizon’ or distance from transform parameter to force a blend or fade effect as needed.

I don’t think they ever expect you to “fade it out”. The volumetric clouds system is visible from space, many thousands of kilometers from the actor. It has a maximum start/end distances for the raymarching steps but that’s nothing like actor bounds.

I’ve messed around with those two parameters while performance profiling 8x4096 sampling to address jittering issues, but unless I set Tracing Max Distance to beyond the curvature of the horizon. They get hard cutoff and pop in/out while still within visual line of sight when more than 10Kft above the top of the cloud layer.

Thus my plan was to crossfade the volumetrics into billboard impostor cumulus clouds after an appropriate distance based on current altitude.