Chaos Corona Forum

Chaos Corona for 3ds Max => [Max] General Discussion => Topic started by: cecofuli on 2017-07-24, 23:49:09

Title: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-07-24, 23:49:09
As in the title, a small test FOR FUN of different Corona version.

What it's strange is the v1.7 NL. In both v1.6 and v1.7  it's 8.14.
But the v1.7 has, clearly, less noise, especially on the ceiling, left /right walls and in the DOF.
Is it a bug?

(http://www.francescolegrenzi.com/Temp/Corona/0177_TEST_1.3_v1.7.jpg)

Title: Re: Corona v1.3 vs 1.7
Post by: Ondra on 2017-07-25, 08:30:22
the noise estimation is not perfect, so when we improved the sampling in 1.7, the measured noise remained the same, even though the picture is much clearer
Title: Re: Corona v1.3 vs 1.7
Post by: maru on 2017-07-25, 11:35:18
Great tests Cecofuli!
The 1.3 shots appear more "smooth" because of different filter type or size, right? It could be probably easily fixed by enabling blur+sharpen in 1.6+
I am also curious how this test scene would behave with "render until it's clear" scenario, rather than setting a fixed time limit. That could be however tricky to setup, especially now that the noise level requires different values across different versions.
Title: Re: Corona v1.3 vs 1.7
Post by: Ludvik Koutny on 2017-07-25, 11:59:30
1.3 one doesn't have just different image filtering, it is simply more clean - less noisy, that's it.

My guess would be it's caused by adaptivity. Would be worth running one more test with adaptivity off.
Title: Re: Corona v1.3 vs 1.7
Post by: Ondra on 2017-07-25, 12:48:03
things I can think of that could cause this:
- adaptivity: different part of the same image could be more noisier in 1.3, post-1.4 the noise is more or less uniform across the image. How to test this: look at the rest of the image, isnt the noise pattern reversed somewhere?
- image filtering: we were previously blurring the image during rendering to reduce noise, but that was not compatible with adaptivity. 1.6+ corona has the option to apply the same blurring as post-effect interactively. How to test this: disable image filtering in 1.3 and rerender, is it more noisy?
- GGX vs. older, more primitive BRDF model. How to test this: does it happen also when the scene is not glossy?
Title: Re: Corona v1.3 vs 1.7
Post by: maru on 2017-07-25, 13:53:46
1.3 one doesn't have just different image filtering, it is simply more clean - less noisy, that's it.
My guess would be it's caused by adaptivity. Would be worth running one more test with adaptivity off.
Take a look at sharp edges on Cecofuli's tests. 1.3 is simply more blurry. With that in mind, you cannot really judge how noisy it is.

I am attaching an example of 1.6 hf 2 with and without adaptivity. If anything, it becomes more noisy with adaptivity off, so I don't think re-running the tests with adaptivity off makes sense. ;)
Title: Re: Corona v1.3 vs 1.7
Post by: Ludvik Koutny on 2017-07-25, 14:03:08
Well, I did try to take it into photoshop, and blur the 1.7 result about as much as 1.3 one, and it still appeared significantly noisier, even with the slight blur. Blur is not a denoising magic bullet, especially in such a small amount. Of course, in majority of cases, adaptivity helps, that's why it's on by default, but there still may be some cases, where it focuses sampling more on different places. It can often produce images that are noisier on certain places, to ensure noise level is even across the image.

The most obvious step in noise level is between 1.3 and 1.4. Adaptivity was introduced in 1.4, so it would not be unreasonable to assume adaptivity could have impact on it, and re-run the test with it disabled, if Cecofuli has the time to do so.

And lastly, I think it's actually easy to judge how noisy the image is - by just looking at it :) Ultimately, we deliver our images to clients, who don't really care about what the analytic noise level is, but how it looks to their eyes, and I bet if you shown this image to random group of non-cg people, majority of them would consider 1.3 to be the cleanest.

So, if there's any chance of performance regression since 1.3, even if it was just in very specific scenes, it's really worth investigating it :)
Title: Re: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-07-25, 16:37:37
Hi guys..

I didn't expect so much interest.

