OpenGL的自定义混合方程式(着色器)

问题描述 投票:2回答:3

我正在尝试使用OpenGL对透明对象使用不同的alpha混合方程式进行实验,但看起来片段着色器对单个对象上的片段颜色起作用,并且无法考虑对象背后的场景。

另一方面,似乎没有一种方法可以用任意GLSL代码截取blending stage,例如,我无法想到一种使用当前OpenGL原语重现soft light blend mode的方法。

有没有办法调和这些?

opengl glsl alphablending
3个回答
1
投票

混合仍然是片段流水线的少数部分之一,这是GPU上的硬连线电路。因此,它不是可编程的。最好的选择是渲染到纹理并进行混合后处理。


1
投票

有几个相对较好的扩展名:


0
投票

复制渲染目标,并用它作为纹理绘制对象。

如果有很多小对象,则只能复制渲染目标的一部分。

第一遍:将具有渲染目标的对象作为纹理绘制到texture_2;

第二遍:绘制对象以使用Texture_2渲染目标;

© www.soinside.com 2019 - 2024. All rights reserved.