root/OpenSceneGraph-Data/trunk/shaders/line_rain.vert

Revision 6871 (checked in by robert, 2 years ago)

Checked in first cut of new SVN for OpenSceneGraph-Data

Line 
1 uniform float inversePeriod;
2 uniform vec4 particleColour;
3 uniform float particleSize;
4
5 uniform float osg_SimulationTime;
6 uniform float osg_DeltaSimulationTime;
7
8 varying vec4 colour;
9 varying vec2 texCoord;
10
11 void main(void)
12 {
13     float offset = gl_Vertex.z;
14     float startTime = gl_MultiTexCoord1.x;
15     texCoord = gl_MultiTexCoord0.xy;
16
17     vec4 v_previous = gl_Vertex;
18     v_previous.z = fract( (osg_SimulationTime - startTime)*inversePeriod - offset);
19    
20     vec4 v_current =  v_previous;
21     v_current.z += (osg_DeltaSimulationTime*inversePeriod);
22    
23
24     colour = particleColour;
25    
26     vec4 v1 = gl_ModelViewMatrix * v_current;
27     vec4 v2 = gl_TextureMatrix[0] * v_previous;
28    
29     vec3 dv = v2.xyz - v1.xyz;
30    
31     vec2 dv_normalized = normalize(dv.xy);
32     dv.xy += dv_normalized * particleSize;
33    
34     float area = length(dv.xy);
35     colour.a = (particleSize)/area;
36    
37     v1.xyz += dv*texCoord.y;
38    
39     gl_Position = gl_ProjectionMatrix * v1;
40 }
Note: See TracBrowser for help on using the browser.