2

实现以下效果的 glBlendfunc() 参数是什么:

0) 背景,不透明。

1)first_layer,只有一种颜色。

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

编辑

以下是我希望展示我想要实现的效果的效果图。

这是原始的 - 背景上的球体

这是所需的效果 - 球体和背景之间的绿色,球体与颜色混合但不与背景混合

4

1 回答 1

0

根据简要描述,听起来您可以将第 2 层(球体)混合到第 1 层(first_layer)上,然后在第 0 层(背景)上进行 blit。应该可以使用通常的 alpha 混合参数进行第一次混合:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

但是,glBlendFunc已经相当过时了。如今,桌面和移动设备上的 OpenGL 都支持着色器,这可以更轻松地实现您想要的。

于 2012-07-14T04:57:26.320 回答