Webgl全屏混合减速

时间:2017-11-15 21:01:38

标签: webgl gpu

我试图制作一个"叠加"在3d场景中的效果。在将内容绘制到缓冲区后,我尝试绘制全屏四边形,启用混合并禁用深度测试。在一些Android设备上,这似乎导致了减速。

我发现了link

  

特别慢的点是像素的绘制需要检查它背后的颜色是什么。

因此,不是绘制单个全屏四边形,而是将其划分为平铺,并使用多个绘制调用进行渲染,这似乎已经带来了一些好处。

这里可能会发生什么以及如何通过webgl进行分析,即如何从上面的引文中得出结论?

1 个答案:

答案 0 :(得分:0)

我想要对它进行分析,你只需要测试几个混合功能,启用或不启用混合等等......

混合不是一个简单的操作,实际上我们可以假设需要读取缓冲区像素的混合函数会导致性能损失,就像OpenGL中的所有“读取”操作一样,因为这会阻塞管道。我猜大多数现代桌面GPU都有一些特定的设计来优化这一点,但在手机上,这可能更成问题。

无论如何,如果您要绘制全屏四边形,为什么不直接使用两个源纹理渲染四边形,使用自定义方程直接在片段着色器中混合?这样,您不需要使用混合,并且可以避免任何后台缓冲区读取问题。