Shader Graph 全新升级,示例项目教你制作海水和瀑布

2021-02-24
1530
0

在 Unity 2020.2 中,我们推出了一系列改进美术工作流的新功能和内容,包括全新 Graph Inspector 检视器和 Graph 编辑器性能,全面改进了用户体验。

 

作为 Graph 的末端,包含多种功能模块的 Master Stack 主节点堆栈取代了原本功能单一的 Master Node 主节点。Master Stack 定义了着色器最终外观,用户可借助新的堆栈理解顶点(Vertex)与片元(Fragment)渲染阶段运算间的关系。

 

 

图表检视器(Graph Inspector)将 Master Node 和图表中其他节点的设置整合至一处,并且还能设置活跃渲染目标和着色模式。

 

下方视频大致介绍了 Shader Graph 的所有更新。

 

 

 

全新的示例项目

为了帮助用户上手新的 Master Stack 功能,我们制作了一个示例项目,在 GitHub 上提供下载。接下来,我将逐步介绍项目、展示一些示例。

 

示例项目下载地址:

https://github.com/Unity-Technologies/ShaderGraph-MasterStack-Samples

 

 

项目使用了 Unity 通用渲染管线(URP)制作,内含一个海滩微型景观,有两种由 Shader Graph 制作的水体,即悬崖边的瀑布、岛屿周围的海水。完整的示例场景可在 Asset > Scenes > MasterStackDemoScene 中找到。

 

接下来我们来仔细看看怎样使用新的 Master Stack 构建水体着色器。

  瀑布的制作

 

瀑布着色器的制作主要涉及基本颜色通道Alpha 通道。使用 Voronoi 节点生成纹理的同时,偏移和平铺瀑布模型的 UV 形成水流,再使用两个一减去(One Minus)节点遮住 Alpha 通道中的网格边缘,让瀑布看起来更自然。

 

  海水的制作

 

在编辑实际图表之前,我们首先需要考虑着色器应具备哪些基本属性。首先,水必须要有颜色,接着需要有波浪和潮汐等元素才能显得生动,水面的反射也非常重要,同时,水在接触海滩的地方会出现一些泡沫。最后,如果有水深效果会更好,可以与靠近海岸线的部分形成对比。

 

在确定了着色器所需具备的属性后,我们来在示例着色器中了解下怎样做出想要的效果。

 

 

首先,在海水底部涂上玻璃色。海水着色器使用四种颜色属性,两种控制总体颜色渐变,另外两种作为深水和浅水颜色,深浅过渡由深度值控制,详细的将在随后讨论。

 

接下来,让我们回顾一下借助顶点位移来实现的潮汐。新的 Master Node 会分别显示顶点(Vertex)和碎片(Fragment)着色器,清楚区分出影响顶点的节点,简化了图表的更新流程。

 

 

在这部分 Shader Graph 中,顶点在 y 轴上位移,而移动的强度和频率可使用属性控制,在潮汐频率上使用渐变噪波节点(Gradient Noise Node)则能让频率更加多变。

 

要想实现水面涟漪的视觉效果,可以在相反方向上铺开两张法线贴图,用时间控制平铺的速度。

 

 

现在让我们看一下怎样实现水面的反射和水深效果。

 

水面的反射可借助着色器的光滑度来实现。光滑度通常有两个值,一个用于设置顶部水面,另一个用于设置水体的侧边。

 

 

在使用着色器建立水深之前,一定要检查深度纹理(Depth Texture)是否为项目中的渲染资源。深度纹理(Depth Texture)选项可在管线资源的常规(General)选项中找到,项目使用的渲染管线配置文件可在 Edit > Project Setting > Graphics > Scriptable Render Pipeline Asset 找到。

 

 

在启用深度纹理(Depth Texture)后,我们就能继续为水体着色器加入深度了。

 

 

水深可使用场景深度节点(Scene Depth)、屏幕位置节点(Screen Position)和摄像机远平面距离来计算。Shader Graph 的黑板上还有几个额外的深度属性,方便在材质检视器中控制,深度值可使用线性插值节点(Lerp)来补充深水和浅水像素。

 

 

除了深水色和浅水色外,受深度影响的还有泡沫。这里深度值需要取反值,因为水面与硬表面相碰时才会出现泡沫,反值可使用一减去(One Minus)节点获得。

 

到这所有的关键属性就都介绍完毕了,你可以在项目中随意探索、做出自己的修改。

 

注意,旧版本的着色器图表在 10.0 或更高版本的 Shader Graph 编辑器中打开时,主节点会升级为 Master Stack 主节点堆栈。我们还发布了一篇升级指南,详细说明了项目的升级方法。

 

 

转载声明:文章来源于网络,不作任何商业用途

免责声明:本文内部分内容来自网络,所涉绘画作品及文字版权与著作权归原作者,若有侵权或异议请联系我们处理。
收藏

全部评论

您还没登录

暂无留言,赶紧抢占沙发
绘学霸是国内专业的CG数字艺术设计线上线下学习平台,在绘学霸有2D绘画、3D模型、影视后期、动画、特效等数字艺术培训课程,也有学习资源下载,还有行业社区交流。学习、交流,来绘学霸就对了。
绘学霸iOS端二维码

IOS下载

绘学霸安卓端二维码

安卓下载

绘学霸微信小程序二维码

小程序

版权声明
本网站所有产品设计、功能及展示形式,均已受版权或产权保护,任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
热线电话
18026259035
咨询时间:9:00~21:00
在线客服
联系网站客服
客服微信:18026259035
公司地址
中国·广州
广州市海珠区晓港中马路130号之19
绘学霸客户端(权限暂无,用于CG资源与教程交流分享)
开发者:广州王氏软件科技有限公司 | 应用版本:Android:6.0,IOS:5.1 | App隐私政策> | 应用权限 | 更新时间:2020.1.6