Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-07-21 16:36:35 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-07-21 18:40:03 +0300
commitdc3563ff4801907ec8cd21a1589f0cb56d021a8f (patch)
tree88743d23f009deb1d3a3cc379ba1d67f5116a91e /intern/cycles/blender/blender_sync.h
parent1df42798d46d031c7666a75b47faa0d20fc965ef (diff)
Cycles: Implement camera zoom motion blur
Works totally similar to camera motion blur and majority of the changes are related on just passing extra arguments to sync() functions. Couple of things still to look into: - Motion pass will not include motion caused by the zoom. - Only perspective cameras are supported currently. - Motion is being interpolated on projected coordinates, which might give different results from constructing projection matrix from interpolated field of view. This could be good enough for us, but we need to consider improving this at some point. Reviewers: juicyfruit, dingto Reviewed By: dingto Differential Revision: https://developer.blender.org/D1383
Diffstat (limited to 'intern/cycles/blender/blender_sync.h')
-rw-r--r--intern/cycles/blender/blender_sync.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index b8bd14c0f71..efc6ae94542 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -53,7 +53,12 @@ public:
/* sync */
bool sync_recalc();
- void sync_data(BL::SpaceView3D b_v3d, BL::Object b_override, void **python_thread_state, const char *layer = 0);
+ void sync_data(BL::RenderSettings b_render,
+ BL::SpaceView3D b_v3d,
+ BL::Object b_override,
+ int width, int height,
+ void **python_thread_state,
+ const char *layer = 0);
void sync_render_layers(BL::SpaceView3D b_v3d, const char *layer);
void sync_integrator();
void sync_camera(BL::RenderSettings b_render, BL::Object b_override, int width, int height);
@@ -75,7 +80,11 @@ private:
void sync_lamps(bool update_all);
void sync_materials(bool update_all);
void sync_objects(BL::SpaceView3D b_v3d, float motion_time = 0.0f);
- void sync_motion(BL::SpaceView3D b_v3d, BL::Object b_override, void **python_thread_state);
+ void sync_motion(BL::RenderSettings b_render,
+ BL::SpaceView3D b_v3d,
+ BL::Object b_override,
+ int width, int height,
+ void **python_thread_state);
void sync_film();
void sync_view();
void sync_world(bool update_all);
@@ -98,7 +107,10 @@ private:
void sync_light(BL::Object b_parent, int persistent_id[OBJECT_PERSISTENT_ID_SIZE], BL::Object b_ob, Transform& tfm, bool *use_portal);
void sync_background_light(bool use_portal);
void sync_mesh_motion(BL::Object b_ob, Object *object, float motion_time);
- void sync_camera_motion(BL::Object b_ob, float motion_time);
+ void sync_camera_motion(BL::RenderSettings b_render,
+ BL::Object b_ob,
+ int width, int height,
+ float motion_time);
/* particles */
bool sync_dupli_particle(BL::Object b_ob, BL::DupliObject b_dup, Object *object);