第一种方法是,如果我使用Canvas 2D上下文,也就是
context = canvas.getContext('2d')
,那么我可以使用context.drawimage()
方法将每个图像放置在画布的正确位置。另一种方法是使用WebGL将这些图像绘制到画布上。对于每个小图像,我需要绘制一个矩形。矩形的大小与这个小图像相同,并且位于画布的正确位置。然后我使用图像作为纹理来填充它。
然后我比较了这两种方法的性能。它们的fps都达到了60,动画看起来非常流畅。所以我比较了它们的CPU使用率。我希望当我使用WebGL时,CPU的使用会更少,因为GPU会承担许多绘图工作。但结果是,CPU使用率看起来几乎相同。我试图优化我的WebGL代码,我认为它已经足够好了。通过谷歌,我发现Chrome、Firefox等浏览器默认启用硬件加速。所以我试着关闭硬件加速。然后第一种方法的CPU使用率变得更高了。所以,我的问题是,既然Canvas 2D使用GPU加速,是否有必要仅为2D渲染使用WebGL?Canvas 2D GPU加速和WebGL之间有什么区别?也许还有其他降低第二种方法CPU使用率的方法吗?感谢您的回答!
alpha
选项。 - Kaiido