Differences between rtpict and rpict renderings

Hi all,

I recently started making some renderings using the new rtpict script and very much appreciate the speed boost! Thanks for including it in the most recent release.

One thing I noticed is that visually, the noise characteristics are different when using rtpict vs. regular rpict. I’ll give an extreme example, just showing some light through a BSDF shining on the floor of a simple box model, but I see similar effects to some degree in most renderings.

Using the same settings, the image on the left was made with rpict and the image on the right was made with rtpict:

Statistically these images are basically the same (min, max, average, etc.), but one is more “splotchy” and the other more “scratchy.” I can clean up these artifacts by adjusting the options appropriately, but I’m mostly just curious if anybody has thoughts about the differences between the two methods that cause this effect.



These particular errors appear related to a too-low setting of the -ad and/or too high setting for -aa. You can also benefit in either case from performing a low-resolution “overture” rendering of the same view and discarding the result, just saving the ambient file. You don’t provide your options, which might help others to offer guidance.

Hi Greg, thanks for the quick reply! I’ve already been able to remove these kinds of artifacts by tweaking the parameters as you suggested. I purposefully made them particularly visible in this example because I was just curious about what happens under the hood between rpict and rtpict that cause these to look so different.

For reference for others, the settings for the images above were:
-aa = 0.15
-ab = 3
-ad = 512
-ar = 128
-as = 256
-dc = 0.5
-dj = 0.7
-dp = 512
-dr = 3
-ds = 0.15
-dt = 0.05
-lr = 8
-lw = 0.002
-pj = 0.9
-ps = 4
-pt = 0.05
-st = 0.15

Ah, OK. In this case, the difference is that rpict is running across a scanline at a time, more or less in order, and arriving at positions where it determines a new indirect interreflection value is needed in the cache. At that point, it generates one, and the scanline to the right then has a different appearance. In rtrace, you have multiple processes running at the same time, in different positions on the scanline, so this progression is more haphazard – hence, the more “fuzzy” appearance to the artifacts.

There are other differences between rpict and rtpict, having to do with the way the scanline is (or is not) sampled adaptively, but that isn’t what you are seeing here.