Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Shutter opening and closing rates are controlled by the shutteropening RiCamera option. The shutter interval is determined by the values passed to RiShutterthe shutteropening on the camera projection shader. In shutter-normalized time, the shutter interval is mapped to [0,1]. The basic version of the shutteropening option takes two parameters in this time:

Camera "world" "float[2] shutteropening" [opentime closetime]

The shutter begins opening at time 0. The opentime is the time at which it becomes fully open. Between opentime and closetime the shutter remains fully open. At closetime, it begins closing, and it fully closes at time 1.

...

By modifying the shutteropening parameters to [0.0 0.0], we can make the shutter still open instantaneously, but then spend the time between 0 and 1 closing at a constant speed. This generates the most samples at the beginning of the sphere's motion, at screen left, and gradually fewer samples as it moves across the screen, making the blur fade out to screen right.

Camera "world" "float[2] shutteropening" [0.0 0.0]

Having this shutter spend the entire interval opening and then close instantaneously reverses the image and the blur fades in over the sphere's motion.

Camera "world" "float[2] shutteropening" [1.0 1.0]

Since real camera shutters cannot move infinitely fast, they generally spend some nonzero amount of time opening, remain open for a bit, and then spend some nonzero amount of time closing. We can model this by having the shutter opening between 0 and 0.35, fully-open between 0.35 and 0.65, and closing between 0.65 and 1.

Camera "world" "float[2] shutteropening" [0.35 0.65]

To approximate a real camera shutter even more accurately, we can relax the restriction that it opens and closes at a constant rate and model the acceleration of the shutter as it begins to open and the deceleration as it reaches its fully open or fully closed position. For this we need a more complex parametric description:

Camera "world" "float[10] shutteropening" [opentime closetime c1 c2 d1 d2 e1 e2 f1 f2]

...

Here are images of the shutter taking the entire interval to open. The first is the same as before, with the shutter opening at a constant rate. The second bends the bezier curve segment down to make the shutter open very slowly at first and accelerate throughout the opening interval, going very fast at the point that it finally becomes fully open. This moves the distribution of motion samples even more towards the end of the shutter interval, so the streak at the beginning of the interval is less pronounced and it becomes brighter more sharply.

Camera "world" "float[10] shutteropening" [1 1 0 0 1 1 1 1 1 1]


 

Camera "world" "float[10] shutteropening" [1 1 0.8 0.1 0.9 0.2 1 1 1 1]

...