diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-05-17 15:12:29 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-05-18 11:56:57 +0300 |
commit | cbe7f9dd03634a29082f51d05a2b1b71c6fc6aef (patch) | |
tree | c078fa28ca7fd0484076e4d7bd0a61924ee7d248 /intern/cycles/render/camera.cpp | |
parent | 7b356a856540a1affa5dc85360183418e6337a5a (diff) |
Cycles: Pole merging for spherical stereo
The idea of pole merge is to fade interocular distance after a certain
altitude to zero when altitude goes closer to a pole. This should prevent
annoyances looking up in the sky or down to the bottom.
Works for both panorama and perspective cameras when Spherical Stereo
is enabled.
Reviewers: dfelinto, brecht
Reviewed By: brecht
Subscribers: sebastian_k
Differential Revision: https://developer.blender.org/D1998
Diffstat (limited to 'intern/cycles/render/camera.cpp')
-rw-r--r-- | intern/cycles/render/camera.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp index ad96473e5d2..d992cac5312 100644 --- a/intern/cycles/render/camera.cpp +++ b/intern/cycles/render/camera.cpp @@ -76,6 +76,9 @@ Camera::Camera() stereo_eye = STEREO_NONE; interocular_distance = 0.065f; convergence_distance = 30.0f * 0.065f; + use_pole_merge = false; + pole_merge_angle_from = 60.0f * M_PI_F / 180.0f; + pole_merge_angle_to = 75.0f * M_PI_F / 180.0f; sensorwidth = 0.036f; sensorheight = 0.024f; @@ -367,6 +370,14 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene) } kcam->convergence_distance = convergence_distance; + if(use_pole_merge) { + kcam->pole_merge_angle_from = pole_merge_angle_from; + kcam->pole_merge_angle_to = pole_merge_angle_to; + } + else { + kcam->pole_merge_angle_from = -1.0f; + kcam->pole_merge_angle_to = -1.0f; + } /* sensor size */ kcam->sensorwidth = sensorwidth; |