RGB Speed Vector Pass in external compositing apps

Hello wise Blender vets,

I’m trying to work out how to get a RGB Speed vector pass to work with Nuke or AE using ReelSmart Motion Blur 3.

To obtain this pass, in render nodes, I’m hooking up a File Output node to the Speed output on the render layer.

Each 3D app exports a variation on the Speed Vector theme, and I’m trying to get Blender’s to more resemble those that Maya spits out. RSMB does a fairly good job on the SV pass from Blender, but I was wondering if you could fake it thus:

Could you construct a cube to encapsulate your whole geometry, and place coloured Area lamps at each axis (middle of each face of the cube, inverted normals) pointing to the exact centre of the cube, then parent the lamps to the cube and the cube to the camera. Then colour all your geometry white with a premul black background. The result would at least LOOK like an RGB pass, even if pixel speed was not being calculated.

Or - and I’ve had a look at the Nuke/Reelsmart websites, is there a way to convert the Speed Vector process used by Blender to one employed by Maya/Mental Ray?

Hi, I’m not sure how the other formats work, but I can describe Blender’s speed vector pass format. It’s 4 channels (coming in RGBA)
R: pixel displacement in X from current frame to previous frame
G: pixel displacement in Y from current frame to previous frame
B: pixel displacement in X from current frame to next frame
A: pixel displacement in Y from current frame to next frame

From memory, it’s always stored relative to the current frame, so if something’s moving left to right, the R and G channels will be negative. I could be wrong here though.

So you just have to find a way to convert that into a format that the other filters will understand :slight_smile:

1 Like

So Z channel is not used at all? I understood it was.

This is helpful - RSMB can use the speed vector output but it interprets it strangely - perhaps because Blender’s XYZ orientation is set from top view not front.

I’m going to have to run a few tests, or find out how Vector Blur in the nodes uses that speed vector channel.

Sorry for bumping this ancient thread!! :slight_smile:
But this is extremely revelant still, I’ve been trying aswell to get RSMB to read this damn thing.
Anyone had any success here?

i have the same problem, i render in max and vray vector pass, but i could not get it working in blender’s vector blur node:(.
i hope some find an answer :slight_smile:

After Effects Vector Blur will accept a layer as a value, but I have had no luck using Blender output to re-create the desired effect there either. It needs to be greyscale.

Perhaps some node guru can post a way to convert the speed pass to After Effects compatible output?

Well, for both import and export, in order to be compatible, what needs to be added/changed in Blender are as follows:

Export:
Move the RGBA values and corresponding X,Y,Z values under user control.
I.e. let the user specify wich of the movement-axis represents wich of the colors in the spectrum.
This could be placed under the Post Processing part of the render settings tab or some other suitable location.

Import:
Modify the Vectorblur node so that the user can specify wich of the input colors in the spectrum represents the different movement axis.
Possily with an “Advanced” tab on the Vectorblur node itself.

as for this it could be done in compositor easily :eek:

Import:
Modify the Vectorblur node so that the user can specify wich of the input colors in the spectrum represents the different movement axis.
Possily with an “Advanced” tab on the Vectorblur node itself.
but this one that needs the work :spin:

I hook up a file output node to the vector output on the render layer, but I get a exr file with only 3 channels (RGB), how can I get channel A. which version of blender do you use? Is this reason? My version of blender is 2.79b