Sign in to follow this  

Chapter 27. Motion Blur as a Post-Processing Effect bugs

Recommended Posts



my blur effect shivers when i move mouse.... this does occur when i have various fps... 


if i move camera by keyboard it is ok

if i connect mouse to fps - it is ok too - but it is not correct from logical point


here i just did: mouseX +=1


and it shivers.. can not understand WHY


i guess that have to be GENTLY with different fps...


here is movie - cuzz images does not give info




vs gbuffer
// moblur


gl_TexCoord[5] = gl_Position;
gl_TexCoord[6] = prevMVP * gl_Vertex;


ps gbuffer

// out velocity for motion blur
vec2 a = gl_TexCoord[5].xy / gl_TexCoord[5].w;
vec2 b = gl_TexCoord[6].xy / gl_TexCoord[6].w;

gl_FragData[2].xy = (a - b) * 0.5 + 0.5;
gl_FragData[2].xy = pow(gl_FragData[2].xy, 3.0);


ps blur


#extension GL_ARB_texture_rectangle: enable

uniform sampler2DRect sceneSampler;
uniform sampler2DRect depthTexture; <------------ here is veltex actually

uniform int g_numSamples;
uniform float velocityScale;

void main()
vec2 scale = vec2(1024.0,768.0);

vec2 velocity = texture2DRect(depthTexture, gl_FragCoord.xy ).rg;

velocity = pow(velocity, 1.0 / 3.0);
velocity = velocity * 2.0 - 1.0;

// float speed = length(velocity*scale);
int nSamples = g_numSamples;//(int)clamp(speed, 1.0, (float)g_numSamples);

vec4 oResult = texture2DRect(sceneSampler, gl_FragCoord.xy);

for (int i = 1; i < nSamples; ++i)
vec2 offset = velocity * (float(i) / float(nSamples - 1) - 0.5);
oResult += texture2DRect(sceneSampler,gl_FragCoord.xy + offset*scale);

gl_FragColor = oResult / float(nSamples);



velocity tex is GL_RG32F



float currentFps = 1.0/timer->frametime;
float targetFps = 30;
float velocityScale = currentFps / targetFps;

maxSamples = 16;



float oldMVP3D[16];
glUniformMatrix4fvARB(constructGBufferShader.m_paramsHash["prevMVP"], 1, GL_FALSE, oldMVP3D);



void camera_s::BuildModelview()


Mat4x4 result;

// in q3 +z is up, -z is down


Edited by evillgames

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this