Hi all, especially you, DingTo
i am working on a photorealistic animation project and I’m using back and forth path tracing (from now on: PT) and branched path tracing (BPT). I have node-filled materials everywhere, PBR-ish hard surfaces, complex water shader etc…, illumination is done by a sun and a hdr sky.
Using BPT is really slow. Often PT gives me better noise/time results despite what everyone says about BPT, despite solid angle manual, and despite logic! So i came with this idea: taking the benefits of both modes, and have an hybrid approach. I’ll go to explain.
Reading here and there this is what I understood: BPT, for each AA sample, splits the calculation in the 7 shading components (diffuse glossy transmission AO meshlights sss and volume) and evaluates from there according to each component multiplier. Useful to decide how much love to give each one.
Downside, AA samples can take veeery long time to be done.
On the other hand PT is very fast since it doesn’t split rays but instead, randomly chooses which shading component will be evaluated every time.
Downside, you can’t assign more samples to any shading component because, statistically, they all get the same attention.
So here is the idea: bring components in PT and give them a “weight”, which will determine the probability that each have to be randomly choosen in the place of the others.
example: 700 PT samples
now=> each component has a weight of 1 (same probability).
result=> approx 100 samples each
hybrid=> d4 g3 t2 A0* m1 s1 v1 (* yes 0, why not?)
result=> approx d233 g175 t116 A0 m58 s58 v58
4+3+2+0+1+1+1 = 12 So, the random pick, intead of being done between 1-7 will be done between 1-12
700/12 = 58.333
58d = 233 samples
58g = 175 samples
and so on…
in case you have no SSS or volume or AO (as i do) you can set all these to 0 gaining samples for the others
at the end of the job you obtain the speed of PT plus the ability to “probabilistically-drive” more samples on the components that need them more, as in BPT. I’d call this Weighted Path Tracing (WPT).
what you guys think?