#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_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_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