diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-05-17 15:12:29 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2016-06-08 22:45:40 +0300 |
commit | 4f9ec43965134cfdd2961912c5402f80c1baa21f (patch) | |
tree | cef6a5ec2ee37a0447609b542d6c1cff4d67ea64 /intern/cycles/blender | |
parent | d22c061d15f6bb64ef8ce5138467869227bb4dc5 (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/blender')
-rw-r--r-- | intern/cycles/blender/blender_camera.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp index 6b459ae575f..9dec489ce33 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -65,6 +65,9 @@ struct BlenderCamera { bool use_spherical_stereo; float interocular_distance; float convergence_distance; + bool use_pole_merge; + float pole_merge_angle_from; + float pole_merge_angle_to; enum { AUTO, HORIZONTAL, VERTICAL } sensor_fit; float sensor_width; @@ -183,6 +186,10 @@ static void blender_camera_from_object(BlenderCamera *bcam, } bcam->use_spherical_stereo = b_engine.use_spherical_stereo(b_ob); + bcam->use_pole_merge = b_camera.stereo().use_pole_merge(); + bcam->pole_merge_angle_from = b_camera.stereo().pole_merge_angle_from(); + bcam->pole_merge_angle_to = b_camera.stereo().pole_merge_angle_to(); + bcam->ortho_scale = b_camera.ortho_scale(); bcam->lens = b_camera.lens(); @@ -427,6 +434,10 @@ static void blender_camera_sync(Camera *cam, BlenderCamera *bcam, int width, int cam->stereo_eye = Camera::STEREO_NONE; } + cam->use_pole_merge = bcam->use_pole_merge; + cam->pole_merge_angle_from = bcam->pole_merge_angle_from; + cam->pole_merge_angle_to = bcam->pole_merge_angle_to; + /* anamorphic lens bokeh */ cam->aperture_ratio = bcam->aperture_ratio; |