Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
N

NovaShader

> 编程语言
Open source

Multi-functional shader for the Particle System that supports Universal Render Pipeline (URP) of Unity.

1.6K stars0 likes0 views
WebsiteGitHub

About

Multi-functional shader for the Particle System that supports Universal Render Pipeline (URP) of Unity.

NOVA Shader: Uber shader for Particle System

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.

Table of Contents

Details
  • Setup
    • Requirements
      • Install
  • Usage
    • Add Renderer Feature
    • Activate Depth Texture
    • Create and assign the Material
  • Uber Unlit Shader
    • Render Settings
    • Vertex Deformation
    • Base Map
    • Tint Color
    • Flow Map
    • Parallax Map
    • Color Correction
    • Alpha Transition
    • Emission
    • Transparency
  • Uber Lit Shader
    • Render Settings
    • Surface Maps
  • Distortion Shader
    • Render Settings
    • Distortion
    • Flow Mapping
    • Alpha Transition
    • Transparency
  • Uber Unlit/Lit shaders( for uGUI )
  • Abort Shadow Caster
  • Use with the Custom Vertex Streams
    • Set up the Custom Data
    • Set up the Custom Vertex Streams
    • Set up the Material Property
  • Use Mesh GPU Instancing
    • Enable Mesh GPU Instancing
    • Set up the Custom Vertex Streams
  • Automatic set up the Custom Vertex Streams.
    • Fix Now
  • Remove Unused Parameter References
  • Reducing Memory Usage with Optimized Shaders
    • OptimizedShaderGenerator.Generate()
    • OptimizedShaderGenerator.Replace()
    • Sample Code
  • Editor APIs Reference
  • Licenses

Setup

Requirements

This library is compatible with the following environments.

  • Unity 2022.3 LTS or higher
  • Universal Render Pipeline
  • Shader Model 3.5

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

Install

To install the software, follow the steps below.

  1. Open the Package Manager from Window > Package Manager
  2. "+" button > Add package from git URL
  3. Enter the following
    • https://github.com/CyberAgentGameEntertainment/NovaShader.git?path=/Assets/Nova

Or, open Packages/manifest.json and add the following to the dependencies block.

json
{
    "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.

  • https://github.com/CyberAgentGameEntertainment/NovaShader.git?path=/Assets/Nova#1.0.0

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.

json
{
  "dependencies": {
      "jp.co.cyberagent.nova": {
      "version": "https://github.com/CyberAgentGameEntertainment/NovaShader.git?path=/Assets/Nova",
      "depth": 0,
      "source": "git",
      "dependencies": {},
      "hash": "..."
    }
  }
}

Usage

Add Renderer Feature

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.

Activate Depth Texture

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.

Create and assign the Material

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.

Uber Unlit Shader

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.

Render Settings

The Render Settings control how the Material is rendered.


Render Settings

Property NameDescription
Render Type

You can specify the type of rendering from the following options.

  • Opaque
  • Cutout
  • Transparent (Default)

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.

  • Alpha (Alpha Blending / Default)
  • Average
  • Multiply

Render Face

You can specify the rendering face from the following options.

  • Front (Default)
  • Back
  • Both

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.

  • Alpha: Use as alpha value (Default).
  • Transition Progress: Use as Progress in Alpha Transition function (see below).

ZWrite

You can set ZWrite value.

  • Auto: ZWrite is disabled when the Render Type is set to Transparent, and it is enabled when the Render Type is set to any other values.
  • Off: ZWrite is always disabled.
  • On: ZWrite is always enabled.

ZTest

You can set ZTest value.

  • Disabled
  • Never
  • Less
  • Equal
  • Less Equal (Default)
  • Greater
  • Not Equal
  • Greater Equal
  • Always

Vertex Deformation

With Vertex Deformation, you can control the deformation of vertices.


Vertex Deformation

Property NameDescription
Texture

Sets the Vertex Deformation Map. The specifications are as follows.

  • Push vertices in the normal direction of the object space based on the value of a single specified texture channel.
  • You can select a channel by Channels property.
  • Areas of the texture with a value of zero will not be pushed out, and areas with larger values will be pushed out more towards the exterior.
Note that you need to uncheck sRGB Color in the texture import setting because the pixels will be used as values, not colors.

Intensity

Sets the Vertex Deformation intensity.

Base Value

It is an offset applied to the values of the texture.
Values lower than this will be pushed inward, while larger values will be pushed outward.

Base Map

Base Map controls the base color texture and its settings.


Base Map

Property NameDescription
Mode

You can specify the type of the Base Map from the following options.

  • Single Texture: Use 2D texture (Default).
  • Flip Book: Use Flip-Book animation.
  • Flip Book Blending: Use Flip-Book animation with interpolated frames.

The required texture type will change depending on the mode you selected.
Note: In NOVA Shader, please do not use the Particle System's Texture Sheet Animation. Instead, use the Flip Book feature.

Texture

Set the Base Map.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C#graphicsparticlesparticlesystemshaders

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言