As soon as possible
It's not hard as it looks like. You only have to write shader which will splat your textures.
uniform sampler2D texMap;
uniform sampler2D terrainTex1;
uniform sampler2D terrainTex2;
uniform sampler2D terrainTex3;
uniform sampler2D terrainTex4;
uniform float overlap;
void main()
{
vec4 map = texture2D(texMap, vec2(gl_TexCoord[0].x,gl_TexCoord[0].y));
vec4 tRed = texture2D(terrainTex1, gl_TexCoord[0].xy*overlap);
vec4 tGreen = texture2D(terrainTex2, gl_TexCoord[0].xy*overlap);
vec4 tBlue = texture2D(terrainTex3, gl_TexCoord[0].xy*overlap);
vec4 tAlpha = texture2D(terrainTex4, gl_TexCoord[0].xy*overlap);
vec4 t;
t.rgb = (tRed.rgb * map.r) + (tGreen.rgb * map.g) + (tBlue.rgb * map.b));
t.a = 1.0;
gl_FragColor = t;
}
As you can see I don't use alpha channel. I made global terrainTex[3] nad add it at begine to shader. Each terrain sector have one texMap and when I draw terrains in editor I set texMap for actual terrain's texMap and draw it with shader. This is how it goes
shader.setParameter("texMap", finalTexture.getTexture());
target->draw(finalSpr,&shader);
I think I made it clear for you