Description

Foreword: Even if the behavior described here is by design, it is rarely (if ever) expected or desired. This was discussed and agreed to be treated as a bug. Explanation below.

When interpolated spawning is enabled, at spawn time the simulation runs the Spawn modules followed by the Update modules with a partial deltatime. On the other hand, when interpolated spawning is not enabled, at spawn time the simulation runs only the Spawn modules and completely skips the Update modules. While this is good for performance and might be desireable in some situations, it can also be undesireable in several other scenarios.

For example, if the Spawn stage sets up an initial color and alpha for the particles, and the update stage then scales these attributes by a curve indexed by the particle's normalized age, it is expected that the first frame of the simulation takes into account the result of this module when sampling the curve at normalized age 0, which does not happen. If the emitter is required to set up the final color of the particle's first frame using only the Spawn modules, then its Update stage cannot use several pre-defined Update modules that take the "initial" attribute value as an input (for scaling it, for example).

The behavior is consistent in both CPU and GPU simulations on UE 5.1 onwards (on earlier versions, GPU simulations did not produce any visible particle on the first frame before the Update stage ran at least once, which was also not desireable). If the current behavior must be kept for some specific situations, one possibility would be to change the "interpolated spawning" into a setting with 3 options: on particle spawn time, the update stage does not run at all (as currently), runs with a partial delta time (current interpolated spawn option), or runs with a zero deltatime (possible new option).

Steps to Reproduce
      1. Built-in emitter ###

1. Create a new Niagara Emitter from the "Fountain" template.
2. Particle Update - Scale Color - Change "Scale RGB" to (1,0,0)
3. Note how all particles are correctly red in the preview
4. Emitter Properties - Disable "Interpolated Spawning"
5. Note how the first frame of each particle is unexpectedly white

      1. Very simple emitter ###

1. Create a new Niagara Emitter from the "Minimal" template.
2. Emitter Update - Add a "Spawn Rate" module with a rate of 60.0
3. Particle Spawn - Initialize Particle - Set "Color Mode" to "Direct Set" and leave it at white
4. Particle Spawn - Initialize Particle - Set "Sprite Size Mode" to "Uniform" with a size of 20
5. Particle Spawn - Add a "Add Velocity" module with a velocity of (0,0,1000). Auto-fix issues.
6. Particle Update - Add a "Scale Color" (or "Set Particles Color") module with RGB (1,0,0)
7. Note how all particles are correctly red in the preview
8. Emitter Properties - Disable "Interpolated Spawning"
9. Note how the first frame of each particle is unexpectedly white

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Niagara
Affects Versions5.5
Target Fix5.6
CreatedFeb 28, 2025
UpdatedMar 14, 2025
View Jira Issue