WebGL和Three.js可以优雅地处理什么图形限制?

时间:2014-06-08 07:03:32

标签: javascript canvas webgl

我一直对此感到好奇,并没有看到太多推动界限的例子。

在图形方面,画布可以走多远?是否有一个很好的衡量它开始行动shakey之前它可以处理多少多边形?也许是一款可以与之比较的游戏?

1 个答案:

答案 0 :(得分:4)

Canvas与WebGL

首先,术语"画布"不是" WebGL"。

的同义词

以下初始值设定项返回CanvasRenderingContext2D

canvas.getContext("2d");

此初始值设定项返回WebGLRenderingContext

canvas.getContext("webgl");

HTML5 <canvas>元素用作容器,WebGL是该容器中的一种可能的渲染上下文。

More information about WebGL initialization

WebGL限制

至于限制,理论上WebGL使用的是运行在您计算机上的任何桌面OpenGL应用程序所使用的相同视频驱动程序。话虽如此,重要的是要注意WebGL本质上是OpenGL ES 2.0,与标准OpenGL相比,它有一些限制。

有关OpenGL ES的更多信息,请参阅Wikipedia

另一个限制是您能够覆盖广泛的受众群体。 IE11仅在IE 11中得到部分支持,并且在11之前完全不受支持。默认情况下,它在当前版本的Opera和旧版本的Safari(8.0之前版本)中也被禁用。来源:WebGL Support

此外,WebGL应用程序正在运行JavaScript引擎,而不是本机编译的桌面应用程序。虽然Chrome的V8引擎在提高JavaScript性能方面取得了令人难以置信的进步,但它仍然会比原生应用程序慢。

有关这些挑战及其他挑战的更深入分析,请参阅:WebGL Challenges

摘要

WebGL基于OpenGL ES 2.0,这是一个略微降低功能的OpenGL版本。它还运行在JavaScript引擎之上,该引擎比本机代码慢。 WebGL在不同的Web浏览器之间不受同等支持或标准化。

除了上述限制外,WebGL几乎可以呈现GPU在桌面应用程序中渲染的任何内容,并可能降低性能。

除了限制之外,几个月前Epic Games宣布与Mozilla合作开展涉及porting Unreal Engine 4 to WebGL的项目,所以我们当然不应该对WebGL的真正功能匆匆做出任何结论。 / p>