本文实例为大家分享了统一材质实现消融效果的具体代码,供大家参考,具体内容如下
效果图:
材质代码:
//注意:升级替换mul (UNITY_MATRIX_MVP, *)”与“UnityObjectToClipPos (*)” 材质“定制/EdgeColo”{ 属性 { _MainTex(“纹理”,2 d)=鞍咨眥} _NoiseTex(“噪音”,2 d)=鞍咨眥} _Threshold(“阈值”,范围(0.0,1.0))=0.5 _EdgeLength(边缘长度、范围(0.0,0.2))=0.1 _EdgeColor(“边缘颜色”,颜色)=(1,1,1,1) } SubShader { 标记{“队列”=凹负巍薄癛enderType”=安煌该鳌眪 通过 { 剔除掉//要渲染背面保证效果正确 CGPROGRAM # pragma顶点绿色 # pragma片段的破片 # include“UnityCG.cginc” struct appdata { float4顶点:位置; float2紫外线:TEXCOORD0; }; struct v2f { float4顶点:SV_POSITION; float2 uvMainTex: TEXCOORD0; float2 uvNoiseTex: TEXCOORD1; }; sampler2D _MainTex; float4 _MainTex_ST; sampler2D _NoiseTex; float4 _NoiseTex_ST; 浮动_Threshold; 浮动_EdgeLength; fixed4 _EdgeColor; v2f绿色(appdata v) { v2f o; o。顶点=UnityObjectToClipPos (v.vertex); o。uvMainTex=TRANSFORM_TEX (v。紫外线、_MainTex); o。uvNoiseTex=TRANSFORM_TEX (v。紫外线、_NoiseTex); 返回啊; } fixed4碎片弹(v2f我):SV_Target {//镂空 固定断路=tex2D (_NoiseTex i.uvNoiseTex) r; 剪辑(断路_Threshold);//边缘颜色 如果(断路- _Threshold & lt;_EdgeLength) 返回_EdgeColor; fixed4坳=tex2D (_MainTex i.uvMainTex); 返回上校; } ENDCG } } } >之前使用方法:建一个材质球,选择此材质,然后选择一个噪声图(即:噪声),最后修改阈值和EdgeLength参数即可看到效果。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
统一材质实现消融效果