diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-03-12 20:54:41 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-03-13 22:59:20 +0300 |
commit | 40d579b69f2f0acdf2695fe23a315212ebffae13 (patch) | |
tree | 0f3e100a23d6088b28fff7b406ddb8b23c17d741 /source/blender/draw/engines/eevee/eevee_shaders.c | |
parent | 6a7f6f2867dc8a7aba8e91bf0fdf299ef276a65b (diff) |
Cleanup: EEVEE: Split effect_ssr.glsl
This split is to make code easier to manage and rename the files to
`effect_reflection_*` to avoid confusion.
Also this cleans up a bit of the branching mess in the trace shader.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_shaders.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_shaders.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_shaders.c b/source/blender/draw/engines/eevee/eevee_shaders.c index b704521ce39..f7b83fa6d23 100644 --- a/source/blender/draw/engines/eevee/eevee_shaders.c +++ b/source/blender/draw/engines/eevee/eevee_shaders.c @@ -217,7 +217,9 @@ extern char datatoc_effect_gtao_frag_glsl[]; extern char datatoc_effect_minmaxz_frag_glsl[]; extern char datatoc_effect_mist_frag_glsl[]; extern char datatoc_effect_motion_blur_frag_glsl[]; -extern char datatoc_effect_ssr_frag_glsl[]; +extern char datatoc_effect_reflection_lib_glsl[]; +extern char datatoc_effect_reflection_resolve_frag_glsl[]; +extern char datatoc_effect_reflection_trace_frag_glsl[]; extern char datatoc_effect_subsurface_frag_glsl[]; extern char datatoc_effect_temporal_aa_glsl[]; extern char datatoc_effect_translucency_frag_glsl[]; @@ -304,6 +306,7 @@ static void eevee_shader_library_ensure(void) DRW_SHADER_LIB_ADD(e_data.lib, volumetric_lib); DRW_SHADER_LIB_ADD(e_data.lib, ssr_lib); DRW_SHADER_LIB_ADD(e_data.lib, effect_dof_lib); + DRW_SHADER_LIB_ADD(e_data.lib, effect_reflection_lib); DRW_SHADER_LIB_ADD(e_data.lib, closure_type_lib); DRW_SHADER_LIB_ADD(e_data.lib, closure_eval_lib); DRW_SHADER_LIB_ADD(e_data.lib, closure_eval_diffuse_lib); @@ -767,8 +770,14 @@ struct GPUShader *EEVEE_shaders_effect_screen_raytrace_sh_get(EEVEE_SSRShaderOpt char *ssr_define_str = BLI_dynstr_get_cstring(ds_defines); BLI_dynstr_free(ds_defines); - e_data.ssr_sh[options] = DRW_shader_create_fullscreen_with_shaderlib( - datatoc_effect_ssr_frag_glsl, lib, ssr_define_str); + if (options & SSR_RESOLVE) { + e_data.ssr_sh[options] = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_effect_reflection_resolve_frag_glsl, lib, ssr_define_str); + } + else { + e_data.ssr_sh[options] = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_effect_reflection_trace_frag_glsl, lib, ssr_define_str); + } MEM_freeN(ssr_define_str); } |