Files
JJBB/Assets/BuiltinAssets/Shader/DefaultResources/PerformanceTools/FrameDebuggerRenderTargetDisplay.shader

85 lines
1.4 KiB
Plaintext
Raw Normal View History

2024-08-23 15:49:34 +08:00
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
}