I'm trying to make an echo effect and then feathering the edges of the object so it becomes a frozen smear.

  • I know how this ref was made (bullet time rig) but wondering how to get the same in blender, on a mesh.
  • 2
    $\begingroup$ Hi :). What have you tried so far and where exactly are you stuck? $\endgroup$ Jan 22, 2022 at 13:38
  • $\begingroup$ At a quick glance it looks mostly like superimposed multiple exposures. Probably the same bit of video offset a few frames. The trick seems to be to age out the older frames by making them more transparent. Toss in some motion blur and use a lot of camera movement to fool the eye. $\endgroup$ Jan 22, 2022 at 14:55
  • $\begingroup$ This is as far as I have got: we.tl/t-pyOAQZ7hMc Any ideas on how to make it more wispy, streaky? $\endgroup$
    – Simon
    Jan 22, 2022 at 17:25

1 Answer 1


The effect appears to be caused by having many cameras at slight offsets from each other, taking an exposure of objects in motion set against stable background objects. The exposures are then played in sequence (each a frame) to give the camera-motion sensation.

If I wanted to accomplish this as stated, there are two tasks that I would undertake in my solution.

The first is to model the motionless and in-motion objects. You'll only be taking a shot at one frame with multiple cameras, but I'd set up Motion Blur in the Renderer settings. I'd use a single camera to test to iterate on the MB settings until I have sufficient and desired motion blur.

enter image description here

So a single image of the motion blurred rendering (here a single red cube amongst others that aren't in motion):

enter image description here

If the objects were complex (example: people dancing), I might cheat by Importing a "Picture as Plane", and animate the planes in motion. These could also use an alpha channel in the rendering node to create some transparency.

To have the "array of cameras", I would use a python script to slowly move a single camera by some incremental position, and render and store that image into a series of files (basename with some incrementing value). I'd use a constraint to have the camera always looking at (Track To) some empty (that can also be animated to pan somewhat, and the Influence can be adjusted (but not animated)).

enter image description here

The script would be something like:

import bpy

filepathFmt="C:\\tmp\\render\\art {0:04d}.jpg"
nFrames=90 # total number of camera positions and rendered frames
camera = bpy.data.objects['Camera']
fp = filepathFmt.format( 1 )
print("rendering " + fp )

## render nFrames shots while moving the camera
for frameIdx in range(1, nFrames, 1):
    ### render and save:
        fp = filepathFmt.format( frameIdx )
        print("rendering " + fp )
        bpy.context.scene.render.filepath = fp
        bpy.ops.render.render( write_still=True )
        print("exception: render")              
    print("rendered " + fp )
    # move the camera for the next frame
    print( camera.location )
    camera.location[0] += xOffset
    camera.location[1] += yOffset
    camera.location[2] += zOffset

So you'll see something like:

enter image description here

And I bet you want this approach handed you to on the proverbial silver platter!

If you appreciate this please mark this as "Solution"

  • 1
    $\begingroup$ James....THANK YOU! $\endgroup$
    – Simon
    Jan 22, 2022 at 22:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .