1 Shader "Hidden/ColorCorrection3DLut" {
2     Properties {
3         _MainTex (
"Base (RGB)", 2D) = "" {}
4     }
5
6 CGINCLUDE
7
8 #include
"UnityCG.cginc"
9
10 struct
v2f {
11     float4 pos : SV_POSITION;
12     float2 uv : TEXCOORD0;
13 };
14
15 sampler2D _MainTex;
16 sampler3D _ClutTex;

17
18 float
_Scale;
19 float
_Offset;
20
21 v2f vert( appdata_img v )
22 {
23     v2f o;
24     o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
25     o.uv = v.texcoord.xy;
26     
return o;
27 }
28
29 float4 frag(v2f i) : SV_Target
30 {
31     float4 c = tex2D(_MainTex, i.uv);
32     c.rgb = tex3D(_ClutTex, c.rgb * _Scale + _Offset).rgb;
33     
return c;
34 }
35
36 float4 fragLinear(v2f i) : SV_Target
37 {
38     float4 c = tex2D(_MainTex, i.uv);
39     c.rgb= sqrt(c.rgb);
40     c.rgb = tex3D(_ClutTex, c.rgb * _Scale + _Offset).rgb;
41     c.rgb = c.rgb*c.rgb;
42     
return c;
43 }
44
45 ENDCG
46
47     
48 Subshader
49 {
50     Pass
51     {
52       ZTest Always Cull Off ZWrite Off
53
54       CGPROGRAM
55       #pragma vertex vert
56       #pragma fragment frag
57       #pragma target
3.0
58       ENDCG
59     }
60
61     Pass
62     {
63       ZTest Always Cull Off ZWrite Off
64
65       CGPROGRAM
66       #pragma vertex vert
67       #pragma fragment fragLinear
68       #pragma target
3.0
69       ENDCG
70     }
71 }
72
73 Fallback off
74 }


Gõ tìm kiếm nhanh...