Skip to content

Computing RMS deviation

Kevin Masson edited this page Nov 20, 2019 · 1 revision

appleseed can automatically generate a .gnuplot file containing the RMS deviation of the frame currently being rendered.

# Exemple of a RMS deviation plot generated using appleseed
unset title
set xlabel "Samples per Pixel" noenhanced
set ylabel "RMS Deviation" noenhanced
set autoscale x
set autoscale y
unset logscale x
unset logscale y
plot "-" with lines title "Mesh light RMS Deviation Over Time" noenhanced
    0 13.3294
    0.616438 2.20635
    1.80758 1.64921
    ...

This is possible using interactive rendering.


You will first need to configure a reference image in your .appleseed file. To do so, simply add a reference_image parameter in the frame block :

<output>
    <frame name="beauty">
        <parameter name="camera" value="camera" />
        ...
        <parameter name="reference_image" value="converged.exr" />
    </frame>
</output>

The reference image must be converged (noise free).

If configured correctly, you should see this debug message when loading the project:

debug   | loading reference image converged.exr...

appleseed will then record RMS deviation while rendering and will generate a plot when you stop the render.

debug   | writing ...\rms_deviation.gnuplot...

You can also generate a plot file for sample count. To do so, set performance_statistics to true in progressive_frame_renderer:

<configuration name="interactive" base="base_interactive">
    <parameter name="lighting_engine" value="pt" />
    <parameters name="pt">
        ...
    </parameters>
    <parameters name="progressive_frame_renderer">        
	<parameter name="performance_statistics" value="true" />
	<parameter name="luminance_statistics" value="true" />
    </parameters>
</configuration>

Along with performance_statistics, you can also set luminance_statistics, that will log luminance statistics while rendering.

debug   | average luminance 2.913555 (1.132% error), rms deviation 0.467829
Clone this wiki locally