0
$\begingroup$

When rendering a mist pass in cycles in a scene that contains textures with alpha, it becomes essentially unusable due to noise. All posts and solutions I could find about this seem to be outdated and not work anymore. How can I get rid of the noise without removing the alpha or removing values in between 0 and 1? Increasing transparency bounces any higher is also not feasible as it would increase render time too much.

This is the mist pass with alpha: Noisy mist pass

This is the mist pass without (what it SHOULD look like): Clean mist pass, without alpha textures

here's the test file I used to re-produce the issue:

$\endgroup$
2
  • 1
    $\begingroup$ If you want to get more meaningful help, you should share more information, like screenshots of your render settings at least and the .blend file if possible. You can use blend-exchange.com for the .blend file $\endgroup$ Commented Mar 14, 2023 at 9:35
  • $\begingroup$ Thanks, I added the file I used to re-produce the issue in the question above. $\endgroup$
    – Aci
    Commented Mar 14, 2023 at 14:12

3 Answers 3

1
$\begingroup$

Transparency bounces are not about "feasible" - they are about possible or not. If you don't have enough, the transparency is going to stop being transparent at some depth. So you need a lot, because you have a lot of transparent surfaces. This, however, does not seem to be the issue, since whatever number you are using seems to work. The issue is samples. You need more samples to clean up the noise. Samples tend to take longer the more bounces you have, so you could try reducing the amount of transparent and other kinds of bounces until you start seeing visible problems with your image and increasing the amount of samples you render. This is going to take time to render no matter what. You could use denoising in the Compositor just for this pass, but of course you are going to lose detail with it and with this particular situation with lots of small detail it is not going to do miracles alone. You could try building a shader to get the same result as the pass and render only this mist effect to separate view layer with material and samples override so you don't need to sample other possibly complex passes with too many samples.

$\endgroup$
2
  • 1
    $\begingroup$ Also make sure the resolution of the textures with alpha is adequate. Larger resolution textures tend to take longer to render as well. $\endgroup$ Commented Mar 14, 2023 at 9:40
  • $\begingroup$ What would be an expected number of samples and bounces here? This is a very basic scene I only used to see what's causing the issue, and even with 1024 samples and 128 bounces the noise is quite jarring. If I tried to use even these numbers in my real scene it would take months to render. $\endgroup$
    – Aci
    Commented Mar 14, 2023 at 14:13
1
$\begingroup$

I figured out a way that works pretty well
For some reason, if you use viewport shading and select "mist" in the options, it delivers you a perfect mist pass in the viewport.

Clean mist pass in material preview

Then you can just hide all overlays (Shift+Alt+Z) and render a viewport animation to get your mist pass.

$\endgroup$
1
$\begingroup$

For those interested in the Depth Pass ignoring the alpha transparency altogether and treating all objects like solids, here's the process: As long as it doesn't affect your other render passes, you can go to the View Layers Tab -> Passes -> Data -> Set the Alpha Threshold to zero. This will effectively make the Depth Pass ignore the Alpha of all objects that are transparent or transluscent to any degree. It will treat them as solid objects. This option is only available in Cycles. AFAIK Eevee already ignores transparency for Depth passes. enter image description here

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .