 
 void main(void)
 {
+  phi = random(gl_FragCoord.xy)*TWOPI;
+  
   // Get base fragment color, which will be attenuated based on visible light
   vec4 color = gl_Color * texture2D(osgShadow_baseTexture, gl_TexCoord[0].xy);
   

// - texture coordinate (x,y) in NDC coordinates [-1,+1]
// - fragDist/planeDist/lightDist are actual depth distances from focal point
// - planeSign is +1.0 for umbra (faces towards light), -1.0 for penumbra (faces away from light)
// + Returns vec3 = [vec2(center point), float(radius)] in texture coordinates [0, 1]
vec3 ShadowCoverageCircle(vec2 texCoordNDC, float fragDist, float planeDist, float lightDist, float planeSign)
{
  // Ratio of fragment distance to test plane distance
  float zF_zP = fragDist / planeDist;

#define TWOPI 6.28318530718
#define GOLDENANGLE 2.39996323

float phi;

// Reference: https://thebookofshaders.com/10/
float random(vec2 p)
{
