This project is an Unreal Engine 5 plugin that demonstrates compute shader integration with the Niagara particle system. There are several different methods to achieve this, each has its own module. I have provided an easy-to-configure boids example for each method. I hope that this repo is a good place to start playing with UE5 graph builder.
Checkout the repo's product page for more information
Temaran has produced an awesome resource to learn how to write compute shaders and I suggest checking it out if you haven't already UnrealEngineShaderPluginDemo
- Overview:
- Demonstrates the use of Graph Builder to setup and run compute shaders through a boids example
- Examples:
- Example1: Structured Buffer -> Niagara
- Example2: Structured Buffer -> Render Target -> Niagara
- Overview:
- Demonstrates the use of manual management over the compute pipeline to setup and run compute shaders through a boids example
- Examples:
- Example1: Structured Buffer -> Niagara
- Overview:
- Demonstrates how to extend ComputeRPExample to pass shader data into materials by hooking into the scene buffer
- Examples:
- Example1: Structured Buffer -> Material
- Overview:
- A boids system implemented entirely within Niagara without compute shaders and using the Particle Attribute Reader instead.
- Overview:
- A shared module that provides default settings and utilities, ensuring consistency and efficiency across all modules.
- Unreal Engine 5.6.x
- C++ Project for generating binaries and intermediate folders
- Basic understanding of Unreal Engine and its plugin system.
To integrate this plugin into your Unreal Engine project:
- Clone the repository to your local machine.
- Copy the plugin folder into the
Pluginsdirectory of your Unreal Engine project. - Rebuild project files from your .uproject
- Enable the plugin within your project settings via the Plugins menu.
- Open Maps/M_TestLab (persistent map)
- Toggle examples by activating/deactivating sub-levels from the persistent level. You can launch each map individually, or mark them all as "always loaded" to run them all together.
- Go ahead and configure the relevant module found inside the ShaderTech category of the Project Settings. The "Boid Dynamic Parameters" values can be modified in runtime. Enjoy!
Contributions to this project are welcome. Please follow the standard GitHub workflow for submitting pull requests.
This project is licensed under the MIT License. See the LICENSE file for details.
- Improvement | Const-correctness across codebase
- Supports: UE 5.6.x
- Supports: UE 5.5.x
- Improvement | General Refactor
- Improvement | Fab marketplace prep
- Supports: UE 5.6.x
- Supports: UE 5.5.x
- Bug FIx | Correctly dispose of buffers
- Feature | Structured Buffer -> Material
- Supports: UE 5.5.x (13/11/2024)
- Supports: UE 5.4.x (01/09/2024)
- Improvement | General Refactor
- Supports: UE 5.3.x
- The beginning of Time.
- Supports: UE 5.3.x





