85 lines
1.4 KiB
Plaintext
85 lines
1.4 KiB
Plaintext
Shader "Hidden/FrameDebuggerRenderTargetDisplay" {
|
|
Properties {
|
|
_MainTex ("", any) = "white" {}
|
|
}
|
|
|
|
CGINCLUDE
|
|
#include "UnityCG.cginc"
|
|
struct appdata {
|
|
float4 vertex : POSITION;
|
|
float3 uv : TEXCOORD0;
|
|
};
|
|
|
|
struct v2f {
|
|
float4 pos : SV_POSITION;
|
|
float3 uv : TEXCOORD0;
|
|
};
|
|
|
|
v2f vert(appdata v) {
|
|
v2f o;
|
|
o.pos = UnityObjectToClipPos(v.vertex);
|
|
o.uv = v.uv;
|
|
return o;
|
|
}
|
|
|
|
fixed4 _Channels;
|
|
half4 _Levels;
|
|
|
|
fixed4 ProcessColor (half4 tex)
|
|
{
|
|
// adjust levels
|
|
half4 col = tex;
|
|
col -= _Levels.rrrr;
|
|
col /= _Levels.gggg-_Levels.rrrr;
|
|
|
|
// leave only channels we want to show
|
|
col *= _Channels;
|
|
|
|
// if we're showing only a single channel, display that as grayscale
|
|
if (dot(_Channels,fixed4(1,1,1,1)) == 1.0)
|
|
{
|
|
half c = dot(col,half4(1,1,1,1));
|
|
col = c;
|
|
}
|
|
|
|
return col;
|
|
}
|
|
ENDCG
|
|
|
|
SubShader {
|
|
Tags { "ForceSupported"="True" }
|
|
Cull Off ZWrite Off ZTest Always
|
|
|
|
// 2D texture
|
|
Pass {
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
|
|
sampler2D _MainTex;
|
|
|
|
fixed4 frag (v2f i) : SV_Target {
|
|
half4 tex = tex2D (_MainTex, i.uv.xy);
|
|
return ProcessColor (tex);
|
|
}
|
|
ENDCG
|
|
}
|
|
|
|
// Cubemap
|
|
Pass {
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
|
|
samplerCUBE _MainTex;
|
|
|
|
fixed4 frag (v2f i) : SV_Target {
|
|
half4 tex = texCUBE (_MainTex, i.uv.xyz);
|
|
return ProcessColor (tex);
|
|
}
|
|
ENDCG
|
|
}
|
|
}
|
|
FallBack off
|
|
}
|