v1.3 has default Filter setting, with Width 2.0.
I think that Filter Type isn't so important.

But, it looks like, with the same Filter width, the v1.3 add more "blurry" to the pixels.
So, it was better make the test with Filter width=1, in all version (Sorry)

In attachment the scene (Max 2012 - Corona v1.3 )
Title: Re: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-07-25, 18:25:13
Ok, new set of test, with all rendering Filter width = 1

(http://www.francescolegrenzi.com/Temp/Corona/0178_TEST_1.3_v1.7.jpg)
Title: Re: Corona v1.3 vs 1.7
Post by: romullus on 2017-07-25, 20:28:18
I like how you have to walk an extra mile to make 1.3 look worse than latter releases :] It looks like adaptivity indeed had played major role here.
Title: Re: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-07-25, 21:15:45
Maybe with the v1.7 we can use a stronger Filter Width to blur a bit the noise, like in the v1.3 =)
Title: Re: Corona v1.3 vs 1.7
Post by: Ludvik Koutny on 2017-07-25, 22:56:02
If you want to take filtering out of equation, it's better to set filter type to none rather than width to 1. There is a very slight possibility that filter set to 1 in 1.3 may actually be adding to the noise :)

But other than that, it's what I suspected. You can see on the new test that adaptivity makes some places more noisy, while other places cleaner, generally making the noise level more even across the image. It looks like corona's adaptivity tends to prioritize darker places a bit more. Maybe that could be somehow tweaked in the future :)
Title: Re: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-07-25, 23:02:05
Ohh.. I'm so stupid! Ahaha.. you are right! But, today I had a very crazy day (really crazy)!
But, I agree with you. Adaptivity should be improved a bit in my opinion.
Title: Re: Corona v1.3 vs 1.7
Post by: Njen on 2017-07-26, 05:16:13
A classic trick we sometimes use in VFX when dealing with dark images in modern renderers is to overlight the scene (expose up every light relatively) to make the render go faster, then in comp to expose down the image back to 'normal'.
Title: Re: Corona v1.3 vs 1.7
Post by: lacilaci on 2017-07-26, 07:33:14
Is this a fair comparison? Low res render with object/shader/texture and lighting complexity more or less equal across the screen?

AFAIK the purpose of adaptivity is to clear up complex objects in a simple scene equaly so that you don't end up with clean render and couple of noisy objects taking ages to get at acceptable level. I tested adaptivity on/off on couple of scenes yesterday and it worked as expected...

Or are we talking about adaptivity being broken? So that it slows down rendering in the long run?
Title: Re: Corona v1.3 vs 1.7
Post by: Ludvik Koutny on 2017-07-26, 08:53:56
No, adaptivity works the way it should. It's just not right to assume adaptivity means faster rendering. What adaptivity does is ensuring the rendered image converges more evenly.

You can see that on Cecofuli's second test. Compare 1.7 adaptivity on and adaptivity off columns. You can see that adaptivity off makes area around the door and chair cleaner, but area in DoF and area where the bronze sculpture touches the floor noisier. Adaptivity on makes noise level roughly the same across the entire image, so area around the door and white chair has about the same amount of noise as the area around the sculpture touching the floor and scultpure in DoF.

Practical way to think about it is following:

Previously, when Corona did not have adaptivity, you would render your image for 1 hour, and it would be quite clean, but there would be a few hotstops of noise, which would take many more passes to resolve, so to get completely and evenly clean image, you would need to wait 4 hours.

Now that Corona has adaptivity, after that 1 hour, you may get an image, that is more noisy on the areas where adaptivity off was cleaner, but less noisy on the areas where adaptivity off was a lot noisier, so instead of taking 3 more hours, it may now take just 1 hour to get completely clean image. Therefore, to achieve relatively noise-free image, without any hotspots of noise, it can now take just half of the rendertime. Sometimes more, sometimes less, but generally, it's significant improvement.
Title: Re: Corona v1.3 vs 1.7
Post by: lacilaci on 2017-07-26, 09:43:26
No, adaptivity works the way it should. It's just not right to assume adaptivity means faster rendering. What adaptivity does is ensuring the rendered image converges more evenly.

