Multi-functional shader for the Particle System that supports Universal Render Pipeline (URP) of Unity.
Multi-functional shader for the Particle System that supports Universal Render Pipeline (URP) of Unity.
Docs (English, 日本語) | Samples (English, 日本語) | Demo (English, 日本語)
NOVA Shader is a multi-functional shader for the Particle System that supports Universal Render Pipeline (URP). General-purpose functions commonly used in visual effects are implemented so you can create high-quality effects efficiently.
Author: @Ugokashiya
It implements some distinctive features like Flow Map, Flip-Book (sequential texture animation), Dissolve, Fade, Rotation, Animated Tint Map, Emission, Distortion, and so on.
Features
For more information, please refer to the following documents, Samples and Demo.
This library is compatible with the following environments.
Note that Shader Model 4.5 is required to use Mesh GPU Instancing. And also, if you want to use Mirror Sampling, your hardware needs to support Inline Sampler States. And if you are using 3D Texture or 2D Texture Array, the compression format must support them.
And this document assumes that you have already set up the Universal Render Pipeline. For more information about the Universal Render Pipeline, please refer to the Unity Manual
To install the software, follow the steps below.
Window > Package Manager"+" button > Add package from git URLOr, open Packages/manifest.json and add the following to the dependencies block.
{
"dependencies": {
"jp.co.cyberagent.nova": "https://github.com/CyberAgentGameEntertainment/NovaShader.git?path=/Assets/Nova"
}
}If you want to set the target version, write as follows.
Note that if you get a message like No 'git' executable was found. Please install Git on your system and restart Unity, you will need to set up Git on your machine.
To update the version, rewrite the version as described above.
If you don't want to specify a version, you can also update the version by editing the hash of this library in the package-lock.json file.
{
"dependencies": {
"jp.co.cyberagent.nova": {
"version": "https://github.com/CyberAgentGameEntertainment/NovaShader.git?path=/Assets/Nova",
"depth": 0,
"source": "git",
"dependencies": {},
"hash": "..."
}
}
}First, set up the Renderer Feature to apply Distortion. Click Add Renderer Feature > Screen Space Distortion from the bottom of the Inspector of the ForwardRendererData asset.
Add Screen Space Distortion
Confirm that Screen Space Distortion has been added as shown below.
Screen Space Distortion
Note
This setting is not necessary if you do not use the Distortion Shader.
Next, activate Depth Texture to use the Soft Particles or Depth Fade features. Check Depth Texture in the UniversalRenderPipelineAsset Inspector.
Depth Texture
Depth Texture setting is also found in each Camera, so set it as necessary.
Note
This setting is not necessary if neither Soft Particles nor Depth Fade is used.
Next, create a material with the Nova shader. Create a material and set the shader to Nova/Particles/UberUnlit and assign a texture to the Base Map.
Material
After creating a Particle System and assigning this material, you will see particles with the specified texture.
Particle
For more information on each shader and each function, see the sections below.
The Uber Unlit shader is a multifunctional shader with no lighting applied. Use this shader for particles that do not need lighting, such as glowing effects.
To use this shader, assign the Nova/Particles/UberUnlit shader to your material. The following is the description of each property that can be set from the Inspector.
The Render Settings control how the Material is rendered.
Render Settings
| Property Name | Description | |
| Render Type |
You can specify the type of rendering from the following options.
If you select Cutout, the CutOff property will be displayed. When Transparent is selected, the Blend Mode property will be displayed. | |
| CutOff |
This property is visible only when the Render Type is set to Cutout. Controls the threshold to clip semi-transparent areas. The higher this value is, the more alpha will be cropped. | |
| Blend Mode |
This property is visible only when the Render Type is set to Transparent. You can specify the color blend method from the following options.
| |
| Render Face |
You can specify the rendering face from the following options.
| |
| Render Priority |
If the Render Type is the same, the one with the lower Render Priority will be drawn first. | |
| Vertex Alpha Mode |
You can specify how to use the alpha value of the vertex color from the following options.
| |
| ZWrite |
You can set ZWrite value.
| |
| ZTest |
You can set ZTest value.
|
With Vertex Deformation, you can control the deformation of vertices.
Vertex Deformation
| Property Name | Description |
| Texture |
Sets the Vertex Deformation Map. The specifications are as follows.
|
| Intensity |
Sets the Vertex Deformation intensity. |
| Base Value |
It is an offset applied to the values of the texture. |
Base Map controls the base color texture and its settings.
Base Map
| Property Name | Description |
| Mode |
You can specify the type of the Base Map from the following options.
The required texture type will change depending on the mode you selected. |
| Texture |
Set the Base Map. |
No open issues yet, or sync has not completed.