Description

UGroomComponent::TickComponent sets bResetSimulation = true every frame when the component is not visible. This causes NiagaraDataInterfaceHairStrands to triggering a full simulation reset every frame.

As a result, the groom simulation incurs higher GPU cost when the component is not visible, compared to when it is visible.

Idealy, the groom simulation should not trigger a full reset every frame when the component is not visible, or the reset should occur only once when visibility changes.

Steps to Reproduce

1, Drag a Groom asset into the viewport to spawn a GroomActor. The asset must have physics simulation enabled (Solver Settings → Enable Simulation) in at least one group.

2, Click Play (PIE).

3, Select the GroomActor spawned in Step 1, and uncheck Visible in the Details panel.

4, The hair simulation resets every frame instead of being suspended.

Have Comments or More Details?

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

4
Login to Vote

Fixed
ComponentUE - Simulation - Visual
Affects Versions5.65.7
Target Fix5.8
Fix Commit53300895
CreatedMar 12, 2026
ResolvedApr 29, 2026
UpdatedMay 19, 2026
View Jira Issue