I have a fairly simple scene with volumetric caustics that I've been rendering at a fixed number of samples, and I thought I would try using the "noise level" halt condition, but I have no idea how to pick a sensible target value. I started with the default value of 5, and the render kept going long after the result looked clean enough, so I bumped it up to 10, 50, and then 80, and it still sits at just under 100% pixel convergence for a very long time, and it still looks clean enough well before it reaches 96% pixel convergence.
Can anyone offer any advice on using this halt condition?
Finding a good noise level
Forum rules
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Finding a good noise level
- Attachments
-
- lux-volumetric-caustics.blend
- (576.74 KiB) Downloaded 143 times
Re: Finding a good noise level
According to mine, it is possible to select values only manually, but this type of halt conditions is well suited for rendering animations, for example, when there is a lot of caustics in the frame, it will process it until the noise ends with the number you set, and when the caustics come out frame, rendering time will be reduced, since your computer no longer needs to process complex caustics.
This is a pretty useful function, for myself I present it as an "adaptive halt condition"
This is a pretty useful function, for myself I present it as an "adaptive halt condition"
Re: Finding a good noise level
It is a value between 0 and 255 (like an 8bit RGB color, internally it is a value between 0.0 and 1.0). When the estimated error is under that threshold, the rendering stop. The perfect rendering would requires a threshold of 0 but it is very impractical and nearly impossible due to numeric precision issues.aidalgol wrote: ↑Sun Aug 25, 2019 3:38 am I have a fairly simple scene with volumetric caustics that I've been rendering at a fixed number of samples, and I thought I would try using the "noise level" halt condition, but I have no idea how to pick a sensible target value. I started with the default value of 5, and the render kept going long after the result looked clean enough, so I bumped it up to 10, 50, and then 80, and it still sits at just under 100% pixel convergence for a very long time, and it still looks clean enough well before it reaches 96% pixel convergence.
Can anyone offer any advice on using this halt condition?
A reasonable value is usually something between 3 and 10.
Side note: your scene will just take forever to render because of BiDir+MTL, dispersion, scattering, etc.
For testing, let set an halt value of 3 (and reduce the image resolution to 120x67 so the rendering will be a LOT faster), this is the result:
Code: Select all
[LuxCore][1.556] Convergence test first pass
[LuxCore][1.889] Convergence test: ToDo Pixels = 7065, Max. Error = 0.719257 [184.13/256]
[LuxCore][2.289] Convergence test: ToDo Pixels = 6921, Max. Error = 0.630687 [161.456/256]
[LuxCore][2.690] Convergence test: ToDo Pixels = 6222, Max. Error = 0.502748 [128.704/256]
[LuxCore][3.090] Convergence test: ToDo Pixels = 5363, Max. Error = 0.691067 [176.913/256]
[LuxCore][3.491] Convergence test: ToDo Pixels = 4671, Max. Error = 0.463234 [118.588/256]
[LuxCore][3.891] Convergence test: ToDo Pixels = 4123, Max. Error = 0.325083 [83.2211/256]
[LuxCore][4.291] Convergence test: ToDo Pixels = 3528, Max. Error = 0.530436 [135.792/256]
[LuxCore][4.692] Convergence test: ToDo Pixels = 3083, Max. Error = 0.272496 [69.759/256]
[LuxCore][5.092] Convergence test: ToDo Pixels = 2566, Max. Error = 0.47049 [120.446/256]
[LuxCore][5.426] Convergence test: ToDo Pixels = 1781, Max. Error = 0.221908 [56.8084/256]
[LuxCore][5.826] Convergence test: ToDo Pixels = 2064, Max. Error = 0.339942 [87.0251/256]
[LuxCore][6.226] Convergence test: ToDo Pixels = 1817, Max. Error = 0.256998 [65.7916/256]
[LuxCore][6.627] Convergence test: ToDo Pixels = 1630, Max. Error = 0.346177 [88.6213/256]
[LuxCore][7.027] Convergence test: ToDo Pixels = 1335, Max. Error = 0.146905 [37.6078/256]
[LuxCore][7.427] Convergence test: ToDo Pixels = 1299, Max. Error = 0.440082 [112.661/256]
[LuxCore][7.828] Convergence test: ToDo Pixels = 1158, Max. Error = 0.330175 [84.5249/256]
[LuxCore][8.228] Convergence test: ToDo Pixels = 1128, Max. Error = 0.310062 [79.376/256]
[LuxCore][8.628] Convergence test: ToDo Pixels = 1037, Max. Error = 0.489387 [125.283/256]
[LuxCore][9.029] Convergence test: ToDo Pixels = 935, Max. Error = 0.306051 [78.3491/256]
[LuxCore][9.429] Convergence test: ToDo Pixels = 815, Max. Error = 0.207195 [53.0419/256]
[LuxCore][9.829] Convergence test: ToDo Pixels = 810, Max. Error = 0.364701 [93.3635/256]
[LuxCore][10.230] Convergence test: ToDo Pixels = 782, Max. Error = 0.198329 [50.7723/256]
[LuxCore][10.647] Convergence test: ToDo Pixels = 709, Max. Error = 0.236365 [60.5095/256]
[LuxCore][11.047] Convergence test: ToDo Pixels = 649, Max. Error = 0.227019 [58.1169/256]
[LuxCore][11.447] Convergence test: ToDo Pixels = 626, Max. Error = 0.172299 [44.1086/256]
[LuxCore][11.848] Convergence test: ToDo Pixels = 636, Max. Error = 0.270472 [69.2408/256]
[LuxCore][12.248] Convergence test: ToDo Pixels = 580, Max. Error = 0.129468 [33.1437/256]
[LuxCore][12.648] Convergence test: ToDo Pixels = 498, Max. Error = 0.328676 [84.1411/256]
[...]
[...]
[...]
[LuxCore][104.477] Convergence test: ToDo Pixels = 4, Max. Error = 0.0215852 [5.5258/256]
[LuxCore][104.878] Convergence test: ToDo Pixels = 2, Max. Error = 0.0121213 [3.10304/256]
[LuxCore][105.278] Convergence test: ToDo Pixels = 7, Max. Error = 0.0260581 [6.67088/256]
[LuxCore][105.611] Convergence test: ToDo Pixels = 3, Max. Error = 0.0207402 [5.3095/256]
[LuxCore][106.012] Convergence test: ToDo Pixels = 11, Max. Error = 0.0298047 [7.62999/256]
[LuxCore][106.412] Convergence test: ToDo Pixels = 6, Max. Error = 0.0506375 [12.9632/256]
[LuxCore][106.813] Convergence test: ToDo Pixels = 10, Max. Error = 0.0903368 [23.1262/256]
[LuxCore][107.213] Convergence test: ToDo Pixels = 11, Max. Error = 0.0495684 [12.6895/256]
[LuxCore][107.613] Convergence test: ToDo Pixels = 9, Max. Error = 0.0471335 [12.0662/256]
[LuxCore][108.014] Convergence test: ToDo Pixels = 6, Max. Error = 0.0215342 [5.51275/256]
[LuxCore][108.414] Convergence test: ToDo Pixels = 2, Max. Error = 0.0190842 [4.88556/256]
[LuxCore][108.814] Convergence test: ToDo Pixels = 6, Max. Error = 0.0208503 [5.33768/256]
[LuxCore][109.215] Convergence test: ToDo Pixels = 4, Max. Error = 0.0225071 [5.76181/256]
[LuxCore][109.615] Convergence test: ToDo Pixels = 4, Max. Error = 0.0189489 [4.85093/256]
[LuxCore][110.015] Convergence test: ToDo Pixels = 4, Max. Error = 0.0631005 [16.1537/256]
[LuxCore][110.424] Convergence test: ToDo Pixels = 4, Max. Error = 0.017105 [4.37888/256]
[LuxCore][110.833] Convergence test: ToDo Pixels = 5, Max. Error = 0.0231657 [5.93041/256]
[LuxCore][111.233] Convergence test: ToDo Pixels = 8, Max. Error = 0.0205303 [5.25576/256]
[LuxCore][111.633] Convergence test: ToDo Pixels = 9, Max. Error = 0.0279445 [7.15379/256]
[LuxCore][112.034] Convergence test: ToDo Pixels = 5, Max. Error = 0.0234618 [6.00621/256]
[LuxCore][112.434] Convergence test: ToDo Pixels = 4, Max. Error = 0.0482104 [12.3419/256]
[LuxCore][112.834] Convergence test: ToDo Pixels = 9, Max. Error = 0.0241326 [6.17794/256]
[LuxCore][113.235] Convergence test: ToDo Pixels = 2, Max. Error = 0.0174685 [4.47195/256]
[LuxCore][113.635] Convergence test: ToDo Pixels = 5, Max. Error = 0.0315567 [8.07851/256]
[LuxCore][114.035] Convergence test: ToDo Pixels = 3, Max. Error = 0.019087 [4.88626/256]
[LuxCore][114.436] Convergence test: ToDo Pixels = 7, Max. Error = 0.0294418 [7.53711/256]
[LuxCore][114.836] Convergence test: ToDo Pixels = 5, Max. Error = 0.0216536 [5.54333/256]
[LuxCore][115.236] Convergence test: ToDo Pixels = 5, Max. Error = 0.0209303 [5.35816/256]
[LuxCore][115.637] Convergence test: ToDo Pixels = 1, Max. Error = 0.0282602 [7.23462/256]
[LuxCore][116.037] Convergence test: ToDo Pixels = 5, Max. Error = 0.0258254 [6.6113/256]
[LuxCore][116.438] Convergence test: ToDo Pixels = 10, Max. Error = 0.0308997 [7.91032/256]
[LuxCore][116.854] Convergence test: ToDo Pixels = 0, Max. Error = 0.010773 [2.7579/256]
[LuxCore][116.854] Convergence 100%, rendering done.
As already written, this halt condition is usually intended for animations and should be used in combination with other halt conditions, for instance:
- set the halt error to 3;
- set halt samples per pixel to 2500;
So it will always stop at 2500 samples per pixel but if the animation frame requires less work and has small error, it will stop earlier.
Re: Finding a good noise level
Thanks to both of you. This helps me a lot with understanding how to use this halt condition.
Re: Finding a good noise level
Same here. ThanksThanks to both of you. This helps me a lot with understanding how to use this halt condition.