← All ideas
  • Published 10 Nov 2024

Realtime Pathtracing in Eevee (research paper)

Reservoir Spatio-Temporal Importance Resampling (ReSTIR)

A good breakdown of what this research paper covers starts here at 4min 20sec: youtu.be/zD9kS1nOuyU

The research paper is here: research.nvidia.com/publication/2021-06_restir-gi-path-resampling-real-time-path-tracing

After reading through the paper, obviously this is a big project. Some key topics I read were:

1- Sample Storage: Introduce some kind of data structures (reservoirs) to store light path samples from current and previous frames, as well as from neighboring pixels.

2- Path Resampling: Implementing algorithms to select and reuse the most significant light paths based on their contribution to the scene's lighting.

3- Bias Management: Ensuring that the reuse of samples does not introduce visual artifacts or bias, possibly by including validation checks and weighting mechanisms.

Am I proposing this would replace Cycles? No. Would it need to run at real-time 60fps like it's being developed to run in Unreal? No (though, that's pretty cool).

In the video, they talk about how they're specifically only path tracing:

  • direct lighting
  • indirect lighting
  • and "some reflections" (rougher reflections, specular reflection. Not mirror reflection)

Having a version of this in Blender would be really cool. Even if it only worked a third as well as the Unreal version running at 60fps, it would offer a nice alternative to fully accurate Cycles, to render out long frame sequences quickly with reasonably convincing path tracing (maybe this is the natural evolution of Eevee).

I likely don't understand the cost/development significance of what I'm proposing. I'm just a guy watching cool videos and reading interesting papers. I know Blender isn't Unreal and there are very different goals, but I like to put stuff like this out here.

100%

Development Status: In Development

Upvote 18 Downvote 0 blender/pulls/121023
rileyb3d
10 Nov 2024

1 Comment

jeroenbakker

Although the mentioned task ( projects.blender.org/blender/blender/pulls/121023 ) is for Cycles, it has been shortly discussed to be an option for EEVEE as well.

Developments isn't moving due to the complexity of adding this to a production level rendering with all the nitty and gritty details that needs to be solved.

1