openGL混合领域的一个问题

时间:2009-06-07 07:57:34

标签: opengl

我首先在屏幕上绘制一个图像,然后为这样的图片绘制一个蒙版: 它是一个中间是白色的圆圈,左边都是黑色的。我使用glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); 使其仅显示背面图像上的白色圆圈。 然后我需要在面具的相同位置绘制另一个图像。我的目的是使这个图像只绘制在与白色圆圈对应的部分。事实上我想画的是月亮。我必须使它变得不透明。我该怎么办?

我希望得到你的帮助。您可以发送电子邮件至500yearslater@gmail.com

非常感谢!

2 个答案:

答案 0 :(得分:1)

只需将黑/白放在月球图像的alpha通道中?这可能是你能做的最明智的事情,它遵循惯例。

或者,如果你致力于你的方法。将你的黑/白渲染到帧缓冲区的alpha部分(如果你按照你的意思做的话,可能已经存在),然后使用DST_ALPHA而不是SRC_ALPHA进行下一次传递。但是,这并不是人们通常在OpenGL中如何做到的。

答案 1 :(得分:0)

我不知道我是否只是没有正确理解这个问题,但是你不能只用一张图片,圈子和最后一张图片在里面吗?

如果不合适,可以使用模板缓冲区:在绘制第二个图像时将其设置为一个值,并仅在第三个图像中该值的那些像素上进行渲染。