所有 我通过 Websocket 通过 ArrayBuffer 接收图像并将其发布在画布上。 每秒大约 10 张图像(例如 500x500 PNG(
实际上发布到 WEBGL 会更快吗?同样,我不打算进行任何旋转/转换。
只是简单地一个接一个地显示大量图像。
因为它使用 GPU/着色器,所以 WebGl 会是一种更快的方法吗?
大多数 canvas2d 实现已经使用了硬件加速,所以当你只想将简单的图像放在画布上时,WebGL 只会引入更多的技术复杂性,而不会给你带来任何东西。
当您想要执行一些复杂的图像过滤操作时,将 WebGL 用于 2D 图形是有意义的,因为着色器可以在 GPU 上执行它们,而使用 canvas2d 执行像素级操作的唯一方法是使用 getImageData 将图形加载到 RAM,在 CPU 上执行操作,然后使用 setImageData 将其加载回 GPU。
当您遇到性能问题时,我认为您的瓶颈可能在这里:">通过 Websocket 每秒大约 10 张图像(例如 500x500 PNG("。500x500 PNG 至少为 200kb,但可能会大得多,具体取决于内容和压缩算法的选择程度。每秒 10 张图像每秒至少需要 2MB,至少是 16 MBit/s 的带宽。你有那么多带宽吗?