EEVEE-Next: Add Film and RenderBuffers module

This modules handles renderpasses allocation and filling. Also handles
blitting to viewport framebuffer and render result reading.

Changes against the old implementation:
- the filling of the renderpasses happens all at once requiring
  only 1 geometry pass.
- The filtering is optimized with weights precomputed on CPU and
  reuse of neighboor pixels.
- Only one accumulation buffer for renderpasses (no ping-pong).
- Accumulation happens in one pass for every passes using a single
  dispatch or fullscreen triangle pass.

TAA and history reprojection is not yet implemented.
AOVs support is present but with a 16 AOV limit for now.
Cryptomatte is not yet implemented.
This commit is contained in:
2022-06-28 18:33:25 +02:00
parent a9696f04a0
commit f18067aa03
37 changed files with 2396 additions and 118 deletions

View File

@@ -41,6 +41,7 @@
# define floorf floor
# define ceilf ceil
# define sqrtf sqrt
# define expf exp
# define float2 vec2
# define float3 vec3