-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathColourToLum.shader
More file actions
60 lines (48 loc) · 1.2 KB
/
ColourToLum.shader
File metadata and controls
60 lines (48 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "PopUnityCommon/ColourToLum" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
}
SubShader {
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
sampler2D _MainTex;
struct VertexInput {
float4 Position : POSITION;
float2 uv_MainTex : TEXCOORD0;
};
struct FragInput {
float4 Position : SV_POSITION;
float2 uv_MainTex : TEXCOORD0;
};
float RgbaToLum(fixed4 Rgba)
{
// gr: get proper lum weights
float Lumr = Rgba.x * 0.3333f;
float Lumg = Rgba.y * 0.3333f;
float Lumb = Rgba.z * 0.3333f;
return Lumr + Lumg + Lumb;
}
float GetLuminance(float2 BlockUv,int XOffset,int YOffset)
{
fixed4 Rgba = tex2D ( _MainTex, BlockUv );
return RgbaToLum( Rgba );
}
FragInput vert(VertexInput In) {
FragInput Out;
Out.Position = UnityObjectToClipPos (In.Position );
Out.uv_MainTex = In.uv_MainTex;
return Out;
}
fixed4 frag(FragInput In) : SV_Target {
float Lum = GetLuminance( In.uv_MainTex, 0, 0 );
return float4( Lum, Lum, Lum, 1 );
return fixed4(1,1,0,1);
}
ENDCG
}
}
}