Shader一直是Unity开发者的一个难关,涉及到数学、图形学、shader语法等多个难题。不过,ShaderGraph来拯救你了!Unity2018的一个重磅功能是ShaderGraph,通过可视化界面拖拽就可以实现着色器的创建和编辑。
配置使用ShaderGraph
目前最新版本Unity(2018.1b13)中的Shader Graph只支持Lightweight Render Pipeline, 当然后续会支持HD Render Pipeline以及用户自定义的pipeline。在Unity 2018中,采用了PackageManager来管理Unity的众多新功能,包括Shader shader包和Lightweight Render Pipeline包。
1、确保下载最新的Unity2018 Beta版本(b13),下载地址是:
当然了,也可以通过UnityHub一键下载安装。2、安装Lightweight Render Pipeline和ShaderGraph包。
有两种方式:
1)在菜单栏Window > PackageManager的All 标签页中下载组件包2)通过手动设置Unity工程下Packages/manifest.json文件
目前通过Package Manager只能下载最新版本的包,而通过manifest文件可以设置使用任意版本的包。如果有时候新版本的包和Unity版本不兼容的话,可以通过manifest文件回退到之前的旧版本。
3、创建设置SRP(可编程渲染管线)
1)菜单栏Assets > Create > Rendering>Lightingweight Pipeline Asset,会创建出来一个文件,这是渲染管线的配置文件。2)在菜单栏 Edit > Project Settings > Graphics中设置刚才的SRP文件
经过这些设置,现在就可以开始使用ShaderGraph了!
创建ShaderGraph文件
通过菜单栏 Create > Shader > *** Graph 可以创建ShaderGraph文件,会在Project创建一个graph文件。
PBR Graph PBR图
Sub Graph 子图,用于创建一些可复用的节点Unlit Graph 不受光照的图ShaderGraph窗口
我们先创建一个PBRGraph来看一看。双击graph文件即可打开ShaderGraph窗口。
ShaderGraph的图是以节点和连线组成的,默认创建出来会有一个Master Node(主节点)。你可以通过把其他节点连接到Master Node来创造你想要的效果。
编辑节点的属性
如下图所示,你可以通过编辑默认的数值快速改变物体的表面属性。
添加节点
添加纹理和其他复杂的交互操作,只要右键点击并选择“Create Node”。
连接节点
通过拖拽对应的值即可创建连线。
创建输入变量
一个shader当然必不可少要有输入的变量了,这在ShaderGraph中也很简单。
使用输入变量
你可以给输入变量设置一个默认值,方便调试。
在Graph中使用这个变量也很简单,只需要将变量拖入图中,和其他节点创建连线即可。
自定义预览模型
ShaderGraph右下角有一个预览窗口,可以选择内置的5种和自定义的模型来更好的预览Shader的效果。
材质球使用Shader
Shader调好以后,当然最最终要应用到材质球上。材质球的Shader选择菜单中会多出一个graphs的类别,下面就是你创建的ShaderGraph对应的shader。
总结
本文讲了如何配置、创建、编辑、使用ShaderGraph。后面几天我将通过实例的方式讲解ShaderGraph如何实战应用。