是否可以通过仅使用glBlendEquation和glBlendFunc来重新创建无混合模式?

时间:2016-05-30 15:49:52

标签: opengl

我想将启用alpha的图像从一个纹理转移到另一个纹理。如果我没有任何准备工作,图像会淡出,因为它将使用alpha进行两次混合。另一方面,如果我在传输图像数据之前调用glDisable(GL_BLEND),一切都很完美。

我们可以说,出于某些原因,我的渲染引擎不鼓励调用glEnable / glDisable对,但我仍然可以调用glBlendFuncglBlendEquation。话虽如此,我怎样才能实现相同的混合模式,其中目标texel只是从其源对应物中分配出来?

1 个答案:

答案 0 :(得分:2)

你可能会过度思考这一点。他的案例的混合功能很简单:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>
    Click Me !
</button>

这会将源与1相乘,目标与0相乘,这意味着您只使用源。

如果您更改了默认的混合方程式,则还必须将其重置为:

glBlendFunc(GL_ONE, GL_ZERO);