Description

The licensee has traced the issue back to a divide by zero in  UParticleModuleTypeDataBeam2::Update. If the Target and Source are the same then the beams magnitude will be zero. When there is a Noise module the TravelRatio will be the TrueMagnitude/FullMagnitude, and FullMagnitude will be zero.

I tested replacing float FullMagnitude = BeamData->Direction.Size(); with float FullMagnitude = FMath::Max(BeamData->Direction.Size(), 0.001f); and the crash did not occur (Shelved CL 9001727).

Steps to Reproduce
  1. Open the attached particle system in the editor.
  2.  In Beam Data set the speed to the default value of 10.0

RESULT

The editor will crash.

Callstack

Assertion failed: CheckVertexCount <= Source.VertexCount [Link Removed] [Line: 4857]

UE4Editor_Core!FWindowsErrorOutputDevice::Serialize() [e:\_release4.23\engine\source\runtime\core\private\windows\windowserroroutputdevice.cpp:79]
UE4Editor_Core!FOutputDevice::LogfImpl() [e:\_release4.23\engine\source\runtime\core\private\misc\outputdevice.cpp:71]
UE4Editor_Core!AssertFailedImplV() [e:\_release4.23\engine\source\runtime\core\private\misc\assertionmacros.cpp:101]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [e:\_release4.23\engine\source\runtime\core\private\misc\assertionmacros.cpp:445]
UE4Editor_Engine!FDynamicBeam2EmitterData::FillData_Noise() [e:\_release4.23\engine\source\runtime\engine\private\particles\particlesystemrender.cpp:4857]
UE4Editor_Engine!FDynamicBeam2EmitterData::GetDynamicMeshElementsEmitter() [e:\_release4.23\engine\source\runtime\engine\private\particles\particlesystemrender.cpp:2787]
UE4Editor_Engine!FParticleSystemSceneProxy::GetDynamicMeshElements() [e:\_release4.23\engine\source\runtime\engine\private\particles\particlesystemrender.cpp:7008]
UE4Editor_Renderer!FSceneRenderer::GatherDynamicMeshElements() [e:\_release4.23\engine\source\runtime\renderer\private\scenevisibility.cpp:2807]
UE4Editor_Renderer!FSceneRenderer::ComputeViewVisibility() [e:\_release4.23\engine\source\runtime\renderer\private\scenevisibility.cpp:3869]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::InitViews() [e:\_release4.23\engine\source\runtime\renderer\private\scenevisibility.cpp:4157]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::Render() [e:\_release4.23\engine\source\runtime\renderer\private\deferredshadingrenderer.cpp:934]
UE4Editor_Renderer!RenderViewFamily_RenderThread() [e:\_release4.23\engine\source\runtime\renderer\private\scenerendering.cpp:3242]
UE4Editor_Renderer!TGraphTask<TEnqueueUniqueRenderCommandType<`FRendererModule::BeginRenderingViewFamily'::`27'::FDrawSceneCommandName,<lambda_98974a148448e2faeb6b39d7ee44228d> > >::ExecuteTask() [e:\_release4.23\engine\source\runtime\core\public\async\taskgraphinterfaces.h:847]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [e:\_release4.23\engine\source\runtime\core\private\async\taskgraph.cpp:686]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [e:\_release4.23\engine\source\runtime\core\private\async\taskgraph.cpp:583]
UE4Editor_RenderCore!RenderingThreadMain() [e:\_release4.23\engine\source\runtime\rendercore\private\renderingthread.cpp:340]
UE4Editor_RenderCore!FRenderingThread::Run() [e:\_release4.23\engine\source\runtime\rendercore\private\renderingthread.cpp:471]
UE4Editor_Core!FRunnableThreadWin::Run() [e:_release4.23\engine\source\runtime\core\private\windows\windowsrunnablethread.c

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-80729 in the post.

1
Login to Vote

Fixed
ComponentUE - Niagara
Affects Versions4.204.214.224.23
Target Fix4.24
Fix Commit9701432
Main Commit9701441
Release Commit9701432
CreatedSep 23, 2019
ResolvedOct 18, 2019
UpdatedSep 19, 2021