我正在做一个实验,并试图在 HTML5 Canvas 的帧速率开始下降之前提高最大粒子数。
我正在使用 requestAnimationFrame,我正在使用画布中的 drawImage,因为这似乎是渲染图像的最快方法(在 jsPerf 上测试过)。
这里有一个工作的jsFiddle:http: //fiddle.jshell.net/bewYC/5/
您可能需要刷新或重新运行几次才能使其正常工作(不知道为什么,但它只是不想在第一页加载时运行。)
照原样,我运行 Chrome 22 的计算机可以在大约 5,000 个粒子的情况下保持 60FPS。随着每一步,FPS开始下降。如果我删除 drawImage() 并只计算粒子的位置,我的处理器直到超过 10 倍的粒子才会达到最大值。
我想知道的是:有没有比使用带有drawImage的循环更快的方法来渲染大量粒子(例如40,000个)?我特别想了解有关 JavaScript/Canvas 的知识,但如果您只了解另一种语言,例如 Java 或 C#,那么无论如何请分享。