Holdout Shader not working with Vector-/ Speed Pass

Hey people,

for a compositing task, I try to give a simulated piece of cloth a motion blur in post processing via the Vector-/ Speed Pass. This is my result:



Note the subtle glitch on the upper line of the cloth.

Investigating the glitch, I had a look at the Speed Pass Render, which looks like this:



The motion is coded in RGB (and Alpha, which is left out in this jpg). The glitch is caused by the white elements (coded with max. movement in all directions, I guess?). Those are structures with a holdout shader that I use to avoid some rotoscoping.

I played around with the Alpha Treshold in the render passes, but that didn’t change anything.

Any ideas how I get the holdout shader to code no movement on the pass?

Cheers, Felix

Put the cloth on it’s own, separate render layer. Make sure that no other objects in the scene, aside from the cloth, are visible to the renderlayer. That should do it.

Hey, thanks for your answer, the problem is, that the next person in the pipeline who has to combine the rendered image with the original video is not able to rotoscope (don’t ask). I masked some of the cloth in the compositing editor, but on the left side of the image, the cloth goes around the object with the holdout shader, so a part has to be masked (behind the wall), while a part has to stay visible (in front of the wall), and I don’t see a possibility to achieve that without the holdout shader, other than rotoscoping with different layers in Nuke or After Effects which I don’t own a licence for…

Use AllZ option. It will mask it for you. Use Save buffers option to yield an antialiased result.
Edit:
The allz option will create a depth buffer mask. In effect, any object on other renderlayers which obscure the camera’s view of the object on the current renderlayer, will act as a cookie cutter and stop that portion of the current renderlayer from rendering. It will do exactly what you’re wanting if you put the flag on it’s own renderlayer.

Hey RamboBaby, I had some trouble understanding what you mean and realised now that your solution only works in the Blender internal renderer, we use Cycles. Is the solution supposed to create an alpha mask based on the Z-Values? Is this achievable in Cycles as well?

I don’t know anything about using cycles. Yes, the allz option creates an alpha mask based on depth buffer values. You could do your render with cycles and another alpha channel only render with the allz option if cycles doesn’t cooperate with blender’s compositor. Then recombine later in the program of your choice. Turning off lights within the scene for these types of masks will result in incredibly fast render times.
All z option doesn’t just clip alpha values though. It clips the entire portion of the render, whatever the channel, based on being eclipsed by the z buffer of any objects not contained on that particular render layer.

Ok, thanks for your effort anyways, but I might to choose the option of teaching my team members how to rotoscope (probably combined with Z channel informations). Cheers for proving the advantages to ask the great Blender community!
Felix