Page MenuHome

Material ID and Object ID artifacts using Depth of Field or Motion blur
Closed, ArchivedPublic

Description

Cycles has a problem dealing with the render passes Material ID and Object ID when using Motion Blur or Depth of field. Please check:

https://www.youtube.com/watch?v=b3EQ4tYZdB8

This make the render passes pipeline useless if you cannot isolate objects when using motion blur or depth of field without these artifacts.

System Information
Windows 10, Windows 7

Blender Version
2.78

Details

Type
Bug

Event Timeline

It's not a bug, this is how ID passes work.
Unless Criptomatte or something similar (maybe AOV) is implemented I think this isn't going to be improved. But I may be wrong.
An ID is rendered in a pass as a color with the same value (ID 100 = white color of value 100) , now if we've got a blurry ID of 100 over an ID of 40, how do we know if the blurry ID is part of the ID 100 or the ID 40 ?
I think it's the case in other renderer as well .

You may consider doing post process DOF and motion blur, or dilate / blur the IDmask to do a broad color correction.
Another solution is to output custom masks, by doing another renderlayer and using a material override. In the material you set an emission shader and map 3 object ID to R,G,B colors.
You'll be limitated to 3 ID (rgb) but you'll have masks with antialiasing DOF and motion blur.

There is no perfect solution here, sadly ...

Brecht Van Lommel (brecht) closed this task as Archived.
Brecht Van Lommel (brecht) claimed this task.

Correct, this is a known limitation. It's possible to do things like get the ID value for the closest object, but that's still almost equally useless in practice.

Cryptomatte or deep compositing is needed for a proper solution here.