You can see that on Cecofuli's second test. Compare 1.7 adaptivity on and adaptivity off columns. You can see that adaptivity off makes area around the door and chair cleaner, but area in DoF and area where the bronze sculpture touches the floor noisier. Adaptivity on makes noise level roughly the same across the entire image, so area around the door and white chair has about the same amount of noise as the area around the sculpture touching the floor and scultpure in DoF.

Practical way to think about it is following:

Previously, when Corona did not have adaptivity, you would render your image for 1 hour, and it would be quite clean, but there would be a few hotstops of noise, which would take many more passes to resolve, so to get completely and evenly clean image, you would need to wait 4 hours.

Now that Corona has adaptivity, after that 1 hour, you may get an image, that is more noisy on the areas where adaptivity off was cleaner, but less noisy on the areas where adaptivity off was a lot noisier, so instead of taking 3 more hours, it may now take just 1 hour to get completely clean image. Therefore, to achieve relatively noise-free image, without any hotspots of noise, it can now take just half of the rendertime. Sometimes more, sometimes less, but generally, it's significant improvement.

Well, that's what I thought. Just got a little confused with these comparisons against 1.3 i guess...

However, did a little "tweak" to Cecofuli's scene to exaggerate the adaptivity on/off difference by adding a complex object (Oats's Zygote) with close to a hundred 4K UDIM textures loaded through max's composite node. Throwing the balance of complexity on screen a bit more off...

The results are as expected, however I have to say it seems to me that the clarity on the creature doesn't seem that much better with adaptivity, while everything else is much more worse...

PS: off topic but is there a better way to load UDIMs?
Title: Re: Corona v1.3 vs 1.7
Post by: maru on 2017-07-26, 12:41:40
Maybe with the v1.7 we can use a stronger Filter Width to blur a bit the noise, like in the v1.3 =)
There is blur/sharpen in the VFB post tab for this.

Quote
(Oats's Zygote)
Wait, where did you get this model from? o_o
Title: Re: Corona v1.3 vs 1.7
Post by: lacilaci on 2017-07-26, 13:04:19
Maybe with the v1.7 we can use a stronger Filter Width to blur a bit the noise, like in the v1.3 =)
There is blur/sharpen in the VFB post tab for this.

