在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

在Unity的2018版本中,增加了许许多多的新功能,涵盖了多个方面,其中有一项就是增加了ShaderGraph的功能,相对于编写复杂的Shader代码,ShaderGraph的图形化编辑界面,对于对Shader编程有兴趣的广大开发者而言,这一点十分友好.然而,它的配置过程却稍显复杂,以下就针对于ShaderGraph的配置进行说明

1.在2018版的Unity中,还增加了一个Package Manager的菜单,我们需要先在Package Manager中找到并安装Render-Pipelines.lightweight或者Render-Pipelines.high-definiton之一.里我们选择Render-Pipelines.lightweight(轻量级的这一个).同时还需要安装ShaderGraph

具体位置为Window->Package Manager->Render-Pipelines.lightweight和ShaderGraph 操作如图

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

安装完成之后,在Project右键Create菜单中会增加一项Rendering的菜单,其下有一个LightweightPipelineAsset的子选项,而Create->Shader下也会增加3个子选项 如下图

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

 

2 创建可编程的渲染管线

依照图三的操作,先创建一个Lightingweight Pipeline Asset,Assets目中便会多出一个叫做LightweightAsset.asset的文件,选中该文件,Inspector面板中会显示该渲染管线的一些相关设置,具体的设置请根据自己的喜好进行修改

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

 3.创建完渲染管线之后,Unity此时还是使用的默认的内建渲染管线工作,要想使自己创建的可编程渲染管线生效,我们需要在工程中使用它,我们可以先在场景中创建一个Unity内置的Cube,并赋予Cube一个新建的材质,此时Cube依旧使用的是Unity内置的 StandardShader进行渲染的,接着我们从菜单 Editor->Projectsettings->Graphics中进入工程的Graphics设置,将刚刚创建的渲染管线拖拽至下图红框位置内以应用新的渲染管线,使用后场景中原本正常显示的Cube会呈现出材质丢失所表现的品红色样子,但是此时Cube的材质是并没有丢失的

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

 

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

 

此时,要想这个Cube显示正常,我们需要对工程原本存在的材质进行升级,从菜单Editor可找到新增选项Rendere Pipeline选项和其子选项,我们可以在这里选择对应的选项对工程的材质进行升级,可以选择将工程所有材质更改为Lightweight Materials 或者只对选定的材质进行修改 需要注意的是,该操作只会对部分遵循Unity Shader编写规范的材质进行升级,使用其他插件(如Shader forge)制作的材质,并不会进行升级

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

 经由此步操作,原本创建的基于Unity默认渲染管线的StandardShader的材质会被更改为LightweightPipeline/Standard (Physically Based)的材质,Cube会回归正常的显示,新创建的Cube也会默认使用该种Shader的材质.

4 创建自定义的ShaderGraph 在Project视图中右键Create->Shader->PBR Graph或者另外两项新增的选项,便可以在Asset目录中创建一个新的Shader文件,双击该文件,就可以打开ShaderGraph的图形化编辑界面了,编辑之后保存该Shader并创建对应材质,赋予给相应的游戏物体,即可显示相应的效果了

在Unity2018中使用ShaderGraph(一)(V客学院知识分享)

下一期将为大家介绍一下利用Shader Graph 创建一些简单的特效

(PHP开发、web前端、UI设计、VR开发专业培训机构--V客IT学院版权所有,转载请注明出处,谢谢合作!)