Jump to content

  • Log In with Google      Sign In   
  • Create Account

Light trail using GLSL


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 svnstrk   Members   -  Reputation: 133

Like
0Likes
Like

Posted 21 January 2013 - 10:53 AM

Hi, 

 

Im currently trying to make a light trail effect using GLSL. But its more like a comet tail. I did it by mixing the current frame and the previous frame. Here are the steps I'm using: 

 

1. render the current frame normally to a texture

2. mix the texture from current frame and the previous frame (texture4) using the max value, this is the GLSL for this part:

uniform sampler2D tex1;
uniform sampler2D tex2;

uniform float deltaTime;

void main()
{
    
    vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
    
    color.r = texture2D(tex2, gl_TexCoord[0].st).r;
    color.g = texture2D(tex2, gl_TexCoord[0].st).g;
    color.b = texture2D(tex2, gl_TexCoord[0].st).b;
    
    color.r = color.r - deltaTime * 0.3;
    color.g = color.g - deltaTime * 0.3;
    color.b = color.b - deltaTime * 0.3;
    
    color.r = max( texture2D(tex1, gl_TexCoord[0].st).r, color.r );
    color.g = max( texture2D(tex1, gl_TexCoord[0].st).g, color.g );
    color.b = max( texture2D(tex1, gl_TexCoord[0].st).b, color.b );
    
    gl_FragColor = color;
}

 

since the light fades out by time, i reduce the rgb value by 0.3 per second (deltaTime is the difference between current frame and the previous, sent form c++ code. Draw the result on texture3

 

3. Redraw texture3 to texture4 since we are going to use this as texture4. No special code used in this one, just a normal texture rendering

 

texture3 would be the result to render a proper light trail effect and here is the result I have (link to youtube)

 

 

 

You might notice that when the object is moving, the trail looks normal. but when it stops, there's a weird fading behaviour on the tail side. Its hard to describe it, since I'm not a native, but you can easily notice it when the object stops moving. 

 

Any idea why it happens? Any info how to render a proper light trail/comet tail effect?

 

 

Thanks in advance. 



Sponsor:

#2 svnstrk   Members   -  Reputation: 133

Like
0Likes
Like

Posted 28 January 2013 - 09:55 AM

still no luck figuring this problem.

help anyone? :) 



#3 BLM768   Members   -  Reputation: 295

Like
0Likes
Like

Posted 03 February 2013 - 08:46 PM

I think that part of the problem may be that you're just using basic alpha blending, which can darken parts of the image (hence the dark crescent that appears as the trail fades), whereas a real-life light trail would always lighten the image (relative to a rendering with no trails). As far as fixing it goes, I'm not totally sure what would work best, but try using some additive blending (adding a certain fraction of the last frame to the current one) instead of averaging. You'll want to clamp the value, though; otherwise a stationary light would just keep getting brighter and brighter.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS