我有一个2D对象需要使用OpenGL ES 2.0呈现为半透明的屏幕。但是,对象由几个重叠的多边形组成。当我使用混合功能
时 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
结果是多边形重叠的对象部分明显不太透明(这是有道理的)例如,如果我渲染一个由两个略微重叠的圆圈组成的对象,其中alpha = .5,那么圆形重叠的对象仅为25%透明,而非重叠区域为50%透明。但是,我的目标是渲染具有均匀颜色和透明度的对象。
我知道我可以将对象渲染为不透明的中间纹理,然后使用正确的透明度渲染纹理到屏幕。但是,这种特殊的绘制调用经常发生在不同的对象上(所以我不能缓存结果),中间步骤将是一个重要的性能损失。这可以在没有使用OpenGL ES 2.0的中间步骤的情况下完成吗?