anchor.diff:                  |> Sg.diffuseTexture color
                   |> Sg.viewTrafo view
                   |> Sg.projTrafo proj
  -                |> Sg.uniform "Random" (AVal.constant (randomTex :> ITexture))
  -               
  +                |> Sg.uniform "Random" (AVal.constant (randomTex :> ITexture))              
                   |> Sg.uniform "Radius" config.radius
                   |> Sg.uniform "Threshold" config.threshold
                   |> Sg.uniform "Samples" config.samples
  +                |> Sg.uniform  "SampleDirections" sampleDirections
                   |> Sg.compile runtime ambientSignature
                   |> RenderTask.renderToColor halfSize
   
  
positive.code:                 let mutable occlusion = 0.0
                  for si in 0 .. uniform.Samples - 1 do
  
                      let dir = sampleDirections.[si] * uniform.Radius
                      let p = vp + x * dir.X + y * dir.Y + z * dir.Z
                
                      let f = 1.0 - uniform.Threshold / -p.Z
  
negative.code:             member x.Gamma : float = uniform?Gamma
              member x.Samples : int = uniform?Samples
              member x.Light : V3d = uniform?Light
              member x.SampleDirections : Arr<N<512>,V3d> = uniform?SampleDirections
  
          [<ReflectedDefinition>]
          let project (vp : V3d) =
  