zoukankan      html  css  js  c++  java
  • unity shader 剔除指定的颜色

    Shader "MyShader/PaintingBGTransparency" {
    	Properties{
    		_MainTex("Base (RGB)", 2D) = "white" {}
    		_FilterfColor("Ridof (RGB)",Color) = (1,1,1,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"
    }
    

      

  • 相关阅读:
    [编程题] 数组中的重复数字
    Redis数据结构之集合命令
    Redis数据结构之字符串命令
    Docker安装mysql
    后缀数组与字符串匹配
    牛客小白月赛11 Rinne Loves Edges
    牛客小白月赛11 Rinne Loves Xor
    牛客练习赛39 B.选点
    欧拉函数
    51 Nod 1700 首尾排序法
  • 原文地址:https://www.cnblogs.com/Jason-c/p/11383901.html
Copyright © 2011-2022 走看看