POV-Ray : Newsgroups : povray.pov4.discussion.general : Better understanding of GitHub issue 377 : Better understanding of GitHub issue 377 Server Time
23 Feb 2024 12:52:06 EST (-0500)
  Better understanding of GitHub issue 377  
From: William F Pokorny
Date: 25 Jan 2024 10:49:36
Message: <65b28310$1@news.povray.org>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.