教程 - ShaderForge的教程水
TA图形学渲染引擎Shader材质球可视化
显示全部 9
238 13
实名

通过了实名认证的内容创造者

发布于 2024-9-14 09:41:02

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

x
0_Tutorial - Stylized Water with ShaderForge, Jordan Jaminet_01.gif
1_Tutorial - Stylized Water with ShaderForge, Jordan Jaminet_02.jpg

大家好,欢迎来到这个新教程。 我将向您解释如何使用ShaderForge创建简单但漂亮的水色着色器,用于卡通或半现实游戏。首先,创建一个Unity项目,并设置一个新场景,以便可视化接下来会发生什么。 然后,使用ShaderForge创建一个新的PBR着色器。


首先,我们必须为Metallic和Roughness设置一个值。 我选择了这些设置,但可以随意调整它。 水不应该有金属或粗糙信息,但我使用这些来获得廉价的反射效果。您最终还可以通过创建“绿色值”节点从Unity主窗口中编辑这些值。 但要小心,Shader很快就会难以阅读,所以只有在必要时才使用它。


现在,让我们创建两种不同的颜色。 我选择这些是为了想象我要编辑的编辑,但不要忘记改变他们到底。然后,将两种颜色翻转并将其插入基色。«Lerp»节点允许我们根据a混合颜色变量<t>。 让我们看看它是如何工作的! 这里,变量是<1>。



如您所见,编辑变量将改变最终颜色。 我们然后将创建一个蒙版,其中白色为ColorA,黑色color是ColorB,灰度将是它们之间的混合。了解接下来会发生的事情非常重要。



这是本教程最重要的节点:<深度混合>。 此节点检测几何与其他任何内容相交的时间。 我们将使用此信息显示一个漂亮的泡沫。插入<depth>值以便稍后控制效果,然后将其插入Opacity参数。




为了避免奇怪的相机故障,创建一个“点积”节点,并插入A中的“查看方向”和B中的“正常方向”。然后,添加“钳位”值,这样颜色会更准确。




现在让我们准备控制泡沫。 为此,我们使用<Remap>节点,和插上<iMin>和<iMax>滑块,然后<oMin>和<oMax>值。 我们会需要这些以后。 然后将<Clamp>节点插入<Val>参数。


让我们为深度做同样的事情。 这些滑块,除了大的深度我们之前做过的节点,将允许我们更准确地定义数量我们想要的深度。 像泡沫一样,我们稍后会使用它。


现在,让我们继续泡沫系统。 添加要使用的“Comp Mask”节点之后,还有一个B值为0.5的«乘法»和一个«钳位»。 这将使我们使泡沫围绕水中的物体。




«FoamPower»将使我们能够显示更明亮的泡沫。 别忘了夹紧避免不良影响的价值。



现在,我们将使用Depth值来创建lerp的掩码。 这将根据水的深度,从ColorA到ColorB给出平滑的梯度。 然后,我们将使用PowerFoam结果并将其«添加»到lerped颜色有一个很好的泡沫效果。 再次,钳制价值。


现在,让我们使用深度重映射信息。 只需在夹子之前“添加”它不透明度渠道。 现在,我们可以完全控制深度和周围的泡沫!



正如我们在预览GIF上看到的那样,效果看起来很奇怪。 要纠正这个问题,只需添加“One Minus”节点,以便优化值并使深度效果以正确的方式工作。




现在,我们添加了一个“FoamTexture”,使泡沫效果看起来更加细致。 如果你想保持扁平,只要忽略这一步。



我们可以添加一个<Panner>节点,以便在特定的上移动泡沫纹理方向。 添加“UV Coord”节点以沿着网格的UV移动它。 如果你是与ShaderForde相关,您还可以添加一个流程图系统来控制泡沫的运动。 如果你不是,请继续关注,不要错过第2部分教程!



在这里,我们将准备挥动系统。添加一个滑块以增加曲面细分因为我使用的是基本的Unity飞机。 如果你有更详细的网格,你可以去到下一步。 这允许具有平滑的波浪效果。


现在让我们创造波浪。 模式将由纹理噪声定义,所以我们。添加<Texture2D>节点。 为了选择方向,我们使用«panner»节点,再加上“UV坐标”,我们可以控制波浪的方向取决于网格的UV。 我们希望我们的波浪随着时间的推移而移动,我们将<Time>节点连接到panner。


现在,我们改进波浪的行为并制作一些可编辑的属性调整Unity。 首先,我们添加<World Position>节点以根据对象的位置变形飞机。 然后,为了产生这种波浪效果,我们连接起来一个<sinus>节点,这样波将像正弦曲线一样使网格变形。 在最后,我们“重新映射”该值以便仅保留正值。


然后,我们可以将纹理连接到我们的系统。 现在,海浪将跟随纹理图案与噪音和随机性。 因为我们希望我们的波浪只能继续Y轴(在Unity中,这是上轴),我们必须删除X轴和来自系统的Z轴。 为实现这一点,我们将向量附加到O,如您所见在图表上。 然后我们可以将它连接到顶点偏移。


为了控制速度,将Time节点乘以一个值,瞧!

我希望本教程有所帮助。 对于acartoon或半现实游戏来说,它是一个简单但非常有效的着色器。 根据艺术方向,您需要更多透明度,反射和折射,法线贴图或流程图! 这将在教程的第二部分,敬请关注! 干杯:)



评分

参与人数 3元素币 +102 活跃度 +70 展开 理由
幺九 + 32 + 30 支持!
元素界王神... + 50 + 20 【点赞】这很有大网气质!
成林 + 20 + 20 支持该类型资源,如果能外带中文翻译会更好哦~

查看全部评分

本帖被以下画板推荐:

橙。
使用道具 <
qq_﹎.墨_V5L  发表于 2020-1-9 16:00:30  
15#
千点万点,不如微元素指点
回复 收起回复
使用道具
Amant_Jy  发表于 2019-11-7 17:59:32  
14#
摄像机深度渲染设置都没说
回复 收起回复
使用道具
囧囧有神  发表于 2019-11-6 09:35:15  
13#
感谢分享~~~~~~~~~~~~~~~~~
回复 收起回复
使用道具
しīSāJ  发表于 2019-10-30 10:01:29  
12#

感謝大佬!
回复 收起回复
使用道具
风的颜色  发表于 2019-9-9 14:19:05  
11#
回复 收起回复
使用道具
Z.校长  发表于 2019-5-25 21:18:32  
10#
元素应该 弄个插件  把百DU网盘的 下载提一下速     保证100K/S   然后大家5块钱买!!!
回复 收起回复
使用道具
qq_Jay_K3j  发表于 2019-5-15 02:24:41  
9#
感謝大佬!
回复 收起回复
使用道具
祖祖祖  发表于 2019-3-23 10:46:08  
8#
求大大发下原帖链接
回复 收起回复
使用道具
wuming  发表于 2019-1-30 08:35:32  
7#
回复 收起回复
使用道具
peet07  发表于 2019-1-24 15:50:56  
6#
非常好 大爱!!!
回复 收起回复
使用道具
逆者  发表于 2019-1-24 14:10:53  
5#
666666
回复 收起回复
使用道具
qq_花小书_bdt  发表于 2019-1-24 10:58:50  
4#

资源甚好,发帖艰辛,且阅且珍惜
回复 收起回复
使用道具
Zh_Jason  发表于 2019-1-24 10:53:44  
3#
资源甚好,发帖艰辛,且阅且珍惜
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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