openGL:订单独立的最大混合

时间:2012-08-14 15:28:02

标签: opengl

我正在努力实现某种混合效果,但未能使其恰到好处:

enter image description here

在此图像上,您可以在黑色背景上看到3条“发光的线条”。

glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA)用于混合。

然而,这有一个我想要摆脱的神器,顺序很明显并且有效。

如果你仔细观察,你可以看到垂直线首先渲染,因为它被其他人遮挡,然后渲染红色。最后你有相当覆盖的最后一行,特别是它的相当不透明的中心会覆盖所有内容。

目标是有效地获得光度之和,最亮部分优先,无论渲染顺序如何。有没有办法实现这个目标?

此外,这是创建一个然后呈现为整体的对象的一部分,因此可以将所有线渲染到FBO,执行魔术(着色器?)然后将FBO渲染到场景中。

编辑: 用于个人测试; python + pyglet的源代码和辉光线纹理:

https://dl.dropbox.com/u/44766482/blendtest.zip

A / D键循环显示目标模式和W / S键用于源模式。 第一行您可以更改图像路径,在纹理中更改透明度和黑色之间 - 但生成的图像需要实际透明度而不是黑色。

0 个答案:

没有答案