当前位置:   article > 正文

Shader Graph学习(一)_shader graph additve

shader graph additve

前言

在Unity2018.1之后新增了Shader Graph功能。(emmm,现在都2020了,只怪自己平时关注新知识太少了)Shader Graph可以在一个可视化的面板中完成shader功能的实现,一句代码都不需要写,大大降低了shader的开发难度。

官方文档:https://docs.unity3d.com/Packages/com.unity.shadergraph@7.2/manual/index.html

环境

Unity版本2018.1或者更新,同时需要在Package Manager中安装好URP,HDRP或者LWRP。装好URP或者其他会自动帮你安装好Shader Graph Package。

本文用的是Unity2019.3,以及URP

 

创建第一个Shader Graph

Package都安装好后,我们在Project中右键Create->Shader中就可以看见有几个Graph选项。我们创建一个PBR Graph,就会生成一个.shadergraph的文件,简单的命名为PBRGraph,双击该文件就可以打开我们的编辑界面。

左边的面板会显示我们Shader的可配置参数,右边的面板会显示预览效果,我们可以通过右上角的两个按钮来开关它们。

首先先简单的介绍下下面几种Graph:

PBR Graph:(physically based rendering)

用于制作基于物理的Shader,可以用于金属或镜面效果等。其输入的值有如图这些:

Vertex Position每个顶点在模型空间中坐标
Vertex Normal顶点的法线
Vertex Tangent顶点的法线切线
Albedo定义Material的反射率
Normal定义Material的法线,法线最好在切线空间中
Emission定义Material的发散效果
Metallic定义Material的金属效果
Smoothness定义Material的光滑程度
Occlusion定义Material的环境光遮挡值
Alpha定义Material的alpha值,被用于透明材质或者alpha裁剪
AlphaClipThresholdalpha低于该值的片段会被丢弃

 

Unlit Graph:

用于制作无光照效果的Shader,参数相对比PBR的要来的少

 

Sub Graph:

子模块,类似于我们代码中的函数,会有一个Output(也就是return)来输出值。我们可以通过设置自定义输出的类型以及个数等。适用于一些模块会被频繁使用的时候,可以做成一个Sub Graph,然后在其他地方要使用的时候,添加Node并选择它即可。

          

 

Material选项

在我们的Master Node上点击小齿轮按钮,会出现Material的相关配置选项,如下图。例如,若我们要使Shader实现透明效果,需要在Surface选项中选择Transparent

选项可选值作用
PrecisionInherit / Float / Half定义精度
WorkflowSpeculat / Metallic设置Material的默认工作模式
SurfaceOpaque / Transparent定义Material是否透明
BlendAlpha / Premultiply / Additive / Multiply当Material设置为透明,定义其混合模式
Fragment Normal SpaceTangent / Object / World定义默认的坐标空间值
Two SidedTrue / False设置为true,则Mesh的两面都会被渲染

言归正传,在打开我们创建的PBRGraph编辑界面后,我们可以右键来创建Node,这些Node同样的可以看做是一个个函数,都拥有对应的输出值,有些Node也会有对应的输入值。这里我们先创建一个Color的Node(可以利用搜索功能直接定位),然后将其输出的值拖到Albedo上,此时预览界面的效果也随之变化,点击左上角的Save Asset保存一下。

接着我们创建一个新的Material,在Shader中选择我们的PBR Graph,然后替换物体原有的material,就可以看见效果了。

 

添加Property

此时我们无法通过修改Material的参数来修改颜色,解决方法就是利用我们的Properies。进入到我们的编辑界面,我们可以直接在Color节点上右键,选择Convert To Property,这样就可以将我们的color的值转换为一个可以修改的参数,显示如图:

        

当然,我们也可以在Properties面板中点击加号,直接添加参数,然后拖到编辑面板中,进行关联。保存一下后,就可以发现现在我们可以通过Material来自己调整需要的颜色了。

 

生成Shader文件

我们可以通过在Master面板上右键,选择Copy Shader就可以得到对应的hlsl语法的Shader脚本了。

 

在下一篇我们会通过一个简单的案例,来更加熟悉Shader Graph和Node

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/125986
推荐阅读
相关标签
  

闽ICP备14008679号