Page 2 of 2

Re: Psychopath: a microgeometry path tracer

Posted: Thu May 15, 2014 5:01 pm
by cessen
erichocean wrote:You might want to check out this paper: ... /paper.pdf

Indeed, that paper was actually the original inspiration for Psychopath. :-) That paper is basically for adding ray tracing to a Reyes renderer, but I thought, "I wonder how a renderer would perform that was based entirely around that approach, without any Reyes component?"

But that was over three years ago. Psychopath has since diverged significantly from that paper, and I think the only aspect that remains is that it uses ray differentials to calculate how fine geometry needs to be. Over time I found too many shortcomings with the approach in that paper. Specifically:
1. When you rely entirely on a cache for sharing generated geometry among rays, you get a hard performance cliff when the cache starts thrashing due to e.g. too much geometry or highly incoherent scene access. The paper even mentions a case that is problematic for that, e.g. a disco ball.
2. When you access a single shared cache for every ray hit, that becomes an enormous bottleneck for multi-threaded rendering.
3. The results of surface splitting need to be stored in the scene tree itself for later rays to access (otherwise splitting becomes a bottleneck if you do it independently for every ray), which both creates multi-threading bottlenecks while the tree is modified and means that scene data can, at least in theory, grow to be arbitrarily large during rendering.

It's still a great paper, mind you. And as I said, was my primary inspiration originally. But in the end it has too many shortcomings in practice, especially related to multi-threaded rendering.

Re: Psychopath: a microgeometry path tracer

Posted: Sat May 17, 2014 8:40 am
by stefan
BTW, do you have any sample scene files for Psychopath? I was able to build it on OS X, but I don't have any scenes to test it out :)

Re: Psychopath: a microgeometry path tracer

Posted: Mon May 19, 2014 9:42 pm
by cessen
stefan wrote:BTW, do you have any sample scene files for Psychopath?

I don't think I currently have any up-to-date ones uploaded anywhere. I have a few blend files with an old export script inlined here:

But I don't think the exported files are compatible with the recent builds. (Note to self: I should take some time to clean up the export script, make it a proper Blender addon, and keep it in the Psychopath git repo.)

Sorry! I definitely want people to be able to play with it, but to be honest it's not really in a "playable" state right now, and is frequently changing. I'm starting to converge on a stable design for the ray tracing kernel, though, at which point I'll make an effort to create a "real" file format and proper export tools. But unfortunately I don't have a whole lot of spare time to work on Psychopath right now. Rest assured, however, that I'll post here when I make progress (but it might be a while)

Re: Psychopath: a microgeometry path tracer

Posted: Tue May 27, 2014 3:18 pm
by cessen
So, turned out it wasn't as long a while as I thought. The kernel still isn't where I want it to be, but I'm now maintaining a Blender addon that renders using Psychopath. It's in the Psychopath git repo under "psychoblend". I'll keep it up-to-date alongside Psychopath itself. If it doesn't work for some reason, please report in the repo's issue tracker and/or make a note of it here and I'll try to get it fixed when I have the time. I've only tested it on Linux so far, so it may have issues on other systems.

Note that addon doesn't show render progress while rendering yet, so it looks like nothing is happening aside from the cpu revving up. It does display the final render when it finishes, though.

Re: Psychopath: a microgeometry path tracer

Posted: Mon Jul 07, 2014 5:18 am
by cessen
Glossy render! Yay! No more boring lambert! There are obviously still some bugs in the implementation, but it's more-or-less working.


Also, I made a blog for Psychopath, if anyone is curious:

Re: Psychopath: a microgeometry path tracer

Posted: Wed Jul 09, 2014 8:29 am
by andersll
Awesome! Looking forward to following your progress on the blog.

Re: Psychopath: a microgeometry path tracer

Posted: Tue Apr 14, 2015 9:06 pm
by Paleos
A way to get around the MLT limitation of your architecture is to use a multiple proposal metropolis sampler such as described in the first paper of my Useful Markov Chain Monte Carlo Papers to apply to Graphics post.