SPPM renderer (CPU-only)

Discussion related to the implementation of new features & algorithms to the Core Engine.

Moderators: jromang, tomb, zcott, coordinators

Re: SPPM renderer (CPU-only)

Postby J the Ninja » Mon May 14, 2012 10:10 pm

SATtva wrote:
guibou wrote:
Now if you turn off direct light sampling in SPPM - the smoothing in the pillars doesn't work? :?

Hoo, no, not that one again... I was thinking we where done with it...

Direct lighting was disabled in the last test. Isn't that an expected behavior?


It didn't used to be, at least.
-Jason

Material DB Admin
User avatar
J the Ninja
Developer
 
Posts: 2249
Joined: Wed May 19, 2010 9:54 pm
Location: Portland, USA

Re: SPPM renderer (CPU-only)

Postby guibou » Tue May 15, 2012 2:39 am

SATtva wrote:
guibou wrote:
Now if you turn off direct light sampling in SPPM - the smoothing in the pillars doesn't work? :?

Hoo, no, not that one again... I was thinking we where done with it...

Direct lighting was disabled in the last test. Isn't that an expected behavior?


It is expected in the fact that this issue only appears with photon gathering (so without direct lighting), but it is not excepted because I was *fixed* many times ;)
guibou
Developer
 
Posts: 271
Joined: Fri Dec 04, 2009 10:14 am

Re: SPPM renderer (CPU-only)

Postby guibou » Tue May 22, 2012 6:08 am

About AMCMC sampling.

The theory said that the final film contribution must be scaled by uniformCount / totalCount, which is the number of path sampled by uniform sampling over the number of path sampled (totalCount - uniformCount gives the number of path sampled by mutation strategy).

Ie, image_value = (uniformCount / totalCount) * (1 / totalCount) * sum(0..totalCount, S_i) (with S_i a photon sample)

can be replaced by (1 / totalCount) * sum(0..totalCount, S_i * (uniformCount_i / i))

uniformCount_i / i is the scaling factor at the time of the photon i creation.

It is not right, but at the end we'll only get a biais which will be corrected as more sample arrives.

Do you think this is stupid ?
guibou
Developer
 
Posts: 271
Joined: Fri Dec 04, 2009 10:14 am

Re: SPPM renderer (CPU-only)

Postby jeanphi » Tue May 22, 2012 8:03 am

Hi,

This does make sense and is actually equivalent to what Kelemen proposed for its MLT version without an initialization phase if I'm not mistaken (and that we've implemented in our MLT sampler). Worth a try anyway.

Jeanphi
jeanphi
Developer
 
Posts: 6624
Joined: Mon Jan 14, 2008 7:21 am

Re: SPPM renderer (CPU-only)

Postby guibou » Tue May 22, 2012 10:05 am

OK.

I pushed some commits for SPPM, mainly it improves parallel behavior (less CPU usage drop) and provide, for you, because I hate this feature but you like it, the ability to change the number of rendering thread at runtime ! (YES !)

I changed a lot in SPPM to achieve this, so be prepared to minor regression for the next few days. PLEASE send feedbacks.
guibou
Developer
 
Posts: 271
Joined: Fri Dec 04, 2009 10:14 am

Re: SPPM renderer (CPU-only)

Postby guibou » Tue May 22, 2012 10:55 am

jeanphi wrote:This does make sense and is actually equivalent to what Kelemen proposed for its MLT version without an initialization phase if I'm not mistaken (and that we've implemented in our MLT sampler). Worth a try anyway.

halton.jpg
Halton, 47 minutes, 447 passes


It is funny how the halton one is soo much noisy versus the AMC one, proof that AMC works ;) (the scene is a glass filled with wishy lit by a sun light. Closer look on the caustics). Weirdly, it seems that the top tile of the Halton image lacks contributions. I'm wondering if the tile splating code does not "wait for enough Contribution before splatting". (The middle tile contributions appears after 25 minutes of rendering)

amc.jpg
AMC, 17 minutes, 81 passes


Last one is only 4 minutes of what I proposed in the last message. Same tonemapping. It appears that the image seems well scaled, except the bright spots. I'll let this run for the night and see what happen.
amc_cheated.jpg
Amc cheated, 4 minutes
guibou
Developer
 
Posts: 271
Joined: Fri Dec 04, 2009 10:14 am

Re: SPPM renderer (CPU-only)

Postby J the Ninja » Tue Jul 17, 2012 2:20 pm

Question about the "hitpointperpass" parameter. Wouldn't it be simpler for the user if this was a scaling factor based on the image resolution instead of the absolute number of hit points to use? So, for example, 1.0 gives the old behavior of hit points for all pixels. A value of 0.5 would give hit points for half the pixels, etc.

The problem with the current parameter is that sane manual values are resolution dependent. It becomes especially weird to deal with when you are test rendering at a lower resolution. You have to bump up the hit point count when you go to full res, which seems a little weird.
-Jason

Material DB Admin
User avatar
J the Ninja
Developer
 
Posts: 2249
Joined: Wed May 19, 2010 9:54 pm
Location: Portland, USA

Re: SPPM renderer (CPU-only)

Postby Chawl » Thu Sep 27, 2012 4:52 pm

How about implementing a MLT+SPPM method instead of DL+SPPM?

Could it be possible to get nice glossy hitpoints on some secondary reflections and/or occluded/shaded areas by this way?

I'm really curious if there is a way to combine amazing refractive capabilities of SPPM with MLT Bidir fineness.

Sorry if I say something silly but I'm quite ignorant of the subject. Tx.
Chawl
 
Posts: 72
Joined: Fri May 14, 2010 7:52 pm
Location: Ankara, Turkey

Re: SPPM renderer (CPU-only)

Postby Dade » Fri Sep 28, 2012 2:05 am

Chawl wrote:I'm really curious if there is a way to combine amazing refractive capabilities of SPPM with MLT Bidir fineness.


There have been recent papers showing how to connect BiDir paths in the way SPPM does. It is a pretty new approach but it is promising, it has the potential to become the "definitive" rendering algorithm.

For instance: https://graphics.cg.uni-saarland.de/201 ... x-merging/
User avatar
Dade
Developer
 
Posts: 4851
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: SPPM renderer (CPU-only)

Postby jeanphi » Fri Sep 28, 2012 3:27 am

Hi,

Don't forget that what makes SPPM efficient is also the large number of hit points which increases the probability of finding one, this translates in bidir terms to a large number of eye paths.
This will require some architectural changes, but shouldn't be too hard. We could maybe even do with a single eye path and multiple light paths, which we already support ;)

Jeanphi
jeanphi
Developer
 
Posts: 6624
Joined: Mon Jan 14, 2008 7:21 am

PreviousNext

Return to Architecture & Design

Who is online

Users browsing this forum: No registered users and 2 guests