← All ideas
  • Published 20 Jan 2026

A better depth process for Cycles

I have been working at a studio and we are using blender and delivering AOVs to compositing. The Depth / Mist / Lack of DEEP rendering has been very challenging to navigate.

The original Zdepth AOV is not antialiased (so pretty much unusable for compositing). The MIST AOV is antialiased but there is a lot of noise and requires a lot of back and forth for dialing the distance and usage in compositing (Its so very different than any other production render output Depth output). Mist also doesn't provide proper edges in the bg and I'm not entirely sure why... These days in shot production, DEEP output would solve these issues as the DEEP would provide proper antialiased Zdepth along with any p_world or position pass required... killing a lot of birds with one stone.

So to work around this we have a separate duplicate view layer with an override material with a material that uses camera Z (which is antialiased and just what we need) but unfortunately because it is overriding all materials, any existing material using an opacity map (like foliage) is rendered with the original uncut geometry rendering it also useless to compositing...

So there really isnt a usable Zdepth pass to create effects in compositing like haze, atmo, zdefocus etc...

Is there any talk or existing discussion about this? It would be great to not have to depend on an external renderer for this.

Thanks!

-Mike

100%

Development Status: Open

Upvote 4 Downvote 0
Mike-Wood
20 Jan 2026

5 Comments

eqkoss

Have you try the denoising depth pass ? (You have to enable the denoising data passes)

1
User01

I am a bit late but this looks really promising. Will definitely check that trick out for my current render.

This showcase really makes hope that this could be the key to get a proper antialised depth pass. devtalk.blender.org/t/cycles-feedback/18598/856

Lets hope that this does not take into account volumetrics too. I just wrote an suggestion to add an option exclude volumes from the Z pass since they usually make the Z pass and Poistion pass completetly unusable blender.community/c/rightclickselect/n8VE/

Edit : Unfortunately, this does not really work. It produces a depth pass thats at least antialiased and mostly takes into account transparent areas (like for leafes), but it has a lot of strange "artifacts". For a temporal solution for a subtle depth haze this at least seems to work, but its definitely not usable as a really percise antialised depth cahnel

As I have exactly the same problem in my current project, I upvote this. You are not alone. My workaround was to use layers (more than what should be needed), and use geometry node to make faces of transparent objects disappear when they are completely transparent (to not interfere with the Z pass).

1
jeroenbakker

We discussed the same feature in the past with a VFX studio and they advice to only do deep depth (as you describe as well).

The trick is that it isn't only Cycles that needs to be adapted. It will impact the image editor, compositor image IO and other areas as well. New tools needs to be designed and developed to inspect deep data. A technical topic is how to support deep data in GPU compositor and still be performant.

But for now it is still in the idea phase as other topics got more priority.

Mike-Wood Author

thanks for responding Jeroen. I understand it isn't a simple issue to fix. Glad to know yall are thinking about it. For now, I think using vray, prman etc... for depth and DEEP will be the best way forward until the implementation is figure out. (I think the AA zdepth would be possible as an aov though as the "Camera Data > View Distance/View Zdepth" is achievable as in the material editor). Ultimately this works great but because we are doing it as an overide on a view layer, material displacement and opacity maps are not picked up. Thanks again! I saw that the latest vray plugin will also render cycles materials. I can imagine a world where cycles could be the main rgba renderer, then utilizing vray as the DEEP output only.