在Opengl签署添加剂混合

时间:2016-11-08 23:25:40

标签: opengl signed blending

我尝试将一些代码从DX9移植到Opengl,并使用带符号的添加剂混合操作

pd3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADDSIGNED);

有没有办法用opengl glBlendFunc做到这一点?

通过将纹理分割为加法和减法纹理,并将它们绘制成2遍(加法,然后减去),我有一些可行的方法。幸运的是,我可以批量添加和减去没有太多的范围裁剪(添加命中1.0或减去0.0),所以如果我找不到一个可以签名的简单混合函数,它是一个可行的解决方案......

1 个答案:

答案 0 :(得分:1)

OpenGL GL_FUNC_ADD已经可以减去,它只是着色器输出的问题。如果要在同一个8位纹理中存储负值和正值,可能需要查看GL_RGBA8_SNORM