Cycles ID mask looks low sample

Is there a reason why material and object ID masks in Cycles render layers look like they were taken from a really low sample render no matter what the samples used? It’s especially noticeable with scenes with Cycles motion blur.

Here’s a view of an object ID mask on the cube with 10 samples:


And here’s a view of the same ID mask with 100 samples. It’s identical.


Compare that to the alpha of a layer with only the cube at only 10 samples.


Is this a bug or just a limitation of how Cycles works right now? If it’s a bug I’ll submit it, but if it’s not really a bug and is something that will improve with development I probably shouldn’t submit it.

Thank you.

It’s because the ID pass has no grayscale values. It gives an image with pixel at 1 for ID number 1 and pixel at 5 for ID number 5. I don’t think you can have something clean with this pass. Maybe someone found a good way to output a anti-aliased object pass in Blender?

I am pretty sure that the Index OB pass only renders one sample, not multiple samples.

It is because you are seeing the motion blur being applied to the object ID. If you want a non-motion blurred ID pass turn off motion blur. You could also link the cube to another scene and in that scene have motion blur off, grab the ID pass from that render layer and make use of it in the final composite with the scene that has the motion blur.

It is actually nice to see that motion blur works with ID passes. This is news to me.

Yup works with DoF aswell… but it really only does one sample on it rather then all the samples on it. Which means when it is blurred it doesnt match up correctly.

Thanks for the replies everybody.

I was looking for a fast, clean matte of the object with motion blur, so it doesn’t look like an object ID will work. I figured out a pretty good workaround though: just another isolated render layer with only the object like in the second screen cap I posted, but with an emission material override on the render layer to speed up the render.

Is the ID pass quality likely to improve in the future, or is there something about physical-based render engines that makes it not a good idea to render the pass at full sampling? My only guess is that it would significantly increase render time, is that it? Just wondering.

Thank you.

It’s because the ID pass has no grayscale values.

Anti-aliasing is actually the prerequisite for clean compositing.
Sincerely hope for a solution to this very annoying problem.

It’s true that I am not sure what use the ID pass is without a proper anti-aliasing and/or whatever other filtering is necessary to get a decent matte. It’s only useful in theory if/when it’s fixed at this point.

It’s become crazy.
The Blender Transparent Depth output-Node (Light Path in the Object-Nodes) makes a beautiful Antialiasing.
https://developer.blender.org/D454

Something like this for the Object-ID and everything would be perfect.

Object-ID-Output


Transparent-Depth-Output