SL-17975: PBR: Add light debugging
parent
b8c46f9615
commit
e6171a8d09
|
|
@ -280,6 +280,22 @@ vec2 getScreenXY(vec4 clip)
|
|||
return screen;
|
||||
}
|
||||
|
||||
// Color utils
|
||||
|
||||
vec3 colorized_dot(float x)
|
||||
{
|
||||
if (x > 0.0) return vec3( 0, x, 0 );
|
||||
if (x < 0.0) return vec3(-x, 0, 0 );
|
||||
return vec3( 0, 0, 1 );
|
||||
}
|
||||
|
||||
vec3 hue_to_rgb(float hue)
|
||||
{
|
||||
if (hue > 1.0) return vec3(0.5);
|
||||
vec3 rgb = abs(hue * 6. - vec3(3, 2, 4)) * vec3(1, -1, -1) + vec3(-1, 2, 2);
|
||||
return clamp(rgb, 0.0, 1.0);
|
||||
}
|
||||
|
||||
// PBR Utils
|
||||
|
||||
vec3 fresnelSchlick( vec3 reflect0, vec3 reflect90, float vh)
|
||||
|
|
|
|||
|
|
@ -27,7 +27,10 @@
|
|||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#define DEBUG_PBR_LIGHT_TYPE 0
|
||||
#define DEBUG_ANY_LIGHT_TYPE 0 // Output red light cone
|
||||
#define DEBUG_PBR_LIGHT_TYPE 0 // Output PBR objects in red
|
||||
#define DEBUG_LEG_LIGHT_TYPE 0 // Show Legacy objects in red
|
||||
#define DEBUG_POINT_ZERO 0 // Output zero for spotlight
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
|
@ -115,7 +118,7 @@ void main()
|
|||
}
|
||||
|
||||
#if DEBUG_PBR_LIGHT_TYPE
|
||||
colorDiffuse = vec3(0,0.5,0); colorSpec = vec3(0);
|
||||
colorDiffuse = vec3(0.5,0,0); colorSpec = vec3(0);
|
||||
#endif
|
||||
final_color = colorDiffuse + colorSpec;
|
||||
}
|
||||
|
|
@ -175,8 +178,18 @@ void main()
|
|||
}
|
||||
}
|
||||
}
|
||||
#if DEBUG_LEG_LIGHT_TYPE
|
||||
final_color.rgb = vec3(0.5,0,0.0);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if DEBUG_POINT_ZERO
|
||||
final_color = vec3(0);
|
||||
#endif
|
||||
#if DEBUG_ANY_LIGHT_TYPE
|
||||
final_color = vec3(0.3333,0,0);
|
||||
#endif
|
||||
|
||||
frag_color.rgb = final_color;
|
||||
frag_color.a = 0.0;
|
||||
#endif // LOCAL_LIGHT_KILL
|
||||
|
|
|
|||
|
|
@ -28,8 +28,9 @@
|
|||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#define DEBUG_ANY_LIGHT_TYPE 0 // Output blue light cone
|
||||
#define DEBUG_LEG_LIGHT_TYPE 0 // Show Legacy objects in blue
|
||||
#define DEBUG_PBR_LIGHT_TYPE 0 // Ouput gray if PBR multiSpot lights object
|
||||
#define DEBUG_PBR_SPOT_ZERO 0 // Output zero for spotlight
|
||||
#define DEBUG_PBR_SPOT 0
|
||||
#define DEBUG_PBR_SPOT_DIFFUSE 0 // PBR diffuse lit
|
||||
#define DEBUG_PBR_SPOT_SPECULAR 0 // PBR spec lit
|
||||
|
|
@ -44,6 +45,7 @@
|
|||
#define DEBUG_SPOT_NL 0 // monochome area effected by light
|
||||
#define DEBUG_SPOT_SPEC_POS 0
|
||||
#define DEBUG_SPOT_REFLECTION 0 // color: pos reflected along n
|
||||
#define DEBUG_SPOT_ZERO 0 // Output zero for spotlight
|
||||
|
||||
#define DEBUG_PBR_LIGHT_H 0 // Half vector
|
||||
#define DEBUG_PBR_LIHGT_L 0 // Light vector
|
||||
|
|
@ -108,6 +110,7 @@ uniform mat4 inv_proj;
|
|||
vec3 BRDFLambertian( vec3 reflect0, vec3 reflect90, vec3 c_diff, float specWeight, float vh );
|
||||
vec3 BRDFSpecularGGX( vec3 reflect0, vec3 reflect90, float alphaRoughness, float specWeight, float vh, float nl, float nv, float nh );
|
||||
void calcHalfVectors(vec3 lv, vec3 n, vec3 v, out vec3 h, out vec3 l, out float nh, out float nl, out float nv, out float vh, out float lightDist);
|
||||
vec3 colorized_dot(float x);
|
||||
bool clipProjectedLightVars(vec3 center, vec3 pos, out float dist, out float l_dist, out vec3 lv, out vec4 proj_tc );
|
||||
vec3 getLightIntensitySpot(vec3 lightColor, float lightRange, float lightDistance, vec3 v);
|
||||
vec4 getNormalEnvIntensityFlags(vec2 screenpos, out vec3 n, out float envIntensity);
|
||||
|
|
@ -119,13 +122,6 @@ void initMaterial( vec3 diffuse, vec3 packedORM, out float alphaRough, out vec3
|
|||
vec3 srgb_to_linear(vec3 cs);
|
||||
vec4 texture2DLodSpecular(vec2 tc, float lod);
|
||||
|
||||
vec3 colorized_dot(float x)
|
||||
{
|
||||
if (x > 0.0) return vec3( 0, x, 0 );
|
||||
if (x < 0.0) return vec3( x, 0, 0 );
|
||||
return vec3( 0, 0, 1 );
|
||||
}
|
||||
|
||||
vec4 getPosition(vec2 pos_screen);
|
||||
|
||||
void main()
|
||||
|
|
@ -238,7 +234,7 @@ void main()
|
|||
}
|
||||
|
||||
#if DEBUG_PBR_LIGHT_TYPE
|
||||
colorDiffuse = vec3(0.5); colorSpec = vec3(0);
|
||||
colorDiffuse = vec3(0.5,0,0); colorSpec = vec3(0);
|
||||
#endif
|
||||
|
||||
#if DEBUG_PBR_LIGHT_H
|
||||
|
|
@ -324,6 +320,9 @@ void main()
|
|||
|
||||
amb_rgb = getProjectedLightAmbiance( amb_da, dist_atten, lit, nl, noise, proj_tc.xy );
|
||||
final_color += diffuse.rgb * amb_rgb;
|
||||
#if DEBUG_LEG_LIGHT_TYPE
|
||||
final_color = vec3(0,0,0.5);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (spec.a > 0.0)
|
||||
|
|
@ -418,7 +417,10 @@ void main()
|
|||
final_color = reflect(normalize(pos), n);
|
||||
#endif
|
||||
#if DEBUG_SPOT_ZERO
|
||||
final_color = vec3(0);
|
||||
final_color = vec3(0,0,0);
|
||||
#endif
|
||||
#if DEBUG_ANY_LIGHT_TYPE
|
||||
final_color = vec3(0,0,0.3333);
|
||||
#endif
|
||||
|
||||
//not sure why, but this line prevents MATBUG-194
|
||||
|
|
|
|||
|
|
@ -27,7 +27,10 @@
|
|||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#define DEBUG_PBR_LIGHT_TYPE 0
|
||||
#define DEBUG_ANY_LIGHT_TYPE 0 // Output magenta light cone
|
||||
#define DEBUG_LEG_LIGHT_TYPE 0 // Show Legacy objects in green
|
||||
#define DEBUG_PBR_LIGHT_TYPE 0 // Show PBR objects in blue
|
||||
#define DEBUG_POINT_ZERO 0 // Output zero for point light
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
|
@ -156,8 +159,19 @@ void main()
|
|||
{
|
||||
discard;
|
||||
}
|
||||
|
||||
#if DEBUG_LEG_LIGHT_TYPE
|
||||
final_color.rgb = vec3(0,0.25,0);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if DEBUG_POINT_ZERO
|
||||
final_color = vec3(0);
|
||||
#endif
|
||||
#if DEBUG_ANY_LIGHT_TYPE
|
||||
final_color = vec3(0.25,0,0.25);
|
||||
#endif
|
||||
|
||||
frag_color.rgb = final_color;
|
||||
frag_color.a = 0.0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,12 +28,15 @@
|
|||
|
||||
/*[EXTRA_CODE_HERE]*/
|
||||
|
||||
#define DEBUG_PBR_LIGHT_TYPE 0
|
||||
#define DEBUG_ANY_LIGHT_TYPE 0 // Output green light cone
|
||||
#define DEBUG_LEG_LIGHT_TYPE 0 // Show Legacy objects in green
|
||||
#define DEBUG_PBR_LIGHT_TYPE 0 // Show PBR objects in green
|
||||
#define DEBUG_PBR_SPOT 0
|
||||
#define DEBUG_PBR_SPOT_DIFFUSE 0
|
||||
#define DEBUG_PBR_SPOT_SPECULAR 0
|
||||
|
||||
#define DEBUG_SPOT_NL 0 // monochome area effected by light
|
||||
#define DEBUG_SPOT_ZERO 0 // Output zero for spotlight
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
|
@ -223,6 +226,9 @@ void main()
|
|||
|
||||
vec3 amb_rgb = getProjectedLightAmbiance( amb_da, dist_atten, lit, nl, noise, proj_tc.xy );
|
||||
final_color += diffuse.rgb*amb_rgb;
|
||||
#if DEBUG_LEG_LIGHT_TYPE
|
||||
final_color = vec3(0,0.5,0);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (spec.a > 0.0)
|
||||
|
|
@ -278,6 +284,12 @@ void main()
|
|||
#if DEBUG_SPOT_NL
|
||||
final_color = vec3(nl);
|
||||
#endif
|
||||
#if DEBUG_SPOT_ZERO
|
||||
final_color = vec3(0,0,0);
|
||||
#endif
|
||||
#if DEBUG_ANY_LIGHT_TYPE
|
||||
final_color = vec3(0,0.3333,0);
|
||||
#endif
|
||||
|
||||
//not sure why, but this line prevents MATBUG-194
|
||||
final_color = max(final_color, vec3(0.0));
|
||||
|
|
|
|||
Loading…
Reference in New Issue