EEVEE Next

Hi, motion-blur and depth of field are now done.

For both, I took the time to port the implementation to compute shaders. This means I had more freedom to leverage modern hardware capabilities, improving performance a bit in both cases. The core algorithms are still the same. This was also a good oportunity to double check the code and implement a few missing bits.

Quality and ease of use have also been improved. I removed some parameters that existed only because of shortcomings of the old implementations.

Motion Blur has 2 new features:

  • The shutter curve mapping is now supported. It only distributes the motion steps following the curve. So it will not be visible if the motion steps parameter is set too low.
  • Motion-blur is supported in the viewport:
    When navigating or editing, it only blurs towards the previous viewport state to smooth out the interaction.
    When playing animation, it will use the render settings and will do a preview of the motion blur by extrapolating the deltas with the last drawn frame data.

For the depth of field, input stabilization has been fully reworked and uses TAA internally. This means much less flickering on bokeh highlights. EDIT: I also had to disabled jittered Depth Of Field for the viewport. This is because it is too much unstable and incompatible with TAA which is what the viewport uses. The tool-tip should reflect that once EEVEE-Next replaces EEVEE.

I also started to enable all properties panel that are EEVEE-Next compatible.

Next, I’ll tackle the light and shadow systems.

111 Likes