2012-07-14 56 views
2

什么是用于实现以下效果glBlendfunc()参数:共混3层在OpenGL与背景

0)背景,不透明的。

1)first_layer,只有一种颜色。

2)半透明球体,与first_layer融合,但不与背景...

编辑

下面是我希望的效果图显示什么,我想要的目的。

This is the original - sphere over background

This is the desired effect - green color between sphere and background and sphere is blended with color but not background

+2

”半透明球体,与first_layer混合但不与背景...“这是什么意思?你能展示一个样机图像吗? – Tim 2012-07-14 04:13:44

+0

是的,我会在几个小时内制作并发布它。谢谢! – Stpn 2012-07-14 15:51:56

+0

添加了效果图到问题 – Stpn 2012-07-14 17:26:32

回答

0

基于该简要描述,这听起来像您可以混合层2(球)到层1(first_layer),然后该的blit顶上层0(背景)。所述第一共混物应该使用通常的α混合参数是可能的:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

然而,glBlendFunc是较为陈旧。现在,桌面和移动设备上的OpenGL支持着色器,这可以更容易地实现你想要的。 “

+3

BlendFunc不过时,它仍然是一个重要的部分的管道。着色器在撰写本文时还没有能力对目标帧缓冲区进行采样。 – Tim 2012-07-14 06:01:16

+0

@Tim的确,事实上 - 我正在考虑API的被取代部分的其他内容。 – gavinb 2012-07-14 11:19:54