Chaos Corona Forum

Chaos Corona for 3ds Max => [Max] Feature Requests => Topic started by: Jpjapers on 2022-03-30, 00:59:12

Title: Adjust target noise level, total passes or render time limits during a render.
Post by: Jpjapers on 2022-03-30, 00:59:12
Sometimes ive found a situation where ive started a render and want to adjust the noise limit. Usually when a scene cleans up faster than expected but dont want to stop the render.
Is there any reason why we couldnt adjust the limits on the fly during the rendering process in the VFB?
Title: Re: Adjust target noise level, total passes or render time limits during a render.
Post by: Frood on 2022-03-30, 08:42:22
Stop conditions are pulled at start of rendering together will other render settings and are not evaluated later any more to avoid inconsistencies, that's the reason. For unattended network jobs I use a periodically invoked script to test for stop conditions "externally" and use the corona interface to gracefully finish the job if conditions are reached (also see https://forum.corona-renderer.com/index.php?topic=30970.msg176411#msg176411).


Good Luck



Title: Re: Adjust target noise level, total passes or render time limits during a render.
Post by: Jpjapers on 2022-03-30, 10:09:23
Stop conditions are pulled at start of rendering together will other render settings and are not evaluated later any more to avoid inconsistencies, that's the reason. For unattended network jobs I use a periodically invoked script to test for stop conditions "externally" and use the corona interface to gracefully finish the job if conditions are reached (also see https://forum.corona-renderer.com/index.php?topic=30970.msg176411#msg176411).


Good Luck

I understand they are evaluated when the render begins. But why does that have to be the case? Surely corona is just constantly comparing its pass/noise level number to whatever that spinner value is to determine when to stop.

If inconsistency is the argument then being able to adjust the tonemapping controls mid render is just as dangerous imo. Ideally id like to see a way to do it without having to stop and resume the render as you pointed out in that linked thread.
Title: Re: Adjust target noise level, total passes or render time limits during a render.
Post by: Frood on 2022-03-30, 11:19:45
But why does that have to be the case?

I argued about this quite a time, being of the opinion that it hasn't. I think it is just a bit tricky to implement.

Surely corona is just constantly comparing its pass/noise level number to whatever that spinner value is to determine when to stop.

It just doesn't. It constantly compares to internal values which were set at render start according to the spinner values (and other settings in the render setup UI) as far as I know. I can understand that most of those settings have to be static and cannot be changed after being initialized. But stop conditions could be handled dynamically imho. If you take for example noise level - it's dynamically calculated anyway and leads to a render stop when reached. So why should the value set in the UI not been compared/refreshed after every pass?  And even when thinking about DR I see no reason because DR slaves just silently render passes until they get message from master to stop.

If inconsistency is the argument then being able to adjust the tonemapping controls mid render is just as dangerous imo.

I think VFB / tone mapping runs in a completely different context. Anyway...

Ideally id like to see a way to do it without having to stop and resume the render as you pointed out in that linked thread.

+1 (again)


Good Luck


Title: Re: Adjust target noise level, total passes or render time limits during a render.
Post by: Jpjapers on 2022-03-30, 14:00:43


Surely corona is just constantly comparing its pass/noise level number to whatever that spinner value is to determine when to stop.

It just doesn't. It constantly compares to internal values which were set at render start according to the spinner values (and other settings in the render setup UI) as far as I know. I can understand that most of those settings have to be static and cannot be changed after being initialized. But stop conditions could be handled dynamically imho. If you take for example noise level - it's dynamically calculated anyway and leads to a render stop when reached. So why should the value set in the UI not been compared/refreshed after every pass?  And even when thinking about DR I see no reason because DR slaves just silently render passes until they get message from master to stop.


Yeah to be fair now i think about it more, it wouldnt be referring back to the UI constantly it would be getting that value at render start and just storing it internally as you say.