【发布时间】:2014-05-04 14:23:55
【问题描述】:
我正在渲染一条蓝线和一条红线(在立体图的上下文中)。当红线和蓝线重叠时,我想要呈现紫色而不是前面的线。
我正在使用 OpenGL。到目前为止我尝试过的一些代码是这样的:
glBlendFunc(GL_ONE, GL_DST_ALPHA);
这会导致重叠呈现白色,线条显示如下:
我认为在这种混合上使用 RGB 比例因子可能是正确的做法。
所以我尝试使用带有参数的glBlendFuncSeparate:
- 源因子 RGB
- 目标因子 RGB
- 源因子 Alpha
- 目标因子 Alpha
我找不到适合我的参数。
我还尝试将 glBlendEquation 与加法方程一起使用,但没有发现该方法有任何成功。
如何生成一个函数,成功地将两条线混合成紫色?
编辑:
我注意到glBlendFunc(GL_ONE, GL_DST_ALPHA) 确实执行了一些混合以产生中间颜色(实际的线条在这里只是无意义的,它只是为了显示一些混合)。
【问题讨论】:
-
为什么不能用shader做呢?
-
您似乎将红色与青色混合在一起。这通常不会变成紫色。
-
@JasonD 我明白,这就是我寻找比例因子混合方法的原因。我在和一个比我更有经验的人交谈,他说紫色混合物很适合欺骗眼睛。
-
@SAKrisT 也许我应该...我该怎么做?
-
这对我来说似乎很奇怪,因为在立体图像中,重叠区域往往是灰色的。我建议您发布一张您正在尝试实现的混合的图片。
标签: opengl