Blender Git Loki
Git Commits -> Revision ad23570
Revision ad23570 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) 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)
/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)
/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)
/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)