【发布时间】:2017-11-16 05:24:12
【问题描述】:
我尝试在 3D 场景中制作“叠加”效果。在将东西绘制到缓冲区后,我尝试绘制一个启用混合并禁用深度测试的全屏四边形。在某些 android 设备上,这似乎导致速度变慢。
我找到了这个link:
特别慢的点是像素的绘制需要检查它背后的颜色是什么。
因此,我没有绘制单个全屏四边形,而是将其划分为图块,并使用多个绘制调用进行渲染,这似乎带来了一些收益。
这里可能发生了什么以及如何使用 webgl 对其进行分析,即如何从上面的引用中得出结论?
【问题讨论】:
-
许多第一代和第二代安卓设备在减速之前不能绘制超过大约 1.5 个屏幕的像素。这对 WebGL 来说真的很糟糕,因为 WebGL 需要合成。因此,如果您在浏览器上有一个全屏 WebGL 页面,首先您将图像渲染到画布(即 1 个全屏绘图)。然后画布被渲染以将其与页面合成。那是另一个全屏绘图。添加您的后期处理通行证是另一个完整的绘图屏幕。甚至我的 2015 MBP 在达到 60fps 限制之前也只能绘制大约 10 个全屏像素。
-
即使这 10 个全屏像素只是一个恒定的颜色?
-
是的,颜色不变,但启用了混合。
-
我可以读什么类型的书来理解为什么?