Cycles feedback

I have suggested to the Blender developers that the “CleanAux” setting (the one causing issues) is turned off in viewport rendering to work around the issue of the viewport looking noisy while denoising and prefiltering is off. Hopefully this change is implemented soon is it makes a lot of sense to do so. Keep in mind that Cycles-X is still in development and changes like these are more likely to be accepted. However, this is likely to happen next week at the earliest as it is a weekend and the developers take time off in the weekends (which they deserve)

As for working around issues with noise showing up in final renders with prefiltering off, a few options exist:

  1. Let the user turn on or off “CleanAux” along with “Prefiltering” to get the result they need (Sergey says this needs evidence to backup the decision to put this setting into the UI)

  2. Tie “CleanAux” to “Prefiltering” (what ⚙ D12094 Cycles-X: Turn off "CleanAux" when turning off prefiltering to avoid some artifacts. does). This way, when you turn “Prefiltering” off, you don’t get noisy renders. However, it means you lose some detail in some specific renders (mainly renders with high sample counts and noise free albedo and normal passes with “Prefilter” off and “CleanAux” on (which is impossible to achieve with the patch linked above))

  3. Just assume that users know what they’re doing and know the technical limitations of different settings, and if they don’t know what they’re doing, will leave the denoising settings at the default settings (which is “prefiltering” on, so the user is significantly less likely to experience issues)

  4. Create a smart algorithm that tries to automatically determine if prefiltering or cleanaux should be on and remove the control from the end user. But as with all smart algorithms, there will be edge cases that don’t work and so I’m not sure if this will happen.

  5. Maybe others.

2 Likes

Actually, looks like Nvidia devs have already found a way to ‘solve’ some of the problems. It’s only a matter of time before they’ll find a way to implement something similar into their denoiser.

This is the tech I’m talking about: Alias-Free GAN

1 Like

There is no reason to think that once Cycles X gets path guiding and many-light sampling, that those two features can’t be combined with OIDN to help you get a clean render in all circumstances.

As a result, it is too early to draw conclusions from my perspective.

In practice you’d probably just always leave prefilter on. There’s always settings you can tweak to make things slightly faster or less noisy, but you don’t have to.

Those features will not solve that problem, nor will any other advanced light sampling algorithm. All denoising algorithms involve some amount of guessing, and the algorithm can guess wrong.

Generally, at a given noise threshold you should get an image of acceptable quality after denoising. There’s no point at which this is “solved”, it’s a continuous optimization process, tackled from 3 sides:

  • Improve denoising so it works at higher noise thresholds
  • Improve sampling to get to that noise threshold faster and with fewer samples
  • Improve algorithms and UX to so users don’t have to tweak settings to get desired render quality
11 Likes

Update again. Just tried to tweak different settings to find out why. I’m not sure but probably related to Exposure under Film? The exposure under color management does not really affect it, while the one under film seems to be directly changing the size.

If anybody knows what is happening, explanation would be appreciated.

EDIT: Test Blend File:

Just seaching on the internet about Path Guiding and I came across this:
https://graphics.cg.uni-saarland.de/publications/rath-2020-siggraph-guiding.html

What caught my interest was that this was based on the Müller paper I assume the Cycles devs are looking at, and in this video it’s said that they only added three lines of code to the Müller one so it would actually be easy to include:


And the result looks so much better!

Don’t know if the devs are planning to include this, just want to share this since it sounds like an easy thing to include along the Müller’s Practical Path Guiding (if what he said about only three lines of code is true).

6 Likes

@YAFU and whoever this interests. Here is a diff that exposes the “CleanAux” setting in the UI: ⚙ D12099 Cycles-X: Expose "CleanAux" setting in the UI

I’m also not sure if everything I’ve added is needed, but it works and that’s what matters to me.

For an explanation on how I created this diff, here it is:

  1. I looked at Sergeys implementation of “Prefiltering” in the UI.
  2. I copied this implementation and replaced everything with “Prefilter” with “CleanAux” instead.
  3. Add a check in a part of the code so the UI button does something.
  4. Test the code to make sure it works then publish the change.
3 Likes

I know couple others pointed this too, I do not have OPTIX listed as a device as well. Is this a temporary situation? I was hoping to use CycleX in an ongoing project.

