我才刚刚开始使用canvas和webgl,阅读了一些文章等。据我所知,WebGL应该比canvas快得多,但是在以下这些测试中,它的运行速度明显慢:
我在Chrome和Firefox中运行它们,两种浏览器之间的差异约为80%。
为什么 Canvas 渲染速度更快? jsperf不正确吗? Canvas 在浏览器中变得更加优化了吗?
(PS:我不是测试的作者,我只是找到了它们。)
最佳答案
简短的答案是,webgl / opengl并不意味着一次绘制单个四边形。 GPU被设计为大规模并行,因此可以从webgl中获得最大 yield ,而您必须批量绘制。
您应该使用适当的webgl实现来比较在canvas中绘制10k图像与在webgl中绘制10k图像。但是,您发现的大多数webgl库都是为了方便客户端而编写的,但不一定是为了获得最佳性能。
我的2d webgl渲染器实现比 Canvas 快得多(超过100倍),尤其是在您需要旋转/缩放图像时。当然,如果您需要自己的混合操作,那么webgl是唯一的方法。