|
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 |
} |
|---|