diff options
Diffstat (limited to 'intern/cycles/blender/blender_camera.cpp')
-rw-r--r-- | intern/cycles/blender/blender_camera.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp index cde3840b796..5f2e0762964 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -39,6 +39,9 @@ struct BlenderCamera { Camera::MotionPosition motion_position; float shutter_curve[RAMP_TABLE_SIZE]; + Camera::RollingShutterType rolling_shutter_type; + float rolling_shutter_duration; + float aperturesize; uint apertureblades; float aperturerotation; @@ -86,6 +89,8 @@ static void blender_camera_init(BlenderCamera *bcam, BL::RenderSettings b_render bcam->sensor_fit = BlenderCamera::AUTO; bcam->shuttertime = 1.0f; bcam->motion_position = Camera::MOTION_POSITION_CENTER; + bcam->rolling_shutter_type = Camera::ROLLING_SHUTTER_NONE; + bcam->rolling_shutter_duration = 0.1f; bcam->border.right = 1.0f; bcam->border.top = 1.0f; bcam->pano_viewplane.right = 1.0f; @@ -418,6 +423,9 @@ static void blender_camera_sync(Camera *cam, BlenderCamera *bcam, int width, int cam->fov_post = cam->fov; cam->motion_position = bcam->motion_position; + cam->rolling_shutter_type = bcam->rolling_shutter_type; + cam->rolling_shutter_duration = bcam->rolling_shutter_duration; + memcpy(cam->shutter_curve, bcam->shutter_curve, sizeof(cam->shutter_curve)); /* border */ @@ -460,6 +468,19 @@ void BlenderSync::sync_camera(BL::RenderSettings b_render, BL::Object b_override break; } + switch(RNA_enum_get(&cscene, "rolling_shutter_type")) { + case 0: + bcam.rolling_shutter_type = Camera::ROLLING_SHUTTER_NONE; + break; + case 1: + bcam.rolling_shutter_type = Camera::ROLLING_SHUTTER_TOP; + break; + default: + bcam.rolling_shutter_type = Camera::ROLLING_SHUTTER_NONE; + break; + } + bcam.rolling_shutter_duration = RNA_float_get(&cscene, "rolling_shutter_duration"); + /* border */ if(b_render.use_border()) { bcam.border.left = b_render.border_min_x(); |