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 color   = result |> AVal.map (fun (c,_,_) -> c)
          let normal  = result |> AVal.map (fun (_,n,_) -> n)
          let depth   = result |> AVal.map (fun (_,_,d) -> d)
  
          let ambient = 
              Sg.fullScreenQuad
  
negative.code:                 let mutable occlusion = 0.0
                  for si in 0 .. uniform.Samples - 1 do
  
                      let dir = uniform.SampleDirections.[si] * uniform.Radius
                      let p = vp + x * dir.X + y * dir.Y + z * dir.Z
                
                      let f = 1.0 - uniform.Threshold / -p.Z
  