在另一个图像上添加图像-OpenTK

问题描述

我可以使用以下代码合并两个图像。但是,有什么方法可以将第二张图片放置在第一张图片的左下方吗?

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;