[Shader/渲染] unity shader graph的水材质

查看:10360 |回复:15 | 2024-5-14 20:00:37

您需要 登录 才可以下载或查看,没有账号?注册

x
水材质:
1.对法线做处理:
Position节点:使用world空间位置,使顶点跟着世界坐标,用世界坐标采集UV,保持在放大、缩小等操作时UV不会乱。
1.2.提取从上往下看时的坐标x、z并combine成二维数组。
1.png
1.3.将世界坐标提取的UV作为一个缩放值。得到一个可以放大缩小的UV。
2.png
注:water big_uv是一个vector1值。
1.4.控制UV的挪动速度。
注:big_speed是一个vector1值。
1.5.整体的UV大小add每秒移动的距离得到UV的运动。
1.6.通过采样一张二维贴图实现水的流动
注:normal是texture2D类型的值。normal的类型mode为Bump。
1.7.连接到PBR master的normal上
注:Type改为Normal
1.8法线强度
注:normal_strength为vector1的值。
1.9第二层的UV
注:结构差不多,combine、time节点和normal贴图用的是同一个。
1.10通过Normal Blend节点使两层法线混合。
1.11平滑度定义
注:smoothness为vector1的值。
效果图:
2.水的深度处理:
2.1水是半透明物体
注:Surface类型改为Transparent。
2.2模型世界空间顶点减去相机位置得到一个向量
2.3得到的向量与相机的方向点积
2.4数值重映射
(1.点积得到数据可能会很大或者很小,因此将数值约束到0-1之间。
2.输入的最小值和最大值为相机的Y轴,约束对象为相机的Y轴。)
2.5手动控制depth深度。
注:depth是vector数值。
2.6利用默认的深度图将得到的曲线进行平滑处理
2.7水的最大不透明度为0.95
3.水的颜色
注:前半连法和深度类似。
3.1将平滑后的曲线转为黑白混合,并通过两个颜色结合输出到Albedo。
4.水的距离上的颜色变化
4.1通过世界空间与摄像机位移进行distance运算得到距离
注:红色的方框为需要连接的节点。
4.2进一步的得到可以调节的距离值的变化
注:fog_distance为一维向量vector1。
4.3将除以得到的值约束到0到1之间
4.4将0-1反转为1到0(用1-的方式:1-0=1到1-1=0)
注:个人理解:从向量与RGB颜色的转换理解上0显示的是黑色,1显示的是白色。而又因为远处应该显示的是黑色的(水在远处看到的是暗的),在向量上远处是偏向于1的,即0到1。因此这里矛盾了。所以将得到的距离的值进行翻转为1到0。对应的在远处0显示的为黑色、暗色。
4.5将得到的值作为黑白混合方式,并用color节点来定义黑的为什么颜色,白的为什么颜色。同时与之前得到的水的颜色混合,连接到Albedo端口。
5.水的波纹
5.1提取UV
注:第一张图片中的combine后蓝色线条连接的为第二图中的Multiply,bowen_uv为一维向量vector1。
5.2通过时间来影响UV的运动。
5.3通过voronoi节点(UV运动节点)来表现波纹的运动。
注:bowen_uv的值为5。
5.4将浅水区域进行波纹运动
注:smoothstep得出的是深水区域的值,因此利用one minus节点进行反转得到浅水区域的波纹。
5.5利用power节点进行开方处理,将波纹的密度减小。
5.6乘一个color使得更加贴合水的颜色。
注:bowen_color是color节点转换为输入端口(右键color节点,点击convert to property)。
5.7波纹的调整
注:波纹的流动和扰动速度应该是不一样的,扰动的速度应快一些,才能看到扰动的效果。
5.8波纹和深度和距离颜色变化的叠加。
注:上方的大方框是波纹,下方的方框是深度和距离的颜色变化。
6.输入端的数值。
注:更改默认的数值得到希望的效果。
Small_uv控制水流的速度。
ColorA控制的是深水区域的颜色。
ColorB控制的是浅水区域的颜色。
Big_uv和Small_uv控制的是水的起伏纹理的大小。
Depth控制的是水的深浅时候的颜色变化,与地形相联系。
Smoothness控制的是水受到光照时的反光的程度。
Depthcolor控制的是水的深水区域和浅水区域的范围。
Fog_distance控制的是摄像机观察与水之间的距离的颜色变化(即与lighting_setingd中的fog雾气效果类似)。
Bowen_uv控制的是水的波纹的大小。
Bowen_power控制的是波纹的扰动幅度。

评分

参与人数 1元素币 +24 活跃度 +22 展开 理由
大西几 + 24 + 22 很有用

查看全部评分

2024-5-14 20:00:37  
 赞 赞 2

使用道具 登录

15个回答,把该问题分享到群,邀请大神一起回答。
2#
点赞等于看完   收藏等于学会   
回复 收起回复
2021-7-20 15:18:59   回复
 赞 赞 1

使用道具 登录

3#
感谢分享,学习了
回复 收起回复
2021-7-20 15:32:25   回复
 赞 赞 1

使用道具 登录

4#
感谢大佬投喂
回复 收起回复
2021-7-20 16:06:19   回复
 赞 赞 1

使用道具 登录

6#
感谢大佬分享
回复 收起回复
2021-7-21 00:41:53   回复
 赞 赞 1

使用道具 登录

7#
感谢分享
回复 收起回复
2021-7-21 10:37:50   回复
 赞 赞 1

使用道具 登录

8#
学习了,牛
回复 收起回复
2021-7-21 15:30:22   回复
 赞 赞 1

使用道具 登录

9#
感谢分享
回复 收起回复
2021-7-22 10:30:47   回复
 赞 赞 1

使用道具 登录

10#
66666666666666666666
回复 收起回复
2022-5-12 14:34:13   回复
 赞 赞 1

使用道具 登录

11#
感谢大佬分享,学习了
回复 收起回复
2022-11-11 09:56:40   回复
 赞 赞 1

使用道具 登录

12#
好吧,姑且你说的有道理。
回复 收起回复
2023-7-17 11:35:04   回复
 赞 赞 1

使用道具 登录

13#
回复 收起回复
2023-11-30 23:15:47   回复
 赞 赞 1

使用道具 登录

14#
回复 收起回复
2024-3-6 15:20:44   回复
 赞 赞 1

使用道具 登录

15#
不错,学习下
回复 收起回复
2024-3-6 15:20:52   回复
 赞 赞 1

使用道具 登录

16#
回复 收起回复
2024-5-27 10:29:59   回复
 赞 赞 0

使用道具 登录

17#
太强了大佬 感谢分享喔~
回复 收起回复
2024-10-24 00:24:36   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

图文教程技术文章技术文库手机游戏引擎手游引擎
显示全部 9
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表