From: divverent Date: Sat, 9 Jul 2011 14:08:45 +0000 (+0000) Subject: Change how the factor is calculated and set it up to be finished X-Git-Tag: xonotic-v0.5.0~81 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=037d0a68be4ff0b00dbd595ac7d934afb39a5c5f;p=xonotic%2Fdarkplaces.git Change how the factor is calculated and set it up to be finished From: Samual git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@11238 d7cf8633-e32d-0410-b094-e92efae38249 ::stable-branch::merge=5133018e062d31daafb69447e17d5b8c0ce0be6e --- diff --git a/gl_rmain.c b/gl_rmain.c index ee340ebd..50227960 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -6297,23 +6297,19 @@ static void R_BlendView(void) static float blur_average; static vec3_t blur_oldangles; // used to see how quickly the mouse is moving - blur_velocity = VectorLength(cl.movement_velocity); - blur_mouseaccel = fabs(VectorLength(cl.viewangles) - VectorLength(blur_oldangles)); - // set a goal for the factoring - blur_factor = (blur_velocity + (blur_mouseaccel * 10)); - + blur_velocity = bound(0, (VectorLength(cl.movement_velocity) - r_motionblur_vmin.value) / max(1, r_motionblur_vmax.value - r_motionblur_vmin.value), 1); + blur_mouseaccel = bound(0, (fabs(VectorLength(cl.viewangles) - VectorLength(blur_oldangles)) - r_motionblur_vmin.value) / max(1, r_motionblur_vmax.value - r_motionblur_vmin.value), 1); + blur_factor = (blur_velocity + blur_mouseaccel) * (1 - r_motionblur_bmin.value) + r_motionblur_bmin.value; + // from the goal, pick an averaged value between goal and last value cl.motionbluralpha = bound(0, (cl.time - cl.oldtime) / max(0.001, r_motionblur_vcoeff.value), 1); - blur_average *= (1 - cl.motionbluralpha) + blur_factor * cl.motionbluralpha; - - blur_factor = bound(0, (blur_average - r_motionblur_vmin.value) / max(1, r_motionblur_vmax.value - r_motionblur_vmin.value), 1); - //blur_factor = blur_factor * (1 - r_motionblur_bmin.value) + r_motionblur_bmin.value; + blur_average = blur_average * (1 - cl.motionbluralpha) + blur_factor * cl.motionbluralpha; // calculate values into a standard alpha cl.motionbluralpha = 1 - exp(- ( - (r_motionblur.value * blur_factor / 80) + (r_motionblur.value * blur_average / 80) + (r_damageblur.value * (cl.cshifts[CSHIFT_DAMAGE].percent / 1600)) )