国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

Unity shader實現消融效果

2020-01-24 00:08:22
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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參數即可看到效果。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仙居县| 石渠县| 分宜县| 吉木乃县| 乐至县| 友谊县| 溧水县| 黎平县| 峨山| 尉犁县| 金山区| 太保市| 中宁县| 凯里市| 通许县| 广丰县| 同德县| 九龙城区| 康马县| 昂仁县| 怀来县| 晋江市| 吉首市| 泰州市| 梧州市| 阿勒泰市| 台州市| 惠安县| 阳江市| 芒康县| 合江县| 宁远县| 湘阴县| 枣庄市| 沁源县| 曲靖市| 门源| 武邑县| 卓资县| 夏津县| 景泰县|