diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-17 18:28:43 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-17 18:36:05 +0300 |
commit | 260b786d0724fc115c1b9920acbbfb04a5fc6cf8 (patch) | |
tree | 13e13738fd4dee619a4f82258be04257df076d8e /intern/cycles | |
parent | 1a3abc7f79aa8f4550addfb5925fc8c3786b4753 (diff) |
Fix T60558: Cycles viewport render mismatch when the camera is a light.
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/blender/blender_camera.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp index fc86094949f..b41749a7f81 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -228,12 +228,17 @@ static void blender_camera_from_object(BlenderCamera *bcam, bcam->sensor_fit = BlenderCamera::HORIZONTAL; else bcam->sensor_fit = BlenderCamera::VERTICAL; - - bcam->motion_steps = object_motion_steps(b_ob, b_ob); } - else { - /* from light not implemented yet */ + else if(b_ob_data.is_a(&RNA_Light)) { + /* Can also look through spot light. */ + BL::SpotLight b_light(b_ob_data); + float lens = 16.0f / tanf(b_light.spot_size() * 0.5f); + if (lens > 0.0f) { + bcam->lens = lens; + } } + + bcam->motion_steps = object_motion_steps(b_ob, b_ob); } static Transform blender_camera_matrix(const Transform& tfm, |