Why is my SPPM render that noisy?


#1

Hello all!

I’m trying to render an interior scene with SPPM engine, but the result is too noisy. I get the following result on 1M light photons and 0 environment photons:

Is that ok? I use only one emissive plane for light in the window and the room is closed from all sides. Up to the moment I ran out of ideas why the photon map variates so much. Did I set something wrong with materials or lighting?

I’ve uploaded the scene to https://1drv.ms/u/s!Ar-VOp-yqJW09TPiXjcjneUP-_mG . Just in case.

Thank you in advance,
Sergey.


#2

Hi Sergey,
SPPM is tricky to set up and in general one has to play with the settings to optimize for each scene.

Some general recommendations for SPPM:

  • If the scene has blotches but little grain, increase the photon count. If the scene is grainy without blotches reduce photon numbers. There is an optimum ratio of camera rays vs photon number for each pass.
  • Depending on the scene one may have to change the number of environment vs direct light photons ratio.
  • If you use a hdr enviroment, use a low-res hdr for scene lighting.

Now to your specific scene: You don’t use environment lighting, so I switched off Image Based Lighting, increased Light Photon number to 3*10^6, disabled Caustics, and increased the Russian Roulette Start Bounces to 20 and 12, respectively.
Another suggestion is to use a low number of samples (4) but increase the number of passes.
Attached is the changed as_studio file: TD-056_mod.appleseed (166.7 KB)

The image is sampled with 4 samples/pixel/pass and 20 passes.


#3

That looks marketedly improved. Would this apply to path tracing? I am busy playing with setting to get a decent render time with as little noise as possible. The noise reduction tool works well, but i find it a bit too aggressive and introduces articfacts. Any way to reduce that?


#4

Pathtracing is quite different in methodology and does not have many of the SPPM specific settings I had changed for the scene above. For an interior scene like that, where the only light comes through a window from outside, many render engines (e.g. cycles) have portals. This helps the engine to sample light more efficiently.

Now if you ask generally, the recommendation in my previous post about using hdr lighting applies to pathtracing as well.
Much depends on the actual scene, especially the lighting and materials. All path tracer share similar issues and generally tips how to render efficiently with Cycles or Arnold mostly apply also to appleseed.


#5

Hi Mango3,

First of all, thanks for your time and for your explanations. They helped me greatly to understand the basic SPPM usage!

What baffles me yet is the reason why photon map has so high variance in a closed room like that.

I don’t know very much about SSPM. But as far as I can understand, the algorithm shoots some photons from the light into the scene, bounces them off given some number of times, and stores the contribution of each bounce for the set of the scene points visible from the camera.

This way, since pixels get interpolated contribution from some closest photon bounces, I thought that the result should be smooth even at a low number of photons. Based on my logic - it should be just less detailed on less photon count.

Could you please explain to me where I was mistaken?


#6

First, I’m not the most qualified person to answer this but nonetheless. What you describe is standard Photon Mapping, SPPM is a variation of this principle (see image). After an initial eye pass the following photon passes trace photons from light sources and update statistics (photon count, flux) on the hit points within a search area. SPPM uses randomly generated hit points by the distributed ray tracing passes.

Now, why there is so high variance depends on the photon number you use and the search radius setting. SPPM is an unbiased algorithm, it converges to the correct light distribution within a bounded memory. But that doesn’t tell you how fast the rate of convergence is:

More information can be found in Prof. Hachisuka’s presentation: http://users-cs.au.dk/toshiya/starpm2013a/PPM_Extensions.pdf


#7

To be completely correct: SPPM is actually a biased algorithm: at every stage there is bias in the form of blurring artifacts (due to the density estimation process). However it is a consistent algorithm in that the bias will tend toward zero as render time tends toward infinity. In practice that means that the bias (blurring) will no longer be visible after some time.


#8

Thank you very much! Now it’s clear for me.


#9

… but for an interior like this one it is, classical architectural interior, suggested to go for SPPM or a path tracer?

Thank you,
Riccardo


Interior scene - Noise reduction suggestions
#10

This depends strongly on your scene. Even for standard interior scenes the algorithm to use first would be the path tracer. If that one fails to give usable results or you have lots of caustics in your scene then switch to Progressive Stochastic Photon Mapping.

The scene above is difficult for pathtracer because the room is only lit through a window from outside.
The smaller the window, the more difficult this gets to render. The pathtracing algorithm emits rays from the camera into the scene until it hits an object and then needs to find a path to the light source. If the light source is small and difficult to connect to from the hit-point , the chance that a ray finds it is small (see image from Prof. Hachisuka’s presentation).


#11

Thank you,

I tried the parameters suggested in this interesting thread but I don’t get nice results with sppm (while path tracer is easier…).

I get that image:

But I don’t want to pollute this thread… should I open another one?
I can upload the blend.

Thank you,
Rickyx


Interior scene - Noise reduction suggestions
#12

Hi @rickyx
Thanks for showing your wip scene here. It fits exactly to the illustration above. The threads topic is about SPPM noise specifically and I would suggest to open a new thread (with the blend attached) along the more general line “interior scene - noise reduction suggestions” because you seem to be overall interested in how to use appleseed for interior scenes.

I would also suggest you to join Discord, then you will get real time feedback from the developers and you have an overview of the newest features which are in implementation.
https://discord.gg/Vcu5A7h


#13

So, Serje started with 1M light photons. To my eyes, that render looks grainy, not blotchy, and your first suggestion says then to reduce photons, not increase them - but you increased them to 3M. What am I missing here?


#14

I stated that the recommendations in the pointed list above are for general SPPM use. Increasing light photons has a direct cost on memory, less so on cpu time. Increasing helps usually but there is an optimum for best efficiency.
Now for Serje’s case I specifically gave also a couple of other settings which were not optimal and they all contributed to the way the rendered image looked. I don’t pretend that my suggestions are the optimum for his scene but they are clearly an improvement.