diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-10 03:36:09 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-10 08:27:19 +0300 |
commit | 78c2063685cb6e0d0bcb895cf4eb70686455d596 (patch) | |
tree | 70f7010f9a960f087b3e5b842874a919a4e0860d /intern/cycles/render/camera.h | |
parent | 267d8923265a284c5d9a462e1d86305d613fcad8 (diff) |
Cycles: support arbitrary number of motion blur steps for cameras.
Diffstat (limited to 'intern/cycles/render/camera.h')
-rw-r--r-- | intern/cycles/render/camera.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/intern/cycles/render/camera.h b/intern/cycles/render/camera.h index 8f49a372f24..37d05c01bd9 100644 --- a/intern/cycles/render/camera.h +++ b/intern/cycles/render/camera.h @@ -141,8 +141,8 @@ public: Transform matrix; /* motion */ - MotionTransform motion; - bool use_motion, use_perspective_motion; + array<Transform> motion; + bool use_perspective_motion; float fov_pre, fov_post; /* computed camera parameters */ @@ -176,6 +176,7 @@ public: /* Kernel camera data, copied here for dicing. */ KernelCamera kernel_camera; + array<DecomposedTransform> kernel_camera_motion; /* functions */ Camera(); @@ -199,6 +200,11 @@ public: /* Calculates the width of a pixel at point in world space. */ float world_to_raster_size(float3 P); + /* Motion blur. */ + float motion_time(int step) const; + int motion_step(float time) const; + bool use_motion() const; + private: /* Private utility functions. */ float3 transform_raster_to_world(float raster_x, float raster_y); |