课程内容概要
ShaderGraph的用途、特点,及使用它的好处
ShaderGraph的组成元素
一些ShaderGraph相关的Demo的介绍
自定义节点
具体内容
简介
用途:使用ShaderGraph的目的是快速搭建出Shader而不用写Shader代码
特点:隐藏了编写Shader所需的技术细节,将手动写代码转变为可视化编程(连接节点构建效果)
优点:有良好的扩展性——可创建自定义节点、可自定义材质属性
说明:ShaderGraph与Unity旧有的Shader是互不兼容的
组成元素
属性:仅有输出端口,是最初的输入
Node:有多个输入和输出端口,任意两个同类型的端口可连接;作为中间的计算过程
Master Node:仅有输入端口,是最终效果
Demo
2D
如何分析一个现成的ShaderGraph?
- 看其属性:有哪些参数
- 看其是半透明还是不透明的(不透明的效率更高,非必须不要使用半透明)
- 看Master Node有哪些输入
- 确认自己要了解的效果是什么,找到并分析实现该效果的节点流程
3D
通过y值信息设置效果
程序化生成
使用噪声纹理
高清渲染管线
可通过生成SubGraph将一组节点封装起来(关注点分离)
与轻量级渲染管线的区别是:二者的Master Node不同
自定义节点
在代码中添加命名空间UnityEditor.ShaderGraph
从基类CodeFunctionNode进行继承
总结
ShaderGraph将Shader的编写可视化,以属性作为输入,Master Node作为输出,通过若干Node进行中间的计算过程
从上面的描述应能领会到:学习ShaderGraph的关键在于 掌握各类基本节点的功能
学习过程
- 了解ShaderGraph的主流程
- 学习基本节点功能,使用这些功能构建自己想要的效果(研究他人做的效果和他人的实现方法)
- 学习编写自定义节点来满足非常个性化的需求