]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/ambientocclusion.cpp
Take ambient occlusion samples only from the forward hemisphere
[libs/gl.git] / source / effects / ambientocclusion.cpp
index a407c2d9918621b3aa9f057fd93597845635f1e9..430ac0ba86556747005fb046ce5a3e32aaaddb7d 100644 (file)
@@ -73,8 +73,8 @@ void AmbientOcclusion::set_n_samples(unsigned n)
        Vector3 sample_points[32];
        for(unsigned i=0; i<n; ++i)
        {
-               float z = static_cast<float>(i)/n;
-               float r = sqrt(1.0f-z*z);
+               float r = static_cast<float>(i)/n;
+               float z = sqrt(1.0f-r*r);
                float d = radical_inverse(i);
                Geometry::Angle<float> a = Geometry::Angle<float>::from_turns(d);
                sample_points[i] = Vector3(cos(a)*r, sin(a)*r, z)*(0.1f+0.9f*d*d);