Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2021-03-12 20:54:41 +0300
committerClément Foucault <foucault.clem@gmail.com>2021-03-13 22:59:20 +0300
commit40d579b69f2f0acdf2695fe23a315212ebffae13 (patch)
tree0f3e100a23d6088b28fff7b406ddb8b23c17d741 /source/blender/draw/engines/eevee/eevee_shaders.c
parent6a7f6f2867dc8a7aba8e91bf0fdf299ef276a65b (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.c15
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);
}