root/OpenSceneGraph-Data/trunk/shaders/overlay_perspective_main.frag

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

Updated shaders

Line 
1 uniform sampler2D texture_0;
2 uniform sampler2D texture_1;
3
4 uniform float y0;
5
6 vec2 warp(in vec2 source)
7 {
8     float inv_divisor = 1.0 / (source.y + y0);
9     return vec2(source.x * (1.0 + y0 ) * inv_divisor , (source.y * y0 + 1.0 ) * inv_divisor);
10 }
11
12 void main()
13 {
14     vec2 coord = gl_TexCoord[1].xy;
15     coord.x = coord.x*2.0 - 1.0;
16     coord.y = coord.y*2.0 - 1.0;
17    
18     vec2 warped = warp(coord);
19     warped.x = (warped.x + 1.0)*0.5;
20     warped.y = (warped.y + 1.0)*0.5;
21    
22     vec4 base_color = texture2D(texture_0, gl_TexCoord[0].xy);
23     vec4 overlay_color = texture2D(texture_1, warped );
24     vec3 mixed_color = mix(base_color.rgb, overlay_color.rgb, overlay_color.a);
25     gl_FragColor = vec4(mixed_color, base_color.a);
26 }
Note: See TracBrowser for help on using the browser.