我正在尝试使用OpenGL对图像进行遮罩,以使其部分区域变为透明。以下是我的代码,但它并没有起作用:
这是我的背景图像,我试图在其上绘制:
这是纹理和掩码,分别为(遮罩中的白色实际上是透明的,我只是将它压平以便您可以看到):
![texture](https://istack.dev59.com/DLrGW.webp)
这是我期望得到的结果:
而这是我实际得到的结果:
你有什么想法,可能出了什么问题吗?
draw_img(background);
...
glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glBlendFunc(GL_ONE, GL_ZERO);
draw_img(mask);
glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);
draw_img(foreground);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
这是我的背景图像,我试图在其上绘制:
![background image](https://istack.dev59.com/4AKYg.webp)
![texture](https://istack.dev59.com/DLrGW.webp)
![mask](https://istack.dev59.com/guTJb.webp)
![expected result](https://istack.dev59.com/SlHFd.webp)
![actual result](https://istack.dev59.com/LQZ6l.webp)