63 lines
973 B
GLSL
63 lines
973 B
GLSL
Shader "Hidden/ComponentMaskNode"
|
|
{
|
|
Properties
|
|
{
|
|
_A ("_A", 2D) = "white" {}
|
|
}
|
|
SubShader
|
|
{
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#include "UnityCG.cginc"
|
|
#pragma vertex vert_img
|
|
#pragma fragment frag
|
|
|
|
sampler2D _A;
|
|
float _Singular;
|
|
float4 _Order;
|
|
|
|
float4 frag( v2f_img i ) : SV_Target
|
|
{
|
|
float4 a = tex2D( _A, i.uv );
|
|
float4 r = 0;
|
|
if(_Singular == 0)
|
|
r = a.x;
|
|
else if(_Singular == 1)
|
|
r = a.y;
|
|
else if(_Singular == 2)
|
|
r = a.z;
|
|
else if(_Singular == 3)
|
|
r = a.w;
|
|
|
|
if ( _Order.x == 0 )
|
|
r.x = a.x;
|
|
else if(_Order.y == 0)
|
|
r.x = a.y;
|
|
else if(_Order.z == 0)
|
|
r.x = a.z;
|
|
else if(_Order.w == 0)
|
|
r.x = a.w;
|
|
|
|
if(_Order.y == 1)
|
|
r.y = a.y;
|
|
else if(_Order.z == 1)
|
|
r.y = a.z;
|
|
else if(_Order.w == 1)
|
|
r.y = a.w;
|
|
|
|
if(_Order.z == 2)
|
|
r.z = a.z;
|
|
else if(_Order.w == 2)
|
|
r.z = a.w;
|
|
|
|
if(_Order.w == 3)
|
|
r.w = a.w;
|
|
|
|
return r;
|
|
}
|
|
ENDCG
|
|
}
|
|
}
|
|
}
|