使用OpenGL ES 2.0合成透明多边形

时间:2014-11-06 15:37:23

标签: opengl-es opengl-es-2.0 alphablending compositing

我有一个2D对象需要使用OpenGL ES 2.0呈现为半透明的屏幕。但是,对象由几个重叠的多边形组成。当我使用混合功能

 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

结果是多边形重叠的对象部分明显不太透明(这是有道理的)例如,如果我渲染一个由两个略微重叠的圆圈组成的对象,其中alpha = .5,那么圆形重叠的对象仅为25%透明,而非重叠区域为50%透明。但是,我的目标是渲染具有均匀颜色和透明度的对象。

我知道我可以将对象渲染为不透明的中间纹理,然后使用正确的透明度渲染纹理到屏幕。但是,这种特殊的绘制调用经常发生在不同的对象上(所以我不能缓存结果),中间步骤将是一个重要的性能损失。这可以在没有使用OpenGL ES 2.0的中间步骤的情况下完成吗?

0 个答案:

没有答案