small fix for equisolid fisheye (cycles)
authorDalai Felinto <dfelinto@gmail.com>
Fri, 4 May 2012 16:29:41 +0000 (16:29 +0000)
committerDalai Felinto <dfelinto@gmail.com>
Fri, 4 May 2012 16:29:41 +0000 (16:29 +0000)
the FOV formular is: R = 2 * lens * sin (theta / 2)
in this case theta is fov/2 already, thus the fix

intern/cycles/kernel/kernel_montecarlo.h

index 3fb4d41ce067dec6fb582e5f983ee0d2eeab6465..ba24c2ea402cc2d18513d3ba915f99174928756f 100644 (file)
@@ -255,7 +255,7 @@ __device float3 fisheye_equisolid_to_direction(float u, float v, float lens, flo
        u = (u - 0.5f) * width;
        v = (v - 0.5f) * height;
 
        u = (u - 0.5f) * width;
        v = (v - 0.5f) * height;
 
-       float rmax = 2.f * lens * sinf(fov * 0.5f);
+       float rmax = 2.f * lens * sinf(fov * 0.25f);
        float r = sqrt(u*u + v*v);
 
        if (r > rmax) {
        float r = sqrt(u*u + v*v);
 
        if (r > rmax) {