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?
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.
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 you see, it is working fine, it stops when reach a 2.7579 error. It is just your scene to require 11,342 samples per pixel to reach that level of error.
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.