Why does the final 5 % take up almost as long as the first 95 %?
I have been experimenting with Daz for some weeks now, and I eventually decided to put the convergence at 100 %. I let it go as long as it wants. Sometimes its a couple of hours, other times, its 4 to 8 hours. It's fine.
However, I keep thinking...why does the last 5 % of convergence take so long? For example, 0 % to 95 % is 3 hours. 95 % to 100 % is another 2 to 3 hours. Total 6 hours.
Also, at least to my 'still new to Daz and 3D in general' eyes, I cannot see any difference between 50 % or 70 % or 90 %. Sometimes I feel like, what is the point of going till 100 % at all? I usually render at 4K or 8K. Here in India, we have insane power cuts, so, sometimes I have to stop the rendering before the back up power supply shutsdown. The RTX 3060 empties my power back up in less than 10 minutes when its rendering. Normally, it runs for about 40 to 60 minutes, when not rendering, with the power back up. But with rendering, no such luck. So, I have just enough time to stop the render and save before I quit Daz and shutdown the machine. Then, I look at a scene that was 100 % and another that was stopped (due to power cut issues) at 60 %, I cannot make out any obvious difference between them.
Comments
I wouldn't usually recommend setting the convergence ratio to 100% anyway.
Convergence is an estimate (how fussy it is is controlled by the render quality setting) of when a pixel has reached its final value. As pixels are deemed to be at their final value they are counted as converged, when the converged pixels account for the target percentage of the total pixels the render stops. Of course that means that the ones thata re not yet converged are taking longer to settle, perhaps because less light reaches them or because their response to light is very dependent on the angle at which it approaches, so it would not be surprising if, in some cases, the continued to make slow progress towards a state that meets the conditions for being found converged.
Running low on memory - slows down the render.
It has to do with the way unbiased renderers work.
Iray mimics the way light works in the real world, where light rays shoot out from a light source and bounce off surfaces to create color. Since it would be computationally expensive to simulate every light ray, unbiased renderers only use a set number to "sample" how the light will bounce. The longer a render goes for, the more light rays it samples and thus the closer to photoreal it gets, also known as "convergence". However, casting an infinite number number of light rays to get true photorealism (100% convergence) is impossible, which is why would should use 99% at most or else it'll never stop.
The rendering quality is basically the point of diminishing returns. It measures the difference between pixel values between iterations and tries to conclude if there's any more quality to be gained or if it's beating a dead horse. Since convergance is exponential, as mentioned above, as it approaches 100% it takes longer to get any quality improvements out of it.
Personally I don'y even bother with Rendering Quality. I just max out the samples and the time and let it render until it looks good.
[My Learnings]
I will stop rendering till 100 %. (Except when there is a power cut, in which case I am at the mercy of the power company, he he :P). I think, I will stick to a number between 95 % and 99 %. Perhaps, close up shots, at 99 %. distant shots at 95 % or slightly lower.
As I have read in other posts, blogs and tutorials, there is no one right way of the 'perfect render' but some common rules do apply. Like this convergence percent thing.
Thank you folks. I am only hobbyist Daz guy, but, this is all very interesting - light direction, convergence and exponential calculations. I like it. I like it a lot.
The renderer is averaging the rays to calculate a pixel. As the number of samples increases, the effect any one sample is less significant. Think of the limit of the infinite series lim f(n) = 1/n; the effect of a new sample (or any one sample) approaches zero over time.
Set Rendering Quality to 1 and Rendering Converged Ratio to 95%
[My Learnings 2]
I am beginning to slowly understand/realize the 1/n effect. Yes, that makes sense because each new sample is making a marginal improvement which may not be obvious to the naked eye.
Thank you Mystery.
-----
I have in fact, gone back to Quality setting of 1 (I used to put it at 4) and now working with 90 %.
Thank you PerttiA.
-----
Richard, Perhaps, after a few months, I should have enough experience to judge what I really need. I did an experiment yesterday. Two images. One was rendered in 2 minutes. Another, the usual 90 % convergence, 4 to 5 hours. Both at 8K resolution.
At first glance, I was baffled because, they both (put side by side) looked identical on my 2K QHD monitor. Then, I zoomed in, and started observing their individual features. Ah! The devil is in the details. That slight extra detail on the stomach. The minor extra clarity in the shadows and water reflections.
Hopefully, once I have enough experince (and as you said, checking the preview every now and then), perhaps, I dont have to wait for the convergence to tell me when to stop. I will indeed use my own judgement.
Thank you, Richard.
My understanding of the convergence percentage is that it shows what percentage of pixels didn't change significantly (the quality parameter controls how fussy Daz is in deciding how big a change has to be in order to count) during the last pass.
So at the start, and perhaps for quite a long time, it remains a 0%. Every pixel in the image is changing every time. Then it rises rapidly as much of the image becomes stable, until at the end the last few stubborn pixels - in the shadows and other awkward places - slowly achieve their final values. It's a very real question as to how much it matters to reach the highest level of convergence
It does suggest a fairly quick optimisation algotithm to me which should speed the last pixels up rather than slow everything down, I wonder if something like it is used: Don't re-render any pixel that hasn't changed in the last 2 [or more?] iterations.
Regards,
Richard