时间:2021-05-20
本文实例为大家分享了Unity shader实现消融效果的具体代码,供大家参考,具体内容如下
效果图:
shader代码:
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Custom/EdgeColo" {Properties { _MainTex ("Texture", 2D) = "white" {} _NoiseTex("Noise", 2D) = "white" {} _Threshold("Threshold", Range(0.0, 1.0)) = 0.5 _EdgeLength("Edge Length", Range(0.0, 0.2)) = 0.1 _EdgeColor("Edge Color", Color) = (1,1,1,1) } SubShader { Tags { "Queue"="Geometry" "RenderType"="Opaque" } Pass { Cull Off //要渲染背面保证效果正确 CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 vertex : SV_POSITION; float2 uvMainTex : TEXCOORD0; float2 uvNoiseTex : TEXCOORD1; }; sampler2D _MainTex; float4 _MainTex_ST; sampler2D _NoiseTex; float4 _NoiseTex_ST; float _Threshold; float _EdgeLength; fixed4 _EdgeColor; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uvMainTex = TRANSFORM_TEX(v.uv, _MainTex); o.uvNoiseTex = TRANSFORM_TEX(v.uv, _NoiseTex); return o; } fixed4 frag (v2f i) : SV_Target { //镂空 fixed cutout = tex2D(_NoiseTex, i.uvNoiseTex).r; clip(cutout - _Threshold); //边缘颜色 if(cutout - _Threshold < _EdgeLength) return _EdgeColor; fixed4 col = tex2D(_MainTex, i.uvMainTex); return col; } ENDCG }}}使用方法:建一个材质球,选择此shader,然后选择一个噪声图(即:Noise),最后修改Threshold和EdgeLength参数即可看到效果。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Unity3D中shader轮廓描边效果想利用Unity3D中shader这个功能实现描边轮廓边框效果该怎么做呢,相信有很多搞开发的人想知道,为此下面就给大家介
本文实例为大家分享了Unity3DShader实现镜子效果的具体代码,供大家参考,具体内容如下/p>Shader部分代码:Shader"Custom/FanSh
本文实例为大家分享了unity实现玻璃效果的具体代码,供大家参考,具体内容如下一、使用Cubemap,做一个假反射shader代码如下:Shader"Custo
Unity3d描边框效果网上有很多,大多是使用Shader来实现的本文介绍使用Collider来实现这么一种效果效果图如下将物体添加Collider(BoxCo
本文实例为大家分享了Unity实现刮奖效果的具体代码,供大家参考,具体内容如下需要一个Shader和一个CS脚本://UpgradeNOTE:replaced'