← All ideas
  • Published 11 Feb 2020

Gradient-Domain Path Tracing for Cycles = FASTER RENDERING

I recently was going over Blender Cycles forums on why BiDir hasn't been implemented, when i stumbled upon a comment mentioning Gradient-Domain Path Tracing.

I went to do some research on it, and the improvements over traditional Path Tracing are HUGE. I think this would greatly improve rendering speed for cycles as a whole, and not cause any trouble with the materials and the like.

The basic explanation: instead of shooting rays randomly (a good portion of which would contribute nothing at all), it will focus samples on parts with a strong gradient. This gives amazing results as you can see from the preview image, but it is 2.5x slower per sample . But this does mean you get great results with WAY less samples, which heavily outweighs the 60% speed reduction. Pair this with the built-in denoiser and rendering should be allot faster per frame.

Below are some links and pictures detailing what it does, if you're interested in understanding the full thing.

Link 1: mediatech.aalto.fi/publications/graphics/GPT/

full paper: mediatech.aalto.fi/publications/graphics/GPT/kettunen2015siggraph_paper.pdf

Image 1: mediatech.aalto.fi/publications/graphics/GPT/teaser.png

Link 2: raytracey.blogspot.com/2015/05/brandnew-gpu-path-tracing-research-from.html

Image 2: 2.bp.blogspot.com/-4HX1W4AcHdU/VV6StVnkbtI/AAAAAAAAECM/-k1kcJt9Cu0/s400/gradientdomainPT.png

2019-07-30_15-05.png

97.1%

Development Status: Open

Upvote 33 Downvote 1
Sir_Waffle
11 Feb 2020

8 Comments

Shimoon

To awnser to your first question "why BiDir hasnt been implemented?" thats because undidirectionel path tracing is able to render more detailed and larger scenes compared to some other rendering algorithms. Also, it can keep rays relatively coherent to use an on-demand image cache, wich is quite dificult with bidirectional path tracing or even MLT (wich use BiDir as base algorithm but produce way too much artifacts).

But yeah, Gradient-Domain path tracing seems quite efficient for most situation so it would give awesome results with denoiser! Maybe asking to the E-Cycles team to try that would help the implementation

2
Sir_Waffle Author

* @Shimoon * I read about why bidir couldn't be implemented a long time ago yeah. Which i don't mind since for crazy realistic stuff i default to Luxcore instantly. But GDPT would be great for an animation focused render engine like Cycles.

TTNK

I saw this paper, and this shouldn't be too hard to add in blender, it's not a bidirectional path tracing, it's a normal path tracing with a couple of extra steps, and it would be awesome to see in practice :D

1
Vyach

Any adaptive sampling and ray-building is welcome IMO! And yes, the same: I use Lux/Yafa for caustics, where Cycles (or any pathtracer) just sux.

1
Josephbburg

Wouldn't this introduce bias? Not a big deal, but everybody claims to be unbiased and physically accurate these days.

Sir_Waffle Author

* @Josephbburg * I'm not sure if it introduces bias or not, but that's not the point of this implementation.

Sir_Waffle Author

* @Josephbburg * I read more into it, and even without changing the sample distribution (which would be creating bias), it yields many improvements in error prevention.

Josephbburg

* @Julien * It sounds pretty cool. I like biased renders because I do NPR and it makes my life easier to cheat a little.

1