Page 1 of 2

Stochastic Progressive Photon Mapping demo

Posted: Thu Jun 03, 2010 10:00 am
by CoolColJ
straaljager wrote:
Just found this amazing demo while searching the web for "SPPM": http://graphics.ucsd.edu/~toshiya/gpusppm.zip It's written in GLSL and runs on ATI (R600 and up) and Nvidia (G80 and up) cards. It's really fast even on my feeble 8600M GT.

Caustics converge very fast! I now understand why this is considered superior to pathtracing. Having SPPM in SLG will be crazy awesome
http://graphics.ucsd.edu/~toshiya/sppm.pdf

You'll need glut32.dll in the same directory to run the GPU demo
http://www.xmission.com/~nate/glut.html

the rest of the page is here
http://graphics.ucsd.edu/~toshiya/


I get a peak of 9.46 million photons/sec on my system.
Radeon 4670, and i7 930 at 3.2ghz. GPU is overloaded, slow desktop frame rate, but CPU barely heats up. Everything is going GPU real soon :)

Scene clears out so quickly, even on my weak video card. Pretty much converged within 5.5 mins with 3100+ million photons

It does caustics really well. Better than Bidirectional PT, maybe, but it has the same kind of look.
I wonder if this method is better than MLT for caustics and other hard to render things like refracted caustics on rough surfaces underwater etc?

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Jun 03, 2010 10:41 am
by CoolColJ
if you want to tinker a bit with the scene, like turning on the motion blur
There is no GUI control, but you can edit 'raytrace.fs' to change the scene description
while running the executable and reload 'raytrace.fs' by right clicking the window.

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Jun 03, 2010 11:17 am
by StompinTom
Damn, I saw some examples and it makes me even more frustrated that I can't get my new GPU right now!

LuxRender is playing around with an implementation of SPPM in their GPU-driven renderer (SmallLuxGPU or SLG).

http://www.luxrender.net/forum/viewtopi ... &start=190

Re: Stochastic Progressive Photon Mapping demo

Posted: Sat Jun 05, 2010 4:09 am
by PureSpider
Hm, I can't get any image to show up...
Every pixel and fragment shader compiles successfully, still nothing is showing up :?
What am I doing wrong?

€dit: Seems you need the obj and mtl files from http://graphics.ucsd.edu/~toshiya/cornell.zip in addition.
€dit 2: Nope, still black image :(

Re: Stochastic Progressive Photon Mapping demo

Posted: Sat Jun 05, 2010 6:12 pm
by ieatfish
60M+ Photons/sec with my 5870. :lol: So wonderful, I'm even more stoked for Indigo GPU rendering.

Re: Stochastic Progressive Photon Mapping demo

Posted: Sun Jun 06, 2010 12:33 am
by CTZn
// max bounce
#define MAX_PATH_LENGTH 4
I'm pretty sure that's a linear setting, four bounces are the strict necessary for refactive caustics (then basta).

I tried to hard code MAX_PATH_LENGTH and PATH_LENGTH in raytrace.fs (lines 252 & 365) and did got a cpu load (not multi-threaded) but the irradiance looks wrong then, it's into the cpp file and this one do not compile at runtime :/

Impressive numbers if I refer back to the 15mn for 1M photons with mental ray v~3... and that was pretty high, using bigger photons radius.

Re: Stochastic Progressive Photon Mapping demo

Posted: Mon Jun 07, 2010 4:38 pm
by CoolColJ
I made the glass sphere cover the other ones, not bad :)

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 5:58 am
by PureSpider
Did you see/try GPUSPPM2 yet?

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 12:39 pm
by CoolColJ
Looks funky, and they still haven't put in the glut32 with the archive

what has changed? I noticed a more multi-coloured look

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 12:42 pm
by lycium
SPPM looks interesting and is surely worth trying at some point, though we have our doubts as to whether it can really be unbiased if it collects photon hits over a finite area - it makes many of the assumptions photon mapping does.

Anyway, I'm pretty keen to try that GPUSPPM2, will do at home :)

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 12:48 pm
by CoolColJ
The current version of the GPU Luxrender offshoot has SPPM support and it works pretty well. It does caustics faster than any other render method

If you could combine Path tracing wth SSPM somehow, and MLT for SSS then you have the best of all worlds :D

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 12:56 pm
by lycium
We've been improving MLT in Indigo quite a lot recently 8)

Thanks again for your difficult test scene!

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 1:02 pm
by CoolColJ
I look forward to trying it out :)

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 2:04 pm
by StompinTom
Will there be any way to use GPU + new MLT? I'd be sad if it was an either-or choice! Also, I'm getting smoothing issues: black faces on oblique angles. I'll email you about that though.

Back on topic: I can't run it, it says I need GLUT32.DLL... Any support files I need to download?

EDIT: Nevermind, need to learn to read. Technicolor fun, running at 14.9M Photons/sec, not bad!

Re: Stochastic Progressive Photon Mapping demo

Posted: Thu Aug 05, 2010 2:18 pm
by StompinTom
ieatfish wrote:60M+ Photons/sec with my 5870. :lol: So wonderful, I'm even more stoked for Indigo GPU rendering.
60 million?! Geez, I'm getting 14.96 million with my GTX 480. Hrmmmm...