【问题标题】:Why WebGL slower than Canvas?为什么 WebGL 比 Canvas 慢?
【发布时间】:2015-06-17 02:54:30
【问题描述】:

我刚刚开始使用 canvas 和 webgl,阅读一些文章等。据我所知,WebGL 应该比 canvas 快得多,但在以下这些测试中它明显慢:

我在 Chrome 和 Firefox 中运行它们,在这两种浏览器中的差异约为 80%。

为什么画布渲染得更快? jsperf 不准确吗?画布在浏览器中是否变得更加优化?

(PS:我不是测试的作者,我只是找到它们。)

【问题讨论】:

  • 对我来说,第一次测试以 WebGL 在 Chrome 上的速度更快而告终。我认为这只是手头任务的问题,一个比另一个做得更好。
  • 嗯,很有趣,对我来说,画布的优势总是在 50-80% 之间。什么会导致如此大的差异?
  • 在我看来,不同的浏览器实现和 PC 显卡的容量在这里起着重要作用。
  • 我也在 Chrome 上运行它。我有一台高端笔记本电脑,但这并不重要,因为硬件只应该改变原始的抽奖数量,而不是它们之间的比率。

标签: javascript html canvas webgl


【解决方案1】:

简短的回答是 webgl/opengl 并不意味着一次绘制一个四边形。 GPU 被设计为大规模并行,因此您必须批量绘制才能充分利用 webgl。

您应该比较使用适当的 webgl 实现在画布中绘制 10k 图像与在 webgl 中绘制 10k 图像。但是,您发现的大多数 webgl 库都是为方便客户端而编写的,但不一定是为了获得最大性能。

我的 2d webgl 渲染器实现比画布快得多(100 倍以上),尤其是在您需要旋转/缩放图像时。当然,如果您需要自己的混合操作,那么 webgl 是唯一的选择。

【讨论】:

  • 你的实现是开源的吗?
  • 很遗憾没有,代码仍然主要供内部使用(一团糟)
猜你喜欢
  • 2015-05-06
  • 2014-07-16
  • 2011-03-23
  • 2011-09-28
  • 1970-01-01
  • 2019-12-18
  • 2015-10-04
  • 2012-09-16
  • 2016-10-06
相关资源
最近更新 更多