Blender Git Loki

Git Commits -> Revision ad23570

April 1, 2021, 20:37 (GMT)
EEVEE: Film: Filtered accumulation with panoramic projection support

This commit adds the Film class that handles accumulation of color and
non-color data using arbitrary projection and filter size.

A weighted accumulation (sum) is done into a data buffer with an
additional weight buffer. The sum being per pixel, it allows the input
textures that are not aligned with the output pixel grid.

Panoramic projection works by rendering a cubemap (6 views) of the scene
at the camera position. The Film filter pass then gather the pixels
using the correct Panoramic projection ensuring correct Anti-Aliasing.

For Non-color data (depth, normals) we only keep the closest value to
the target pixel center (simulating a filter size of 0).

Color data is accumulated in a log space to improve AntiAliasing output.
This is hardcoded for now.

Larger filters have poor performance but are very fast to converge.

Code Wise: This commit rename some modules to avoid possible confusion
and have better meaning. Use namespace instead of prefixes.

Added a new eevee_shared.hh file to share structure and enum definitions
between GLSL and C++.

Commit Details:

Full Hash: ad23570fa2dd5333ccc99cdcdd044ce7f2784bcb
Parent Commit: 8777497
Lines Changed: +1465, -590

11 Added Paths:

/source/blender/draw/engines/eevee/eevee_enum.hh (+13, -0) (View)
/source/blender/draw/engines/eevee/eevee_film.hh (+208, -0) (View)
/source/blender/draw/engines/eevee/eevee_sampling.hh (+87, -0) (View)
/source/blender/draw/engines/eevee/eevee_shared.hh (+135, -0) (View)
/source/blender/draw/engines/eevee/shaders/camera_lib.glsl (+151, -0) (View)
/source/blender/draw/engines/eevee/shaders/film_filter_frag.glsl (+114, -0) (View)
/source/blender/draw/engines/eevee/shaders/film_lib.glsl (+110, -0) (View)
/source/blender/draw/engines/eevee/shaders/film_resolve_frag.glsl (+25, -0) (View)
/source/blender/draw/engines/eevee/shaders/object_forward_frag.glsl (+25, -0) (View)
/source/blender/draw/engines/eevee/shaders/object_lib.glsl (+29, -0) (View)
/source/blender/draw/engines/eevee/shaders/object_mesh_vert.glsl (+14, -0) (View)

7 Deleted Paths:

/source/blender/draw/engines/eevee/eevee_accumulator.hh (+0, -183)
/source/blender/draw/engines/eevee/eevee_random.hh (+0, -52)
/source/blender/draw/engines/eevee/shaders/accumulator_accumulate_frag.glsl (+0, -84)
/source/blender/draw/engines/eevee/shaders/accumulator_resolve_frag.glsl (+0, -25)
/source/blender/draw/engines/eevee/shaders/mesh_frag.glsl (+0, -18)
/source/blender/draw/engines/eevee/shaders/mesh_lib.glsl (+0, -18)
/source/blender/draw/engines/eevee/shaders/mesh_vert.glsl (+0, -14)

11 Modified Paths:

/source/blender/blenlib/intern/math_vector_inline.c (+6, -0) (Diff)
/source/blender/draw/CMakeLists.txt (+16, -5) (Diff)
/source/blender/draw/engines/eevee/eevee_camera.hh (+278, -15) (Diff)
/source/blender/draw/engines/eevee/eevee_engine.c (+9, -1) (Diff)
/source/blender/draw/engines/eevee/eevee_engine.cc (+47, -17) (Diff)
/source/blender/draw/engines/eevee/eevee_instance.hh (+64, -52) (Diff)
/source/blender/draw/engines/eevee/eevee_renderpasses.hh (+42, -46) (Diff)
/source/blender/draw/engines/eevee/eevee_shaders.hh (+33, -24) (Diff)
/source/blender/draw/engines/eevee/eevee_view.hh (+47, -36) (Diff)
/source/blender/draw/intern/draw_manager_profiling.h (+8, -0) (Diff)
/source/blender/draw/intern/shaders/common_math_lib.glsl (+4, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021