summaryrefslogtreecommitdiffstats
path: root/debug.cginc
blob: f6c8f15dcb41cfad8bd86a1a8e3faceaaf800658 (plain)
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
61
62
63
64
65
66
67
68
69
70
#ifndef DEBUG_CGINC
#define DEBUG_CGINC

float4 apply_debug_view(v2f i, Pbr pbr, LightData light_data, BrdfData bd,
    float4 color) {
#if defined(_DEBUG_VIEW_UNLIT)
  return pbr.albedo;
#elif defined(_DEBUG_VIEW_TANGENT_SPACE_NORMALS)
  return float4((pbr.tangent_normal + 1.0f) * 0.5f, 1);
#elif defined(_DEBUG_VIEW_WORLD_SPACE_NORMALS)
  return float4((pbr.normal + 1.0f) * 0.5f, 1);
#elif defined(_DEBUG_VIEW_OBJECT_SPACE_NORMALS)
  float3 normalOS = normalize(mul((float3x3)unity_WorldToObject, pbr.normal));
  return float4((normalOS + 1.0f) * 0.5f, 1);
#elif defined(_DEBUG_VIEW_METALLIC_GLOSS)
  return float4(pbr.metallic, pbr.smoothness, 0, 1);
#elif defined(_DEBUG_VIEW_HEIGHT)
  #if defined(_PARALLAX_HEIGHTMAP) || defined(_BURLEY_TILING_HEIGHTMAP)
  return float4(F1_TO_F3(pbr.height), 1);
  #else
  return float4(0, 0, 0, 1);
  #endif
#elif defined(_DEBUG_VIEW_DEPTH)
  float2 screen_uv = i.pos.xy / _ScreenParams.xy;
  float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, screen_uv);
  depth *= 100;
  depth *= depth;
  depth *= depth;
  depth *= 100;
  return float4(depth, depth, depth, 1);
#elif defined(_DEBUG_VIEW_DIRECT_NOH)
  return float4(F1_TO_F3(light_data.direct.NoH), 1);
#elif defined(_DEBUG_VIEW_DIRECT_LOH)
  return float4(F1_TO_F3(light_data.direct.LoH), 1);
#elif defined(_DEBUG_VIEW_DIRECT_NOL)
  return float4(F1_TO_F3(light_data.direct.NoL), 1);
#elif defined(_DEBUG_VIEW_DIRECT_LOV)
  return float4(F1_TO_F3(light_data.direct.LoV), 1);
#elif defined(_DEBUG_VIEW_DIRECT_COLOR)
  return float4(light_data.direct.color, 1);
#elif defined(_DEBUG_VIEW_NOV)
  return float4(F1_TO_F3(light_data.common.NoV), 1);
#elif defined(_DEBUG_VIEW_AO)
  return float4(F1_TO_F3(light_data.common.ao), 1);
#elif defined(_DEBUG_VIEW_INDIRECT_DIFFUSE)
  return float4(light_data.indirect.diffuse, 1);
#elif defined(_DEBUG_VIEW_INDIRECT_SPECULAR)
  return float4(light_data.indirect.specular, 1);
#elif defined(_DEBUG_VIEW_BRDF_D)
  return float4(F1_TO_F3(bd.direct_d), 1);
#elif defined(_DEBUG_VIEW_BRDF_F)
  return float4(bd.direct_f, 1);
#elif defined(_DEBUG_VIEW_BRDF_G)
  return float4(F1_TO_F3(bd.direct_g), 1);
#elif defined(_DEBUG_VIEW_BRDF_DFG)
  return float4(bd.ibl_dfg, 1);
#elif defined(_DEBUG_VIEW_BRDF_D_CC)
  return float4(F1_TO_F3(bd.direct_d_cc), 1);
#elif defined(_DEBUG_VIEW_BRDF_F_CC)
  return float4(F1_TO_F3(bd.direct_f_cc), 1);
#elif defined(_DEBUG_VIEW_BRDF_G_CC)
  return float4(F1_TO_F3(bd.direct_g_cc), 1);
#elif defined(_DEBUG_VIEW_BRDF_DFG_CC)
  return float4(bd.ibl_dfg_cc, 1);
#else
  return color;
#endif
}

#endif  // DEBUG_CGINC