Weighted Path tracing idea. Would it help?

Yes, and this is why i came out with this idea. Sort of merging the speed of PT with the flexibility of BPT.

As Lukas pointed out, Cycles chooses the samples to be evaluated, not wasting resources with unneeded ones. Yet the randomness is uniform. This leads to renders where some passes (as for my experience this is often the glossy one) are noisier than the others. Weighting the randomness would statistically throw more samples where the user needs them

With a map painted on top of the camera lens maybe ?

I get the same thing, on OS X. If I use the same GPU as my display to render, the whole display almost freezes to a crawl while rendering. AFAIK it uses more GPU memory when using BPT compared to PT. Thankfully, I have an extra GTX 980 that isn’t connected to the display :slight_smile:

Cycles needs a proper noise reduction system, the best way to do that is process geometry and textures for high high noise causing areas and assign samples accordingly, mixed with decent reconstruction based of the prepass.

This Paper will Blow your mind:

Adaptive Rendering based on Weighted Local Regression
Link: http://sglab.kaist.ac.kr/WLR/

This is the way forward, But someone will have to convert the cuda to Opencl to really make it suitable for cycles IMHO.

But here’s the best part, It has source code and a test implementation in PBRT for download. :slight_smile:

Check the Video, Very cool

The reason for the freezing with BPT, to put it simply, is that the GPU can’t do anything else while it’s executing a CUDA kernel, so it can’t draw the desktop. Now, this also applies to PT, but PT only renders one bounce per sample, so each sample (1 sample = 1 kernel call) doesn’t take too long and you only notice some stuttering. For BPT, though, you might have 64 diffuse bounces per sample, which means that a single sample takes multiple seconds and freezes your PC in the meantime.
That’s why it helps to have one GPU for your screen and one for rendering, since then the desktop-drawing doesn’t have to wait for the rendering on the other card.

Hey Lukas, isn’t Weighted Local Regression the next cool thing you’re playing with? :wink:

It might indeed be :wink:
No promises or testbuilds yet, though…

WHy then not add it only for CPU and OpenCL ? I mean, there are already many things not accessible for CUDA (OSL, Volumes, unlimited textures, etc…) and also some parts availaible for CUDA but not OpenCL. Limitations of one GPU vendor shouldn’t stop your great work?

Right. Shhhh… don’tell anyone!

Hi.
Maybe I misunderstood you, but just in case I clarify that with “The reason for the freezing with BPT…” he refers to what I had asked in the message #17. Freezing in the system, not frozen project.