我首先在屏幕上绘制一个图像,然后为这样的图片绘制一个蒙版: 它是一个中间是白色的圆圈,左边都是黑色的。我使用glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); 使其仅显示背面图像上的白色圆圈。 然后我需要在面具的相同位置绘制另一个图像。我的目的是使这个图像只绘制在与白色圆圈对应的部分。事实上我想画的是月亮。我必须使它变得不透明。我该怎么办?
我希望得到你的帮助。您可以发送电子邮件至500yearslater@gmail.com
非常感谢!
答案 0 :(得分:1)
只需将黑/白放在月球图像的alpha通道中?这可能是你能做的最明智的事情,它遵循惯例。
或者,如果你致力于你的方法。将你的黑/白渲染到帧缓冲区的alpha部分(如果你按照你的意思做的话,可能已经存在),然后使用DST_ALPHA而不是SRC_ALPHA进行下一次传递。但是,这并不是人们通常在OpenGL中如何做到的。
答案 1 :(得分:0)
我不知道我是否只是没有正确理解这个问题,但是你不能只用一张图片,圈子和最后一张图片在里面吗?
如果不合适,可以使用模板缓冲区:在绘制第二个图像时将其设置为一个值,并仅在第三个图像中该值的那些像素上进行渲染。