Niagara Overview
- Next-generation VFX system; technical artists can create functionality without programmer.
- Four core components: Systems, Emitters, Modules, Parameters.
- System: container for everything for an effect; system-level behaviors apply to everything; Timeline panel.
- Emitter: where particles are generated; organized in a stack with groups: Emitter Spawn (when emitter first created on the CPU), Emitter Update (per frame on the CPU), Particle Spawn (once per particle at birth), Particle Update (per particle each frame), Event Handler (generate/listen events), Render (sprite/mesh/... renderers).
- Modules: basic building blocks; processed sequentially top to bottom; "a container for doing some math": read data, compute, write back. Built using HLSL but visually in a Graph; CustomHLSL node. Modules accumulate to a temporary namespace.
- Parameter types: Primitive, Enum, Struct, Data Interfaces ("functions that provide data from external data sources").
- Resources: each module/emitter/system uses resources; reuse existing modules; Dynamic Inputs reduce module bloat.
- Inheritance: child emitters can override anything inherited; revert to parent.
- Dynamic Inputs act on a value type rather than parameter map. Micro Expressions: inline HLSL snippets.
- Events: payload structs between particles/emitters/systems; separate execution stack for event handlers.
- Data Interfaces: extensible access to arbitrary data — mesh data, audio, external DDC info, code objects, text containers; can be written as plugins; skeletal mesh data interface.
- Houdini CSV export/import.