NovaShader packs a particle effect feature set into one URP shader family
Multi-functional shader for the Particle System that supports Universal Render Pipeline (URP) of Unity.
At a glance
- What is it?
- NovaShader is a MIT-licensed Unity asset published as a git package, giving Particle System renderers flow maps, flip-book animation, dissolve, distortion and colour correction through shared uber shaders. It requires Unity 2022.3 LTS, URP and Shader Model 3.5, with a few features gated on higher hardware support.
- Who is it for?
- Adopt NovaShader if your team ships URP particle effects and would otherwise write a separate shader per effect, since the uber shaders cover the common ones in one material. Do not adopt it outside URP or below Unity 2022.3 LTS.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 16 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
One uber shader instead of a shader per effect
NovaShader is a collection of shaders aimed at the Unity Particle System under the Universal Render Pipeline. The stated goal is to implement the general-purpose functions visual effects usually need so that a small number of shaders covers a large number of effects.
The feature list is where the design shows. Flow Map moves the effect along a direction texture, Flip Book does sequential texture animation from one atlas, Dissolve and Fade handle alpha transitions, Rotation spins particles, Animated Tint Map animates colour, Emission adds output colour and Distortion bends what is behind the particle. Each of those is typically a bespoke shader in a project that has not decided to standardise.
The shader families are separate rather than one file. There is an Uber Unlit Shader with vertex deformation, base map, tint colour, flow map, parallax map, colour correction, alpha transition, emission and transparency sections; an Uber Lit Shader with render settings and surface maps; and a Distortion Shader with its own render settings, distortion, flow mapping, alpha transition and transparency. There are also Uber Unlit and Uber Lit variants for uGUI.
An Abort Shadow Caster shader exists as its own entry, which tells you something about how the particles are handled: a particle that should not cast a shadow needs a material that emits nothing into the shadow pass, and the README treats that as a first-class case.
Installing it means adding a git URL to the Package Manager
The package lives in a git repository and is installed from the Unity Package Manager, either through the dialog or by editing Packages/manifest.json.
{
"dependencies": {
"jp.co.cyberagent.nova": "https://github.com/CyberAgentGameEntertainment/NovaShader.git?path=/Assets/Nova"
}
}In the editor the equivalent is Window > Package Manager, then the "+" button, then Add package from git URL, with the same URL. The `?path=/Assets/Nova` query is what tells Unity which subfolder is the package root, and the package name is jp.co.cyberagent.nova.
Pinning a version appends a tag to the URL, for example the same URL with `#1.0.0` at the end. Without a tag Unity follows the default branch, and the README offers the other route: edit the hash in package-lock.json to control which commit is used. Both work; the tag is easier to review in a diff and the hash is more precise.
One operational note from the README: if Unity reports that no 'git' executable was found, Git has to be installed on the machine and Unity restarted. That is a common first-run failure and it is about the host, not the package.
The repository also ships a setup.sh script, Samples and Demo folders under Assets with their own English and Japanese READMEs, and a CLAUDE.md file at the root.
Hardware gates that decide whether a feature works at all
The requirements are stated as Unity 2022.3 LTS or higher, the Universal Render Pipeline, and Shader Model 3.5. Three of the features raise the bar beyond that baseline, and this is the part worth reading before you plan a feature around it.
Mesh GPU Instancing requires Shader Model 4.5. Mirror Sampling requires hardware that supports Inline Sampler States. And if you use a 3D texture or a 2D texture array, the compression format has to support them. These requirements are worth checking before implementing the corresponding features.
The document also assumes the Universal Render Pipeline is already set up and points at the URP manual for that. So the real setup cost is the pipeline migration, not the shader.
Custom vertex streams are the mechanism for per-particle data. The README has sections for setting up custom data, configuring the streams, and setting the material property, plus a section on setting the streams up automatically with a Fix Now action, and one on removing unused parameter references. NovaShader also documents tools for removing unused parameter references and reducing memory usage.
Where an uber shader is the wrong answer
The tradeoff with an uber shader is that every feature you do not use still occupies a property slot, and on constrained targets that matters. NovaShader documents this rather than hiding it: there is a section on removing unused parameter references and another on reducing memory usage with optimized shaders, including an OptimizedShaderGenerator with Generate and Replace methods and sample code.
That is the mitigation, and it is a manual one. The other case where this is the wrong tool is a project not on URP. The shaders are written for the Universal Render Pipeline and the README assumes it is configured; a Built-in Render Pipeline project or an HDRP project gets no benefit from them.
The alternative to weigh is writing per-effect shaders yourself. The difference in approach is that per-effect shaders produce a smaller compiled shader per material, at the cost of one file to write and maintain for every new effect. NovaShader trades that for a shared surface where a new effect is a material setting rather than a new shader. Which side of that trade wins depends on how many distinct effects your project actually has.
For Lit particles specifically, note that the Lit path adds surface maps and its own render settings, so a project that is fully unlit can skip that shader and its cost.
Versioning and licensing
The recent tags are v3.6.0 on 2026-04-08, v3.5.1 on 2026-04-02 and v3.5.0 on 2025-12-24, and the last push to the repository was on 2026-10-07. The latest listed release is v3.6.0, while repository commits continued after that release.
Because installation is a git URL, version control is your responsibility in a way it would not be for a registry package. The README gives both mechanisms, the tag fragment and the package-lock.json hash, and either one has to be maintained deliberately or your Unity project will silently move when the default branch does.
The licence is MIT, stated in the README and in LICENSE.md at the repository root. The repository also carries a Third Party Notices.md file, which is where Unity's own terms and any bundled sample material would be recorded. Reading that file matters if you are redistributing a build that includes the assets.
Documentation is bilingual throughout, with README_JA.md alongside the English README and separate Japanese versions of the Samples and Demo READMEs.
Editorial conclusion
Adopt NovaShader if your team ships URP particle effects and would otherwise write a separate shader per effect, since the uber shaders cover the common ones in one material. Do not adopt it outside URP or below Unity 2022.3 LTS. Before committing, confirm your target hardware supports Shader Model 4.5 if you need Mesh GPU Instancing, and pin a version tag in the git URL rather than tracking the default branch.
Frequently asked questions
How do I install NovaShader in Unity?
In the Package Manager choose the "+" button and Add package from git URL, entering https://github.com/CyberAgentGameEntertainment/NovaShader.git?path=/Assets/Nova. You can also add the jp.co.cyberagent.nova entry to the dependencies block in Packages/manifest.json.
What are the requirements for NovaShader?
Unity 2022.3 LTS or higher, the Universal Render Pipeline, and Shader Model 3.5. Mesh GPU Instancing needs Shader Model 4.5, and Mirror Sampling needs hardware with Inline Sampler States.
How do I pin a specific version of NovaShader?
Append a tag fragment to the git URL, such as #1.0.0. Alternatively, edit the hash for jp.co.cyberagent.nova in package-lock.json, which the README also describes as a way to control the version.
Which effects does the NovaShader uber unlit shader support?
The documented sections are vertex deformation, base map, tint colour, flow map, parallax map, colour correction, alpha transition, emission and transparency. Features named in the README also include flip-book animation, dissolve, fade, rotation and animated tint map.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/cyberagentgameentertainment-novashader)Was this useful?