问题描述
我可以使用以下代码合并两个图像。但是,有什么方法可以将第二张图片放置在第一张图片的左下方吗?
vec4 colorFirstImg = texture2D (sTexture_1,vec2(vTexCoord.x,vTexCoord.y));
vec4 colorSecondImg= texture2D (sTexture_2,vTexCoord.y));
vec4 result = mix(colorFirstImg,colorSecondImg,colorSecondImg.a);
gl_FragColor =result;
解决方法
是的,当然,您只需要缩放纹理坐标即可。如果纹理坐标的任何分量大于1.0,请通过向mix
的第三个参数传递0.0来跳过第二个图像:
vec4 colorFirstImg = texture2D(sTexture_1,vTexCoord.xy);
vec2 uv2 = vTexCoord.xy * 2.0;
vec4 colorSecondImg = texture2D(sTexture_2,uv2);
float a = (uv2.x <= 1.0 && uv2.y <= 1.0) ? colorSecondImg.a : 0.0;
vec4 result = mix(colorFirstImg,colorSecondImg,a);
gl_FragColor = result;