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
|