我想使用满足以下要求的OpenGL ES 3.1来实现片段/混合操作:
这可以通过常规的混合功能,alpha技巧等来完成吗?
答案 0 :(得分:2)
如果您在顶点着色时知道这一点,我认为整个三角形是一个混合或另一个。如果没有太多的几何图形,这对于模板测试是理想的选择。
此成本多少取决于您的几何图形,因为您需要将其传递多次进行渲染,但是其中的模板测试部分通常接近“免费”。
答案 1 :(得分:2)
我认为您可以使用标准的预乘alpha混合:
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
如果要替换,则从片段着色器输出一个alpha值1。如果要进行加法运算,则从片段着色器输出一个alpha值0。
假定您只对帧缓冲区中的RGB值真正感兴趣。