Niagara camera based nodes do not work with NiagaraEffectType InstanceRendered systems

My steps to reproduce show the issue in detail I think. If you need more info let me know.

Thanks for any help,

Matt

Steps to Reproduce

  1. Make a Niagara System
  2. Use a scratch pad that scales particle using WorldPositionToScreenUV or the CamerePosition to scale the particle size based on distance of the systems position.
  3. Make a NiagaraEffectType and set SignificanceHandler to Distance and CullReaction to AsleepAndClear. Add a Scalability Setting for all levels, and set MaxEffectTypeInstances to 2, set CullProxyMode to InstancedRendered, and set MaxSystemProxies to 2.
  4. In a test level place 4 of these Niagara Systems
  5. Observe that the systems rendered as proxies do not function with camera based properties on them.

Here is an effect that scales up the further you are away from the System and the results we are seeing:

[Image Removed]

Hello,

Thank you for reaching out.

I’ve been assigned this issue, and we will be looking into it for you.

Hello,

Thank you for reaching out.

Cull proxies do not run full Niagara simulation. The camera position can be passed to scratch pad as a dynamic value, but distance cull proxies will inherit a value from existing particle systems.

A potential solution would be to recreate the behavior in the material rather than in the Niagara system.

Please let us know if this helps.

Hello,

Thank you for the Reply.

Camara position can be accessed by HLSL in scratch boards. This is equal to accessing the same through a Camera Position input.

This issue is related to the relationship between the camera position, emitter / particle position and the offset location of their cull proxy replacements.

The benefit of recreating the desired behavior in a material is that you can create a relationship between the particle’s vertex positions and the camera position directly.

Please let us know if this helps.

Since these are GPU particles is there a way for code to be added to get access to the correct camera location in Niagara?

Materials can already do it, wouldn’t it make sense for Niagara to be able to do the same?