From 189a6c783d918329e5219e60c2ed9a4a8f413380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Sat, 22 Feb 2020 16:48:16 +0100 Subject: Cleanup: EEVEE: Use interpf instead of custom lerp --- .../draw/engines/eevee/eevee_shadows_cascade.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/draw/engines/eevee/eevee_shadows_cascade.c b/source/blender/draw/engines/eevee/eevee_shadows_cascade.c index 32045e12a1c..1fd8d818b33 100644 --- a/source/blender/draw/engines/eevee/eevee_shadows_cascade.c +++ b/source/blender/draw/engines/eevee/eevee_shadows_cascade.c @@ -120,11 +120,6 @@ static void frustum_min_bounding_sphere(const float corners[8][3], #endif } -BLI_INLINE float lerp(float t, float a, float b) -{ - return ((a) + (t) * ((b) - (a))); -} - static void eevee_shadow_cascade_setup(EEVEE_LightsInfo *linfo, EEVEE_Light *evli, DRWView *view, @@ -254,11 +249,11 @@ static void eevee_shadow_cascade_setup(EEVEE_LightsInfo *linfo, for (int c = 1; c < cascade_nbr; c++) { /* View Space */ - float linear_split = lerp(((float)(c) / (float)cascade_nbr), csm_start, csm_end); - float exp_split = csm_start * powf(csm_end / csm_start, (float)(c) / (float)cascade_nbr); + float linear_split = interpf(csm_end, csm_start, c / (float)cascade_nbr); + float exp_split = csm_start * powf(csm_end / csm_start, c / (float)cascade_nbr); if (is_persp) { - csm_data->split_start[c] = lerp(cascade_exponent, linear_split, exp_split); + csm_data->split_start[c] = interpf(exp_split, linear_split, cascade_exponent); } else { csm_data->split_start[c] = linear_split; @@ -266,10 +261,10 @@ static void eevee_shadow_cascade_setup(EEVEE_LightsInfo *linfo, csm_data->split_end[c - 1] = csm_data->split_start[c]; /* Add some overlap for smooth transition */ - csm_data->split_start[c] = lerp(cascade_fade, - csm_data->split_end[c - 1], - (c > 1) ? csm_data->split_end[c - 2] : - csm_data->split_start[0]); + csm_data->split_start[c] = interpf((c > 1) ? csm_data->split_end[c - 2] : + csm_data->split_start[0], + csm_data->split_end[c - 1], + cascade_fade); /* NDC Space */ { @@ -298,7 +293,8 @@ static void eevee_shadow_cascade_setup(EEVEE_LightsInfo *linfo, /* Set last cascade split fade distance into the first split_start. */ float prev_split = (cascade_nbr > 1) ? csm_data->split_end[cascade_nbr - 2] : csm_data->split_start[0]; - csm_data->split_start[0] = lerp(cascade_fade, csm_data->split_end[cascade_nbr - 1], prev_split); + csm_data->split_start[0] = interpf( + prev_split, csm_data->split_end[cascade_nbr - 1], cascade_fade); /* For each cascade */ for (int c = 0; c < cascade_nbr; c++) { -- cgit v1.2.3