Quote
(Oats's Zygote)
Wait, where did you get this model from? o_o

Steam... there is also rivergod from firebase and klum from rakka... + lots concepts, scripts and whatnot. Look it up...
Title: Re: Corona v1.3 vs 1.7
Post by: TomG on 2017-07-26, 13:47:52
And shouldn't denoising also be factored in? The biggest purpose for adaptivity that I see is to allow denoising to do its magic, and that saves a lot of render time.
Title: Re: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-07-26, 15:23:09
Maru, I think (but I'm not 100% sure) that Filter width is different that from Blur/sharpen.
Blur/sharpen is a post-production tool, and Filtering is something who works at sub-pixel level.

About denoising, my test was intended to compare the quality of noise between the last Corona version.
Title: Re: Corona v1.3 vs 1.7
Post by: vkiuru on 2017-08-02, 08:07:37
No, adaptivity works the way it should. It's just not right to assume adaptivity means faster rendering. What adaptivity does is ensuring the rendered image converges more evenly.

You can see that on Cecofuli's second test. Compare 1.7 adaptivity on and adaptivity off columns. You can see that adaptivity off makes area around the door and chair cleaner, but area in DoF and area where the bronze sculpture touches the floor noisier. Adaptivity on makes noise level roughly the same across the entire image, so area around the door and white chair has about the same amount of noise as the area around the sculpture touching the floor and scultpure in DoF.

Practical way to think about it is following:

Previously, when Corona did not have adaptivity, you would render your image for 1 hour, and it would be quite clean, but there would be a few hotstops of noise, which would take many more passes to resolve, so to get completely and evenly clean image, you would need to wait 4 hours.

Now that Corona has adaptivity, after that 1 hour, you may get an image, that is more noisy on the areas where adaptivity off was cleaner, but less noisy on the areas where adaptivity off was a lot noisier, so instead of taking 3 more hours, it may now take just 1 hour to get completely clean image. Therefore, to achieve relatively noise-free image, without any hotspots of noise, it can now take just half of the rendertime. Sometimes more, sometimes less, but generally, it's significant improvement.

Well, that's what I thought. Just got a little confused with these comparisons against 1.3 i guess...

However, did a little "tweak" to Cecofuli's scene to exaggerate the adaptivity on/off difference by adding a complex object (Oats's Zygote) with close to a hundred 4K UDIM textures loaded through max's composite node. Throwing the balance of complexity on screen a bit more off...

The results are as expected, however I have to say it seems to me that the clarity on the creature doesn't seem that much better with adaptivity, while everything else is much more worse...

PS: off topic but is there a better way to load UDIMs?

Wait, so all this time adaptivity may have actually been making images noisier, overall? I guess it's my own fault for taking it for granted, and not reading more/doing tests but I just thought adaptivity would add more samples to areas where they were needed - but this tradeoff doesn't seem like a good deal at all if the comparison renders here are correct :O
Title: Re: Corona v1.3 vs 1.7
Post by: FrostKiwi on 2017-08-02, 11:30:07
I just thought adaptivity would add more samples to areas where they were needed
No, you thought correctly. Adaptivity is Gold if you have the Enviroment texture visible. With no adaptivity you would be non stop sampling the enviroment, although it never actually needs to be sampled, thus wasting power. All in all it almost always worked great with what it did.

For me Adaptivity fails with being too sensitive sometimes. For instance here. (https://forum.corona-renderer.com/index.php/topic,12284.msg79604.html#msg79604)
Although it's about caustics it still holds true for some interiors. Noise is most visible on non textured uniform surfaces - i.e. Walls. There Noise pops out very strongly. But technically the Noise is not "more" there. It just is very visisble compared to a blank solid wall.
For many interior scenes with glossy surfaces near windows, the reflection of the glossy surface gets over 10x the processing power compared to the wall.
But the reflection of the glossy surface is barely visible even though it may have high noise levels. But the Solid color wall with maybe only 3% noise is still apparently noisy, but won't clear out until 500passes, because that reflection of the glossy surface gets everything.

Yet still Adaptivity works fine in most other cases.
Title: Re: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-08-02, 15:05:21
In my test, there is a big glossy column inside a DOF area.
Try to render this scene for 1 hours (not 5 minutes) with:

Adaptivity OFF : very clean white wall, but the noise in the DOF is too much, compared to the rest of the scene
Adaptivity ON: wall is a bit noisy, but the noise is more uniform and pleasant.




 
Title: Re: Corona v1.3 vs 1.7
Post by: vkiuru on 2017-08-06, 09:38:25
I just thought adaptivity would add more samples to areas where they were needed
No, you thought correctly. Adaptivity is Gold if you have the Enviroment texture visible. With no adaptivity you would be non stop sampling the enviroment, although it never actually needs to be sampled, thus wasting power. All in all it almost always worked great with what it did.

For me Adaptivity fails with being too sensitive sometimes. For instance here. (https://forum.corona-renderer.com/index.php/topic,12284.msg79604.html#msg79604)
Although it's about caustics it still holds true for some interiors. Noise is most visible on non textured uniform surfaces - i.e. Walls. There Noise pops out very strongly. But technically the Noise is not "more" there. It just is very visisble compared to a blank solid wall.
For many interior scenes with glossy surfaces near windows, the reflection of the glossy surface gets over 10x the processing power compared to the wall.
But the reflection of the glossy surface is barely visible even though it may have high noise levels. But the Solid color wall with maybe only 3% noise is still apparently noisy, but won't clear out until 500passes, because that reflection of the glossy surface gets everything.

Yet still Adaptivity works fine in most other cases.

Ah gotcha. Thanks for clearing that up and the info here is something that is good to know in future scenarios.
Title: Re: Corona v1.3 vs 1.7
Post by: cecofuli on 2017-09-28, 14:49:26
New test, with the last v1.7 RC3.

(http://www.francescolegrenzi.com/Temp/Corona/0212_TEST_1.7_RC3.jpg)