yum/3ner

A toon shader for Unity's BIRP.

git clone https://git.yummers.dev/yum/3ner

yumAdd tangent vector debug view2808677

master
2.6 KiB72 linesraw
1#ifndef DEBUG_CGINC
2#define DEBUG_CGINC
3
4float4 apply_debug_view(v2f i, Pbr pbr, LightData light_data, BrdfData bd,
5    float4 color) {
6#if defined(_DEBUG_VIEW_UNLIT)
7  return pbr.albedo;
8#elif defined(_DEBUG_VIEW_TANGENT_SPACE_NORMALS)
9  return float4((pbr.tangent_normal + 1.0f) * 0.5f, 1);
10#elif defined(_DEBUG_VIEW_WORLD_SPACE_NORMALS)
11  return float4((pbr.normal + 1.0f) * 0.5f, 1);
12#elif defined(_DEBUG_VIEW_OBJECT_SPACE_NORMALS)
13  float3 normalOS = normalize(mul((float3x3)unity_WorldToObject, pbr.normal));
14  return float4((normalOS + 1.0f) * 0.5f, 1);
15#elif defined(_DEBUG_VIEW_TANGENT_VECTORS)
16  return float4((i.tangent.xyz + 1.0f) * 0.5f, 1);
17#elif defined(_DEBUG_VIEW_METALLIC_GLOSS)
18  return float4(pbr.metallic, pbr.smoothness, 0, 1);
19#elif defined(_DEBUG_VIEW_HEIGHT)
20  #if defined(_PARALLAX_HEIGHTMAP) || defined(_BURLEY_TILING_HEIGHTMAP)
21  return float4(F1_TO_F3(pbr.height), 1);
22  #else
23  return float4(0, 0, 0, 1);
24  #endif
25#elif defined(_DEBUG_VIEW_DEPTH)
26  float2 screen_uv = i.pos.xy / _ScreenParams.xy;
27  float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, screen_uv);
28  depth *= 100;
29  depth *= depth;
30  depth *= depth;
31  depth *= 100;
32  return float4(depth, depth, depth, 1);
33#elif defined(_DEBUG_VIEW_DIRECT_NOH)
34  return float4(F1_TO_F3(light_data.direct.NoH), 1);
35#elif defined(_DEBUG_VIEW_DIRECT_LOH)
36  return float4(F1_TO_F3(light_data.direct.LoH), 1);
37#elif defined(_DEBUG_VIEW_DIRECT_NOL)
38  return float4(F1_TO_F3(light_data.direct.NoL), 1);
39#elif defined(_DEBUG_VIEW_DIRECT_LOV)
40  return float4(F1_TO_F3(light_data.direct.LoV), 1);
41#elif defined(_DEBUG_VIEW_DIRECT_COLOR)
42  return float4(light_data.direct.color, 1);
43#elif defined(_DEBUG_VIEW_NOV)
44  return float4(F1_TO_F3(light_data.common.NoV), 1);
45#elif defined(_DEBUG_VIEW_AO)
46  return float4(F1_TO_F3(light_data.common.ao), 1);
47#elif defined(_DEBUG_VIEW_INDIRECT_DIFFUSE)
48  return float4(light_data.indirect.diffuse, 1);
49#elif defined(_DEBUG_VIEW_INDIRECT_SPECULAR)
50  return float4(light_data.indirect.specular, 1);
51#elif defined(_DEBUG_VIEW_BRDF_D)
52  return float4(F1_TO_F3(bd.direct_d), 1);
53#elif defined(_DEBUG_VIEW_BRDF_F)
54  return float4(bd.direct_f, 1);
55#elif defined(_DEBUG_VIEW_BRDF_G)
56  return float4(F1_TO_F3(bd.direct_g), 1);
57#elif defined(_DEBUG_VIEW_BRDF_DFG)
58  return float4(bd.ibl_dfg, 1);
59#elif defined(_DEBUG_VIEW_BRDF_D_CC)
60  return float4(F1_TO_F3(bd.direct_d_cc), 1);
61#elif defined(_DEBUG_VIEW_BRDF_F_CC)
62  return float4(F1_TO_F3(bd.direct_f_cc), 1);
63#elif defined(_DEBUG_VIEW_BRDF_G_CC)
64  return float4(F1_TO_F3(bd.direct_g_cc), 1);
65#elif defined(_DEBUG_VIEW_BRDF_DFG_CC)
66  return float4(bd.ibl_dfg_cc, 1);
67#else
68  return color;
69#endif
70}
71
72#endif  // DEBUG_CGINC