Is there any way i can have cleaner edges out of the cryptomatte image output ? The outline is just not clean enough.

enter image description here

  • 1
    $\begingroup$ Cryptomattes are absolutely precise and deliver the masks that are required to my knowledge. Can you add some images to show what you are struggling with? $\endgroup$ – aliasguru Jun 25 '19 at 11:07
  • $\begingroup$ @aliasguru i just put up a photo of what i meant $\endgroup$ – kay777 Jun 30 '19 at 11:37
  • $\begingroup$ I have posted an answer based on a guess what could have gone wrong. If you're having a different issue, please update the question with the relevant info. $\endgroup$ – aliasguru Jul 1 '19 at 8:41

I assume your screenshot shows what you would see in the image editor if you have rendered cryptomatte passes, and view them directly. In that case, they look absolutely horrible:

cryptomatte in raw display

However, that's not how they are supposed to be used. The mattes have to be extracted from the created channels first using the Cryptomatte node. You can find it under Add -> Mattes -> Cryptomatte in the Compositor. Connect the nodes like in the screenshot below to extract the object mattes:

nodes connected

If you need to extract material mattes, connect the three material Cryptomatte outputs to the Cryptomatte node instead.

Next comes the tricky part: The Cryptomatte render passes contain all mattes at once using an internal ID. That ID needs to be set in the node. Since these are not simple 1, 2, 3, etc numbers, you have to pick the correct ID using the color picker. That is also the reason why in the screenshot above I have used two Image Editors, one showing the Composite, the other the Viewer node. I can see both images, the Pick one through the Viewer, and the Image through the Composite node.

Now, use the color picker to grab the ID from the bottom image (the one that shows the Pick image):

pick mattes

If you check what's in the Matte socket output, you will see that the created Matte is perfectly anti-aliased:

anti-aliased matte

Of course, this anti-aliasing quality is dependent on the scene samples. But the matte quality always matches the image quality.


Two things I would add to what's been shared so far:

1. You will also see a difference in edge quality based upon Cycles Render Properties>Film>Pixel Filter settings. Filter "Type" and pixel "Width" will give you wildly different edges, ranging from super crunchy to sharp and smooth to blurry. Automatically, you should get mattes that match your renders.

enter image description here

2. A perfect matte will FAIL on edges if your subject and background are merged like in a photo, live video recording, or a 3D scene that is not done in separate subject / background layer passes. This foundational video by CG Cookie really opened my eyes to this and how to workaround it when you don't have separate render layers: Working with Alpha Edges for Compositing in Blender. Although the video is from 2013, way before Cryptomattes, the principles and techniques still apply and can be combined wonderfully with Cryptomattes. Basically, you have to use choke mattes and inpaint nodes to separate the subject from the background and decontaminate the edges from color blending. I hope this helps you!

  • $\begingroup$ Do you mind adding a meaningful comparison of the defaults vs. blackman-harris? Thanks $\endgroup$ – brockmann Apr 7 '20 at 6:36
  • $\begingroup$ Blackman-Harris @ 1.50 px is default for Cycles as of 2.82a with a nice balance of sharpness and anti-aliasing. Box is sharper with no adjustable pixel settings. Gaussian is generally soft with adjustable pixel width. The nice thing about Cryptomattes is that they will automatically match the sharpness of your edges based upon pixel filter settings. $\endgroup$ – Coby Randal Apr 7 '20 at 7:37
  • $\begingroup$ Thanks Coby. I need to test that. However, I think Cryptomatte should work out of the box so any side by side image comparison might be nice to get your idea. $\endgroup$ – brockmann Apr 7 '20 at 8:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.