Game Changing Replacement for Path Tracing!
Watch this video: Beautiful Results From 30 Years Of Light Transport Simulation!
from Two Minute Papers
Watch this video: Beautiful Results From 30 Years Of Light Transport Simulation!
from Two Minute Papers
17 Comments
Unfortunately this is by no means a "replacement for path tracing".
I've explained some of the reasons here if you're interested in details, but the short version is that this is not nearly at a point where it's viable to integrate it in Cycles.
I would first finish Vulkan implementation before even touching this
* @Anže * Isn't Vulkan for Eevee though?
Please blender devs hire someone for this, make cycles the best renderer it can be
Is this going to be in Blender before 3.0? (EDIT: I just realized this is right-click select, not blender today, so obviously it is not) If not, then I think there is no need for us ordinary non-programmer users to look at it. From the video it sounds like it has already been researched and paper was out at 2012. And it's 8 years now, still not in Blender or other main stream softwares. Videos from Two Minute Papers always make me excited and then figure out the advance things he talks about do not have any software's support. There is no way for users to try those things unless you know programming and you know computer graphics maths and physics. It may be cool to look at the future since it should be the future, but if it's not in Blender officially, if the developer don't have intention to include it, there is really nothing we can do.
It sounds like a lot of work to convert Cycles from pathtracing engine into this new kind of engine after all. I am not sure if any developer would want to do it. Another solution could be getting a new official render engine in Blender, but that sounds even more work. The new render engine needs to be compatible with Cycles and Eevee, needs to be able to use all or most of the material nodes. That does not sound like something that would be easy to do. I doubt if the developers would truely implement this new rendering technique in any near future.
Unless, the person or group that wrote the paper and developed this technique has the intension to be included in Blender, and they actively commit their finished codes and Blender builds to developer.blender.org That's like, the most positive situation.
EDIT: Sorry my tone was a bit harsh, I thought this post was in Blender Today channel. My thought was like, no need to look at it if not in blender, but this is right click select so it is obviously not in Blender, LOL.
Edit: People told me that it is a new paper in 2020 not the 2012 one. It seems like this new one has higher hope since it seems easier to implement.
* @EaryChow * Not totally familiar with blender's algorithm or scripting but there is a high probability that blender has to make a new renderer as a starting base if they want to achieve this technology.
* @johnpdelacruz26 * Not necessarily. Cycles currently only has sampling method (Maybe 2 if branched path tracing is counted as a method), but most other renderers have multiple. Lux render for example has Bidir/Path, engines, and many different samplers such as sobol and metropolis.
Take this with a grain of salt, as I too am pretty unfamiliar with Cycles code, and while it would certainly require a lot of work, I don't think it would need an entire rewrite
* @EaryChow * It's a 2020 paper, and if you take a look it can be integrated with a path tracing renderer. It's not impossible that it can be added to Cycles. The 2012 paper was a much more complex technique, which explains why no one has used it in a production system so far.
* @mwvp * Really?! Thanks for informing. The way he introduced those different techniques was confusing LOL
* @EaryChow * As an extension to cycles (if possible) or as a new render. It sure be complex but not impossible, reminder once we had montecarlo rendering in cycles as well.
* @peter.boos * Isn't Cycles still Montecarlo? I can't seem to find any info on it changing
Just posted this on devtalk: devtalk.blender.org/t/specular-manifold-sampling-for-cycles-caustics/15646
Yes ! Having some kind of bidirectional+photon mapping technique would be awesome for Cycle ! ...Not sure why LuxcoreRender devs can't sudmit a patch for Cycle or something so we can finally have some caustic in Cycle (caustic are everywhere, not just in glass)
Plz read a bit about it ppl, so you have some technical knowledge.
As to why Cycle can't render caustic (reverse patch tracer; from camera to light) and no option for bi-directionnal rendering (light to camera + camera to light)
Plz vote this RCS. So it's on top !!
* @Francis Jasmin * Are we watching the same video? I don't hear a word about bidirectional+photon mapping in the video. The way the several techniques were introduced in the video was kind of confusing. I am sure now after watching through several more times, that the technique in this video should be "Specular Manifold Sampling".
* @EaryChow * Yea sorry, true he never talk about bi-directional in the video...
I suppose there is some sort of it in the "specular manifold sampling"
I was refering to these kind of article that explain it well... I'm zero percent technical guy, I just love to read a bit about rendering technique.
chaosgroup.com/blog/what-are-caustics-and-how-to-render-them-the-right-way
* @Francis Jasmin * I am not a tech guy either, but I just read more about this technique and it seems like totally unrelated to bidirectional+photon mapping. In my understanding, traditional path tracer is shooting a ray from camera, and after the ray gets refracted several times, it is easy for it to miss the target, the light source.
Not sure if I am understanding it correctly here, but it seems this method samples points as seed points and connect the seed points and end points with straight lines, and then use a Newton solver to calculate the refracted path. Check out this video if you want to know more about it: rgl.s3.eu-central-1.amazonaws.com/media/papers/Zeltner2020Specular_1.mp4
They mentioned photon mapping at the begining of the video but he said it had drawbacks such as bluring problems, and it seems like they are not using it at all.
* @EaryChow * Indeed. We don't have good caustics in Cycles because many of its features wouldn't work with a bidirectional path tracing (i.e. shooting light paths also from the light sources, in addition to from the camera, to help to find all those difficult reflected/refracted paths that create caustics). And bear in mind that all light that passes through any kind or form of glass (such as a closed window), is, strictly speaking, a "caustic". Cycles simplify those cases, ignoring refraction for incoming light rays, giving results that are somehow not entirely correct. Many other render engines rely on some form of bidirectional path tracing to account for those effects.
To my understanding, this approach is something to be really excited about, because it should be implementable in a path tracer without necessarily requiring any path being cast from the light source. This means that it should be possible to implement it without any fundamental change to Cycles.
This method uses randomly found refracted/reflected direct paths to light sources (that generally appear as fireflies), as seed paths. Once one of those seed paths is determined, the algorithm is able to quickly find a multitude of other valid reflected/refracted paths between the same two points (camera and light source). In the video, while rendering the torus scene, you can notice that some bright areas appear all of a sudden. My guess is that, as the path tracer explores new random paths, and one of those eventually hits the light (normally causing the appearance of a firefly), the algorithm is suddenly able to unlock a whole new bunch of similar ones that are responsible for that specific caustic or bright area...
I'm really excited about this, and I would be really super happy if this landed in Cycles.