Use funto's motion blur effect only when using a zipper, but more visibly so
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@9456 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
ef9d15c7f0
commit
ca4bffe34d
@ -402,9 +402,6 @@ void Camera::getCameraSettings(float *above_kart, float *cam_angle,
|
|||||||
*/
|
*/
|
||||||
void Camera::update(float dt)
|
void Camera::update(float dt)
|
||||||
{
|
{
|
||||||
// Initially, disable motion blur
|
|
||||||
irr_driver->getPostProcessing()->setCameraSpeed(0.0f);
|
|
||||||
|
|
||||||
// The following settings give a debug camera which shows the track from
|
// The following settings give a debug camera which shows the track from
|
||||||
// high above the kart straight down.
|
// high above the kart straight down.
|
||||||
if(UserConfigParams::m_camera_debug)
|
if(UserConfigParams::m_camera_debug)
|
||||||
@ -448,9 +445,6 @@ void Camera::update(float dt)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply the motion blur according to the speed of the kart
|
|
||||||
irr_driver->getPostProcessing()->setCameraSpeed(m_kart->getSpeed());
|
|
||||||
|
|
||||||
positionCamera(dt, above_kart, cam_angle, side_way, distance, smoothing);
|
positionCamera(dt, above_kart, cam_angle, side_way, distance, smoothing);
|
||||||
} // update
|
} // update
|
||||||
|
|
||||||
|
@ -1373,6 +1373,8 @@ void IrrDriver::update(float dt)
|
|||||||
|
|
||||||
m_video_driver->endScene();
|
m_video_driver->endScene();
|
||||||
|
|
||||||
|
getPostProcessing()->update(dt);
|
||||||
|
|
||||||
// Enable this next print statement to get render information printed
|
// Enable this next print statement to get render information printed
|
||||||
// E.g. number of triangles rendered, culled etc. The stats is only
|
// E.g. number of triangles rendered, culled etc. The stats is only
|
||||||
// printed while the race is running and not while the in-game menu
|
// printed while the race is running and not while the in-game menu
|
||||||
|
@ -101,6 +101,15 @@ void PostProcessing::endCapture()
|
|||||||
irr_driver->getVideoDriver()->setRenderTarget(0, true, true, 0);
|
irr_driver->getVideoDriver()->setRenderTarget(0, true, true, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PostProcessing::update(float dt)
|
||||||
|
{
|
||||||
|
if (m_boost_amount > 0.0f)
|
||||||
|
{
|
||||||
|
m_boost_amount -= dt*5.0f;
|
||||||
|
if (m_boost_amount < 0.0f) m_boost_amount = 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Render the post-processed scene */
|
/** Render the post-processed scene */
|
||||||
void PostProcessing::render()
|
void PostProcessing::render()
|
||||||
{
|
{
|
||||||
@ -126,9 +135,11 @@ void PostProcessing::render()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Set the boost amount according to the speed of the camera */
|
/** Set the boost amount according to the speed of the camera */
|
||||||
void PostProcessing::setCameraSpeed(float cam_speed)
|
void PostProcessing::giveBoost()
|
||||||
{
|
{
|
||||||
m_boost_amount = core::clamp(MOTION_BLUR_FACTOR * (cam_speed - MOTION_BLUR_OFFSET), 0.0f, 1.0f);
|
m_boost_amount = 5.0f;
|
||||||
|
//printf("setCameraSpeed(%f)\n", cam_speed);
|
||||||
|
//m_boost_amount = core::clamp(MOTION_BLUR_FACTOR * (cam_speed - MOTION_BLUR_OFFSET), 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Implement IShaderConstantsSetCallback. Shader constants setter for post-processing */
|
/** Implement IShaderConstantsSetCallback. Shader constants setter for post-processing */
|
||||||
|
@ -48,14 +48,16 @@ public:
|
|||||||
void beginCapture();
|
void beginCapture();
|
||||||
void endCapture();
|
void endCapture();
|
||||||
|
|
||||||
|
void update(float dt);
|
||||||
|
|
||||||
/** Render the post-processed scene */
|
/** Render the post-processed scene */
|
||||||
void render();
|
void render();
|
||||||
|
|
||||||
/** Is the hardware able to use post-processing? */
|
/** Is the hardware able to use post-processing? */
|
||||||
inline bool isSupported() const {return m_supported;}
|
inline bool isSupported() const {return m_supported;}
|
||||||
|
|
||||||
/** Set the boost amount according to the speed of the camera */
|
/** Use motion blur for a short time */
|
||||||
void setCameraSpeed(float cam_speed);
|
void giveBoost();
|
||||||
|
|
||||||
/** Implement IShaderConstantsSetCallback. Shader constants setter for post-processing */
|
/** Implement IShaderConstantsSetCallback. Shader constants setter for post-processing */
|
||||||
virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 user_data);
|
virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 user_data);
|
||||||
|
@ -387,6 +387,10 @@ void PlayerController::handleZipper(bool play_sound)
|
|||||||
{
|
{
|
||||||
m_wee_sound->play();
|
m_wee_sound->play();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Apply the motion blur according to the speed of the kart
|
||||||
|
irr_driver->getPostProcessing()->giveBoost();
|
||||||
|
|
||||||
} // handleZipper
|
} // handleZipper
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user