Definitely CleanAux=ON and Prefilter=OFF (Current Prefilter box unchecked in official Cycles X) gives the best result regarding preservation of fine grain textures (very useful for interior scenes I guess). This is problematic in Glass/Transmission and Glossy/Metallic if Normal pass is used. If this is not resolved at some point, depending on the material used we could use different OIDN configurations in different render layers.
In official Cycles X to obtain a fast and noiseless Viewport at low render samples with OIDN without using the slow Prefilter if Glossy or Transmission is used, for the moment the best is Prefilter=OFF and not use Normal pass

I did a Cycles X ‘scalability’ test that I call - Expectations vs. Reality. I took my scene and rendered it at different resolution and then I compared results to what I was expecting. I used 1080p as a baseline and based my expectations on the number of pixels. I decided to post the results because they might be useful. To make things easier to read, I rounded some numbers. You can scroll to the conclusion to see the expectation vs. reality result:

Resolutions:

4320p: 7680 x 4320 (33 177 600 px)
2160p: 3840 x 2160 (8 294 400 px)
1440p: 2560 x 1440 (3 686 400 px)
1080p: 1920 x 1080 (2 073 600 px)
720p : 1280 x 720 (921 600 px)

Difference against the baseline (Expectation):

4320p: +1500%
2160p: +300%
1440p: +78%
1080p: 100%
720p : -56%

Results CUDA (Time in seconds):

4320p Expected: 326.56 (+1500%)
4320p Reality : 398.52 (+1853%)

2160p Expected: 81.64 (+300%)
2160p Reality : 93.58 (+359%)

1440p Expected: 36.28 (+78%)
1440p Reality : 35.43 (+74%)

1080p Expected: 20.41 (100%)
1080p Reality : 20.41 (100%)

720p Expected: 9.07 (-56%)
720p Reality : 8.73 (-57%)

Results OptiX (Time in seconds):

4320p Expected: 319.20 (+1500%)
4320p Reality : 399.32 (+1902%)

2160p Expected: 79.80 (+300%)
2160p Reality : 91.60 (+359%)

1440p Expected: 35.46 (+78%)
1440p Reality : 35.17 (+76%)

1080p Expected: 19.95 (100%)
1080p Reality : 19.95 (100%)

720p Expected: 8.86 (-56%)
720p Reality : 8.58 (-57%)

Conclusion:

4320p: 24% slower than expected
2160p: 14% slower than expected
1440p: As expected
1080p: As expected
720p : As expected

1 Like

The Button for Optix is gone? Did i miss something? :sweat_smile:
Unbenannt

@Florian-10 and @Kurk and others. As you have noticed, OptiX is currently missing from the user preferences. There are a few potential causes for this:

  1. You’re using out dated GPU drivers that are no longer supported as of a recent change in Cycles-X (although, the change that would cause this issue was introduced a few weeks ago, so this probably isn’t the cause as you probably would of noticed earlier)
  2. The build bot used to provide Cycles-X builds for users isn’t compiling with OptiX properly. This will probably be fixed soon.

Note: OptiX has not been removed from the Cycles-X branch of Blender and I do not believe it will be removed in the near future.

2 Likes

If i use a older build of cycles x optix is there. So i hope its the buildbot thing :sweat_smile:

No Updated my driver. Optix is there now! Thank you

Would love when the developer take a look at this. This sounds incredible :heart_eyes:

1 Like

Hi, Sergey fixed the Optix 7.3 requirement, this should fix the missing Optix devices, hopefully.

https://developer.blender.org/rB5d3a6bb30825952ff3fd8af95beceed7fa3927fb

Cheers, mib

2 Likes

Hi. Some questions about this open bug and noisy passes:
https://developer.blender.org/T78571#975299

Does this mean that other render engines give as a result albedo and normal passes without noise even at 1 render sample? Do they apply noise reduction to those passes or do those engines generate those passes without noise natively? Is it theoretically possible to correct/fix this in Cycles?

If we’re talking about path tracers with arbitrary scenes: no, no and no.

If we’re talking about a different rendering architecture (for which a denoiser like this may not be applicable), or limited scenes without certain noisy effects, then you can get noise-free (ignoring aliasing) albedo and normal passes.

1 Like

Nvidia Geforce Experience is telling I have the latest drivers, yet I still do not see Optix.

OptiX is back. Download the latest build (5d3a6bb30825).