Jump to content

  • Log In with Google      Sign In   
  • Create Account

14 years ago on June 15th Gamedev.net was first launched! We want to thank all of you for being part of our community and hope the best years are ahead of us. Happy birthday Gamedev.net!

#ActualBacterius

Posted 02 January 2013 - 06:38 AM

Ugh. Sorry, I don't like when code is written like that. I would rather readability than conciseness. That said, well done, it looks really good (and correct, as well)! Works perfectly under Linux. I am actually working on a similar concept myself, though it's far from ready.

 

However, I couldn't help but notice that it takes a crapload of samples to converge properly. Have you implemented importance sampling? There is a rather elegant way to do in volume rendering so if you use the probability distribution as demonstrated in "Rendering Participating Media with Bidirectional Path Tracing" which I assume is your reference as well, it lets you let do direct light sampling just as you would in a conventional path tracer (which'll reduce variance considerably, assuming the volume is not too dense and the light source is sufficiently close, obviously). This might help improve performance a bit, if the lights are too small.

 

I've got some spare processor cycles, just ask me if you need something rendered I'll see what I can do (I can render 512 samples of the default scene in 1m40s, with 4 threads)


#1Bacterius

Posted 02 January 2013 - 06:34 AM

Ugh. Sorry, I don't like when code is written like that. I would rather readability than conciseness. That said, well done, it looks really good (and correct, as well)! Works perfectly under Linux. I am actually working on a similar concept myself, though it's far from ready.

 

However, I couldn't help but notice that it takes a crapload of samples to converge properly. Have you implemented importance sampling? There is a rather elegant way to do in volume rendering so if you use the probability distribution as demonstrated in "Rendering Participating Media with Bidirectional Path Tracing" which I assume is your reference as well, it lets you let do direct light sampling just as you would in a conventional path tracer (which'll reduce variance considerably, assuming the volume is not too dense and the light source is sufficiently close, obviously). This might help improve performance a bit, if the lights are too small.

 

I've got some spare processor cycles, just ask me if you need something rendered I'll see what I can do.


PARTNERS