Unity 2018: Introducing Shader Graph

A tool which will help users create a range of shaders, like flowing lava, gooey slime mound, beautiful lakes, flashing LEDs, and more.

Unity 2018.1 will bring tons of cool new features. One of the future goodies is called Shader Graph. The tool will help users create a range of shaders, like flowing lava, gooey slime mound, beautiful lakes, flashing LEDs, and more. The Unity team has recently shared an introduction to the upcoming feature. 

Shader Graph will let you:

  • Procedurally alter your surface appearance
  • Warp and animate UVs
  • Modify the look of your objects using familiar image adjustment operations
  • Change your object’s surface based on useful information about it; its world location, normals, distance from the camera, etc.
  • Expose Properties to the Material Inspector, so that you can quickly tweak a shader’s visuals in the context of a scene.
  • Share node networks between multiple graphs and users by creating subgraphs
  • Create your own custom shader graph nodes through C# and HLSL

How do you create Shader Graphs?

In Unity 2018.1, a Shader Graph appears as a normal shader. To create a Shader Graph you click the Create menu, and select ‘Shader Graph’ from the dropdown. This will create a Shader Graph asset in the project. You can double click on the asset or select the Open Graph button to bring up the Shader Graph Edit window.

When you open the Shader Graph you start with the ‘Master Node’. You connect nodes into the Master Node to create the look of your surface. To learn more about the underlying material models check out the existing Unity Standard Shader documentation.

You can quickly edit your surface by changing the default values! But, you know what’s even more exciting? Adding textures and other complex interactions. To add a node simply right click and select ‘Create Node’.

Each included Shader Graph node has a number of inputs, we’ve included default values that you can customize however you like.

Adding in a texture (or other assets) is also really easy, just create a node of that asset type and connect it!

Your Shader Graph shader is just like a normal shader in Unity. Right-click on any object in the Inspector and choose Create Material. You can create multiple materials from the same shader.

You can easily expose parameters in your shader so they can be overwritten in each material you create from your shader. In the Shader Graph, right-click on any variable node and select ‘Convert to Property’. These exposed parameters appear in the material inspector for each material you create from your shader.

Unity

The tool is currently available in beta. You can learn more and get started here

Join discussion

Comments 1

  • zoid

    The sample has a shader with a _property_ node, an exposed variable for a material; this must be part of their Custom Nodes using the CodeFunctionNode. But an input _variable_ node  (float, fixed, half) was not included -- Unity wanted to give us the same power as seen in other packages like shaderforge but neglected many features.
    So they had 1 job **re-creation** and it would reach community expectation.

    Yet they didn't; Why?

    0

    zoid

    ·5 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more