学习目标:
shader graph 常用模板学习
学习内容:
1、模型拆解
2、模型溶解
3、高亮
4、全息效果
模型裁切:
关键点:主要节点、Position、AlphaClip
引用于https://blog.csdn.net/linxinfa/article/details/108049048这篇干活满满的野生大神博客,强推!
一些参数说明
英文名称 | 中文名称 | 说明 |
---|---|---|
Position | 位置 | 网格顶点或片段(mesh vertex or fragment)的位置信息 |
Split | 拆分 | 将N维数组拆分成N个一维数组。与Combine是反操作 |
Sample Texture 2D | 2D贴图采样 | 2D贴图采样。通过这个节点配合UV坐标和Sampler State获取贴图中的RGBA数据 |
Step | 取数(Step) | In>=Edge,In=1;In<Edge,In=0 |
个人理解的流程图(可能有误,请指正)
首先取坐标值,然后利用split拆分出坐标值R(X)G(Y)B(Z)A(W?不太确定),然后根据输入的Edge坐标值,算出显示的画面。
举个例子:
若连线从R口输出,那么此效果会变为延X轴左右(不太严谨,但大概是这个意思)裁切。
若此shader生成material,放入模型,Edge完全显示的最大值为当前模型在Unity中的最大值。
进阶:在裁剪的基础上添加裁剪边缘光
引用于https://blog.csdn.net/linxinfa/article/details/108049048这篇干活满满的野生大神博客,强推!
英文名称 | 中文名称 | 说明 |
---|---|---|
Remap | 重映射 | Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); |
One Minus | 减1 | 返回输入值-1 |
Smoothstep | 平滑插值 | 插值在开始时加快,在结束时减缓。如果输入In的值分别在输入Edge1和Edge2的值之间,则返回0和1之间的平滑Hermite插值的结果。如果输入In的值小于输入Step1的值,则返回0;如果大于输入Step2的值,则返回1 |
Add | 相加 | 相加 |
Multiply | 相乘 | 相乘 |
个人理解的流程图(可能有误,请指正)
在完成裁剪效果基础上,只需要在裁剪位置发光就行。那么只需要和step步骤类似,加入Smoothstep步骤即可!
其中Remap和OneMinus其实可以不用,一样能达到类似效果(主要是没理解Remap放这里的含义)。
模型溶解:
待续,以后补充
高亮:
待续,以后补充
全息效果:![理论目标效果](https://img-blog.csdnimg.cn/2021030114113588.gif)
引用于https://blog.csdn.net/linxinfa/article/details/108049048这篇干活满满的野生大神博客,强推!
关于其中问题:
1.有些模型只是闪烁,没有扫描的感觉。