Unity Shader ASE基础效果思路与代码(一):遮罩、硬边溶解、光边溶解、UV扰动

本文介绍了如何在UnityShaderASE中使用遮罩、硬边溶解、光边溶解和UV扰动的基本思路和代码实现,包括纹理处理、节点操作和后期处理技术的应用。
摘要由CSDN通过智能技术生成

Unity Shader ASE基础效果思路与代码(一):遮罩、硬边溶解、光边溶解、UV扰动

遮罩效果

  • 效果展示:在这里插入图片描述

  • 思路与代码:主纹理和遮罩纹理相乘,其中,两个纹理给到UV流动在这里插入图片描述

  • 步骤与详解:panner节点:平移

硬边溶解

  • 效果展示:在这里插入图片描述

  • 思路与代码:原图和噪声贴图的透明通道混合,改变噪声贴图的透明度即可在这里插入图片描述

  • 步骤与详解

    • 在SubShader中关掉深度写入,混合模式为Alpha Blend,Tags设为透明
      在这里插入图片描述

    • 将溶解的贴图和一个浮点数作比较,让其非0及1在这里插入图片描述在这里插入图片描述

    • 把主贴图弄成组合模式,和溶解添加在一起在这里插入图片描述

    • Component Mask:变成组合的数据

    • Append:输出组合

光边溶解

  • 效果展示在这里插入图片描述
  • 思路与代码: 和硬边溶解大体思路相似,主要是光边的制作。噪声贴图加一个浮点数,得到一张 “变慢” 的贴图,两者相减即可得到一个 边,将这个 边 乘以一个HDR颜色,就可得到光边。
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 步骤与详解:
    • 首先要添加post后处理,才能用HDR颜色,这是参考方法
    • 原噪声贴图加个浮点数,得到下图编号2,该方法可以让其变化延后,编号1和2相减便可得到边缘贴图,编号3在这里插入图片描述
    • 原图透明通道和边缘相乘如下图圈1,圈2仅仅用作展示相乘的结果,更具圈2可知,需要和边缘贴图取个插值(lerp),得到想要的叠加效果。在这里插入图片描述
    • 最后,将插值后的图和透明通道(圈1)叠加在这里插入图片描述

UV扰动

  • 效果展示:在这里插入图片描述
  • 思路与代码: 噪声纹理的uv动起来,和原来的uv取插值
    在这里插入图片描述
  • 步骤与详解:
    在这里插入图片描述
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
想要实现Unity中角色消失的溶解隐身效果,可以使用Shader来实现。具体步骤如下: 1.创建一个新Shader,在Shader中添加一个_Color属性和一个_Dissolve属性。 2.在Shader中添加一个新的SubShader,并将Tags设置为“RenderType”和“Opaque”。 3.在SubShader中添加一个新的Pass,并设置Blend为“SrcAlpha OneMinusSrcAlpha”。 4.在Pass中添加一个新的CGPROGRAM块,并在其中编写着色器代码。在代码中使用_Dissolve属性来计算角色的溶解程度,并使用_Color属性来设置角色的颜色。 5.将着色器应用到角色的材质上,并在代码中控制_Dissolve属性的值来实现角色的消失效果。 以下是一个简单的Shader代码示例: ``` Shader "Custom/Dissolve" { Properties { _Color ("Color", Color) = (1,1,1,1) _Dissolve ("Dissolve", Range(0,1)) = 0 } SubShader { Tags {"RenderType"="Opaque"} Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _Color; float _Dissolve; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } fixed4 frag (v2f i) : SV_Target { float dissolveAmount = pow(_Dissolve, 2); dissolveAmount = 1 - dissolveAmount; dissolveAmount = clamp(dissolveAmount, 0, 1); fixed4 col = tex2D(_MainTex, i.uv) * _Color; col.a *= dissolveAmount; return col; } ENDCG } } FallBack "Diffuse" } ``` 在代码中,_Dissolve属性用来控制角色的消失程度,_Color属性用来设置角色的颜色。在着色器的Pass中,使用_Dissolve属性计算角色的消失程度,并使用_Color属性来设置角色的颜色。最后,将_Dissolve属性的值传递给着色器,以控制角色的消失效果。 希望这个示例能够帮助你实现Unity中的角色消失溶解隐身效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dr.勿忘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值