|
|
Better understanding of GitHub issue 377 regarding partial render
differences as compared to full renders.
https://github.com/POV-Ray/povray/issues/377
https://news.povray.org/povray.binaries.images/thread/%3Cweb.5d07acb1d24138982bedecc40%40news.povray.org%3E/
(Unable to update the thread above due corruption from server crash some
ago)
The differences highlighted in the forum post and issue above come down
to jitter values both as external settings to antialiasing(AA) and
internal random sampling (a kind of jitter too) part of method 3's AA
algorithm.
All three methods are exposed to differences on partial renders when AA
jitter is on. Method three is always exposed because internally it uses
a random number stream to generate the samples even when the
Stochastic_Seed=n / +SSn is used.
Excepting AA method 3, turning off jitter solves the full to partial
render difference issues.
---
With jitter on and always with method three the following helps reduce
the full render pixel to partial render pixel differences:
a) A smaller threshold value (and method 3 also confidence value).
b) Colors matter because the threshold difference is based on a
calculated grey equivalent.
c) The new to yuqk minimum sample depth via Antialias_Min_Depth=n ini /
+RMn settings help when >0.
d) The yuqk fork no longer use a fixed table in methods 1 and 2 when
jitter is on. This method tends to be less sensitive to partial vs full
renders, but this statement depends quite a lot on the block sizes and
ordering used on the partial rendering versus the full rendering.
e) Method 3 will always be exposed to differences on partial renders
versus full renders.
f) Method 2 (with jitter) the least exposed because of how is so
drastically shrinks the non zero jitter value on depth/+r. Yes, it's
also true the deeper the depth/+r settings with both methods 1 & 2 the
less likely partial render to full render differences will show up.
g) Related to (f) the partial to full render differences are more likely
to show up where yuqk's big jitter value is larger than 1.0.
Aside: As of writing this I'm unsure what happens with render
continuations. If the position in the random number streams are
maintained in the state file, continuations should work without issue.
Otherwise continued renders may well show differences when compared to
renders not stopped and re-started.
Bill P.
Post a reply to this message
|
|