OpenGL - 在添加层下渲染透明度

时间:2014-07-02 17:46:43

标签: c++ opengl

是否存在可以使用OpenGL glBlendFunc制作的混合方程式,该方程式允许在添加的叠加层后面呈现透明色(RGBA)。

渲染Ontop:

Transparent square overlay on additive layer.

使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

可以实现此效果

在下面渲染:

Transparent square underneath additive layer.

是否有这种混合效应的等式?

1 个答案:

答案 0 :(得分:0)

没有用于直接绘制叠加层的glBlendFunc选项。信息可以在这里找到:

http://benmcdowell.com/implementing-photoshop-blend-modes-in-opengl/

但是,您的效果似乎不是叠加,似乎是屏幕

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);

或添加剂

glBlendFunc(GL_SRC_ALPHA, GL_ONE);

我建议您尝试所有组合,但并非如此。但是,如果您需要更疯狂的效果,则需要对着色器进行编码。

P.S。我撒了谎。您不必对着色器进行编码以执行叠加等疯狂效果,但您必须绘制这么多次才能实时无法使用。我应该说使用着色器会更好。