标签:tmp convert HDRP Shader FilterfColor Unity float4 float3 dis
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Unlit/MakeSpecifiedColorTransparent" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} //在这里填入过滤之后保留的底色或基低贴图 _FilterfColor("Ridof (RGB)",Color)=(0,0,0,1) //在这里填写自己需要过滤的颜色 } SubShader { Tags { "RenderType"="Opaque" } Blend SrcAlpha OneMinusSrcAlpha pass { CGPROGRAM #pragma vertex vertext_convert #pragma fragment fragment_convert #include "UnityCG.cginc" sampler2D _MainTex; sampler2D _MainTex1; float4 _FilterfColor; struct Inputvrite { float4 vertex : POSITION; float4 texcoord : TEXCOORD0; }; struct Inputfragment { float4 pos : SV_POSITION; float4 uv : TEXCOORD0; }; float ColorLerp(float3 tmp_nowcolor,float3 tmp_FilterfColor) { float3 dis = float3(abs(tmp_nowcolor.x - tmp_FilterfColor.x),abs(tmp_nowcolor.y - tmp_FilterfColor.y),abs(tmp_nowcolor.z - tmp_FilterfColor.z)); float dis0 =sqrt(pow(dis.x,2)+pow(dis.y,2)+pow(dis.z,2)); float maxdis = sqrt(3); float dis1 = lerp(0,maxdis,dis0); return dis1; } Inputfragment vertext_convert(Inputvrite i) { Inputfragment o; o.pos = UnityObjectToClipPos(i.vertex); o.uv = float4(i.texcoord.xy,1,1); return o; } float4 fragment_convert(Inputfragment o) : COLOR { float4 c = tex2D(_MainTex,o.uv); c.a *=ColorLerp(c.rgb,_FilterfColor.rgb); return c; } ENDCG } } FallBack "Diffuse" }
在HDRP中可以剔除颜色
来源:https://www.cnblogs.com/ezhar/p/13432289.html
标签:tmp,convert,HDRP,Shader,FilterfColor,Unity,float4,float3,dis 来源: https://www.cnblogs.com/dj1232090/p/14250876.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。