WebGL、ThreeJS、BabylonJS和SceneJS等框架对比和简介

一、OpenGL,WebGL

OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库。

WebGL是基于OpenGL设计的面向web的图形标准,提供了一系列JavaScript API,通过这些API进行图形渲染将得以利用图形硬件从而获得较高性能。

而Three.js是通过对WebGL接口的封装与简化而形成的一个易用的图形库。

简单点的说法:WebGL可以看成是浏览器给我们提供的接口,在javascript中可以直接用这些API进行3D图形的绘制;而Three.js就是在这些接口上又帮我们封装得更好用一些。

logo-compassion.jpg

WebGL与Three.js对比

既然有了WebGL,我们为什么还需要Three.js?

这是因为WebGL门槛相对较高,需要相对较多的数学知识。虽然WebGL提供的是面向前端的API,但本质上WebGL跟前端开发完全是两个不同的方向,知识的重叠很少。相关性只是他们都在web平台上,都是用javascript而已。一个前端程序员或许还熟悉解析几何,但是还熟悉线性代数的应该寥寥无几了(比如求个逆转置矩阵试试?),更何况使用中强调矩阵运算中的物理意义,这在教学中也是比较缺失的。

因此,前端工程师想要短时间上手WebGL还是挺有难度的。

于是,Three.js对WebGL提供的接口进行了非常好的封装,简化了很多细节,大大降低了学习成本。并且,几乎没有损失WebGL的灵活性。 因此,从Three.js入手是值得推荐的,这可以让你在较短的学习后就能面对大部分需求场景。以下是 Three.js 制作 3D 的五要素:

1. 渲染器(render)
我们可以把渲染器想想成为一个画布,我们需要在这个画布上去画出我们需要展示的东西。

2. 场景(scene)
相当于一个空间,我们需要将展示的东西放在这个空间里,然后再在画布上绘制出来。

3. 照相机(camera)
相当于眼睛,我们想要看到物体,就需要眼睛去看。

4. 光源(light)
物体需要光照才能看见,不然就是漆黑一片(但是在某些情况下展示物体不需要光源)。

5. 物体(object)
我们想要表现的内容,会有形状和材质属性。

二、babylon.js

babylon.js是由微软员工出品的WebGL框架,能够通过HTML5 canvas在网页构建一个3D的场景。使用的是左手坐标系,文档中还有部分使用TypeScript来编写当然他们都有对应的JS版本。相对于ThreeJs更适合用来做游戏,因为它的碰撞检测十分易用

3droom.jpg

三、SceneJS

SceneJS一个开源的 JavaScript 3D WebGL引擎,特别适合需要高精度细节的模型需求,比如工程学和医学上常用的高精度模型。

以下是几种封装引擎简单的对比:

1. Babylon.js:一个强大的 3D 游戏引擎,由 Microsoft 的员工 David Cathue 主导开发。和 Three.js 相比,three.js 更倾向于动画,而 Babylon.js 则更适合游戏开发。

2. PhiloGL:增加了额外的功能帮助你可以使用本地的 WebGL ,这个 WebGL 的接口不是百分之百的被封装好了的,这使得 PhiloGL 上手难度较高。

3. SceneJS:一个开源的 JavaScript 3D 引擎,特别适合需要高精度细节的模型需求,比如工程学和医学上常用的高精度模型。

4. CopperLicht:一个“商业级别的 WebGL 3D 引擎和编辑器”,你可以免费使用,但是要想获得未压缩的完整版带支持文档的源码和其他服务,则需要购买授权。

Three.js and Babylon.js 等这些框架引擎都提供了易于使用的接口来处理错综复杂的WebGL动画。不需要安装插件、在移动端支持好。

除此之外还有 PlayCanvas等引擎。

推荐本站另一篇来自网络的网友整理的文章《WebGL图形库调研整理》。

WebGL、ThreeJS、BabylonJS和SceneJS等框架对比和简介
WEBGL学习网(WebGLStudy.COM)专注提供WebGL 、ThreeJS、BabylonJS等WEB3D开发案例源码下载。
声明信息:
1. 本站部分资源来源于用户上传和网络,如有侵权请邮件联系站长:1218436398@qq.com!我们将尽快处理。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源打赏售价用于赞助本站提供的服务支出(包括不限服务器、网络带宽等费用支出)!
7.欢迎加QQ群学习交流:549297468 ,或者搜索微信公众号:WebGL学习网
WEBGL学习网 » WebGL、ThreeJS、BabylonJS和SceneJS等框架对比和简介

发表评论

提供优质的WebGL、ThreeJS源码

立即查看 了解详情