yum/3ner
A toon shader for Unity's BIRP.
git clone https://git.yummers.dev/yum/3ner
2808677
master
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