Brian Paul | 4978953 | 2008-05-20 11:01:17 -0600 | [diff] [blame] | 1 | // Multi-texture fragment shader |
| 2 | // Brian Paul |
| 3 | |
| 4 | // Composite second texture over first. |
| 5 | // We're assuming the 2nd texture has a meaningful alpha channel. |
| 6 | |
| 7 | uniform sampler2D tex1; |
| 8 | uniform sampler2D tex2; |
| 9 | |
Brian Paul | aab429c | 2008-11-04 16:56:59 -0700 | [diff] [blame^] | 10 | vec4 sample(sampler2D t, vec2 coord) |
| 11 | { |
| 12 | return texture2D(t, coord); |
| 13 | } |
| 14 | |
| 15 | void main0() |
Brian Paul | 4978953 | 2008-05-20 11:01:17 -0600 | [diff] [blame] | 16 | { |
Brian Paul | 37f4520 | 2008-08-15 11:49:05 -0600 | [diff] [blame] | 17 | vec4 t1 = texture2D(tex1, gl_TexCoord[0].xy); |
Brian Paul | aab429c | 2008-11-04 16:56:59 -0700 | [diff] [blame^] | 18 | //vec4 t1 = sample(tex1, gl_TexCoord[0].xy); |
| 19 | //vec4 t2 = texture2D(tex2, gl_TexCoord[1].xy); |
| 20 | vec4 t2 = sample(tex2, gl_TexCoord[0].xy); |
Brian Paul | 4978953 | 2008-05-20 11:01:17 -0600 | [diff] [blame] | 21 | gl_FragColor = mix(t1, t2, t2.w); |
| 22 | } |
Brian Paul | aab429c | 2008-11-04 16:56:59 -0700 | [diff] [blame^] | 23 | |
| 24 | void main() |
| 25 | { |
| 26 | vec4 t1 = sample(tex1, gl_TexCoord[0].xy); |
| 27 | vec4 t2 = sample(tex2, gl_TexCoord[0].xy); |
| 28 | gl_FragColor = t1 + t2; |
| 29 | } |
| 30 | /* |
| 31 | 0: MOV SAMPLER[0].x, SAMPLER[0]; |
| 32 | 1: MOV TEMP[1], INPUT[4]; |
| 33 | 2: TEX OUTPUT[0], TEMP[1], texture[0], 2D; |
| 34 | 3: END |
| 35 | */ |