为什么WebGL比Canvas慢
Why WebGL slower than Canvas?
我刚刚开始使用canvas和webgl,阅读一些文章等,据我所知,WebGL应该比canvas快得多,但是在下面的测试中,它的速度要慢得多:
- http://jsperf.com/canvas-drawimage-vs-webgl-drawarrays
- http://jsperf.com/three-js-canvas-vs-webgl/2
我在Chrome和Firefox中运行它们,在两个浏览器中,差异约为80%。
为什么画布渲染速度更快?jsperf 不准确吗?画布在浏览器中是否变得更加优化?
(PS:我不是测试的作者,我只是找到了它们。
简短的回答是webgl/opengl不是一次绘制一个四边形的。GPU 被设计为大规模并行,因此为了充分利用 webgl,您必须批量绘制。
您应该比较使用适当的 webgl 实现在画布中绘制 10k 图像和在 webgl 中绘制 10k 图像。但是,您找到的大多数 webgl 库都是为了方便客户端而编写的,但不一定是为了获得最佳性能。
我的 2d webgl 渲染器的实现比画布快得多(100 倍+),特别是如果您需要旋转/缩放图像。当然,如果您需要自己的混合操作,那么webgl是唯一的方法。
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 如何检测用于WebGL的专用或集成显卡
- IE9的HTML5 Canvas getImageData()函数存在问题
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- 加速我的复杂函数绘图仪(canvas+javascript)
- 在WebGL中绘制多个二维图像
- Canvas赢得't更新
- WebGL绘制图像
- 在keydown(JS,Jquery)上更改HTML5 Canvas元素
- HTML5 Canvas访问控制允许原始错误
- WebGL VS Canvas 2D 硬件加速
- 通过Websocket将图像传输到WebGL Vs Canvas,也许还可以与worker一起传输
- WebGL Multiple Canvas three.js example
- Three.js/WebGL和2D Canvas——将getImageData()数组传递给Three.DataText
- 将HTML5 Canvas WebGL游戏移植到Flash ActionScript 3.0
- canvas to WebGL
- 为什么WebGL比Canvas慢
- 基于Canvas /webgl的3d社区平台(开源)
- Base64 canvas webgl对象为空白