现代javascript非常强大。特别是在webgl库和svg/canvas元素的支持下。使用正确的工具,您可以为web构建几乎任何东西,包括基于浏览器的游戏和本机应用程序。许多最新的突破性功能都是在3d上运行的,在这篇文章中,我列出了目前可用于web开发人员的最佳3d js库。
three.js
毫无疑问,three.js应该位列榜首。从头开始学习可能有些复杂,但它也是更好的3d库之一。它由一个核心组管理,并在github上免费发布。threejs主要用于canvas元素,svg元素和用于渲染的webgl库。
学习绳索是一项挑战,至少需要中级javascript知识。但您可以在three.js文档中找到完整的设置。如果你真的想在网上做3d,那么这个库就适合你。这不是唯一的选择,但它可能是初学者开始快速构建东西的最受欢迎的选择。
babylon.js
我喜欢的另一个强大的库是babylon.js。这个再次依赖于webgl并且仅在javascript中运行。它比其他库更受欢迎,但与three.js的覆盖范围不同。
对于想要创建基于浏览器的网页游戏的网站开发者来说,它仍然被广泛认为是一个强大的选择。在主页上,您可以找到大量的演示预览和如何开始3d游戏设计的技巧。
还有许多重要的资源链接,如github repo和babylon js教程。所有这些教程都是由巴比伦团队设计的,所以他们是开始学习这个图书馆的好地方。
cannon.js
为了获得一些与众不同的东西,请访问cannon.js。这并不强加通常的3d概念,而是作为基于javascript的游戏的物理引擎。
cannon.js应该快速加载,以便您可以在页面上快速渲染项目。它与大多数现代浏览器兼容,并附带强大的api,可以从中构建您自己的物理创意。
它适用于canvas元素和webgl应用程序。唯一困难的部分是研究图书馆并克服初始学习曲线。看一下github演示页面,了解cannon.js在浏览器中的样子以及它为何如此优秀。
copperlicht
像copperlicht这样的名字你可能不知道会发生什么。但这是一个强大的3d javascript渲染引擎,专为基于web的js游戏而构建。
同样,它是100%开源的,可以免费用于任何项目。建立copperlicht的公司确实有一些优质的软件和工具,但这些并不是学习copperlicht库所必需的。事实上,学习所有功能都很困难,因为它支持一系列3d功能,如阴影/灯光,特效和3d页面元素交互。
教程页面是最好的起点,如果你采取这种方式,愿意慢慢来。尽管获得回报非常值得,但仍有一条陡峭的学习曲线可以让copperlicht得以实现。
phoria.js
对于基于web的移动和屏幕上的3d效果您可以尝试phoria.js。 它实际上是一个图形库,但phoria植根于html5 canvas元素中的3d表示。
主站点运行了很多演示,是一个相当合理的库来创建3d图形。学习曲线并不太难,您可以在网站上找到许多可以复制/粘贴的代码片段。
此外,您甚至不使用webgl,因此您不必担心该库。虽然你将不得不处理画布的元素,但这也仅仅意味着练习。
scene.js
对于在webgl中运行的内容,请访问scene.js。目前,在4.2版本中,这个巨大的开源库允许您为任何现代浏览器表示3d元素。
它得到了大型开发团队的支持,并且经过多年的重要更新,使其成为您可以使用的最佳3d渲染脚本之一。 但是,这被称为显示库,因此它不仅仅用于渲染基本图形。相反,这可以用于更复杂的任务,例如从不同角度设计多个对象视图,甚至创建3d游戏的基本图形。
d3.js
在浏览网页时,您经常会发现依赖于3d效果的图形和图形。其中许多都在d3.js中运行,这是一个强大的javascript库来表示3d数据。
它也是一个完全免费的开源项目,有一个非常有用的github页面。目标是在html中使用svg元素和画布来创建动态数据,这些数据可以动态显示,旋转并最终直观地显示信息。
lightgl.js
我没有在网上看到很多关于lightgl.js的内容,但它是浏览器中3d渲染的绝佳选择。
这个免费的开源库在webgl框架下运行,是您可以使用的最快,最轻的库。它的工作级别低于大多数抽象库,因此需要更好地理解javascript。
大多数开发人员只想要简单,所以在水冷却器周围分享它的人数可能会减少。但是,如果您对使用javascript感到满意,lightgl将为您提供更多的代码库控制。
seen.js
由于完全缺乏依赖关系,我必须在此列表中包含seen.js。同样,它在html5 canvas元素上运行,但它可以在没有任何其他必需库的vanilla javascript中运行。
它对所有开发人员完全免费,并且可以在apache 2.0许可下自由定制。考虑到它们仅使用javascript构建,一些演示非常疯狂。
任何愿意突破基本3d可视化界限的人都可以看看seen.js。它可能没有像three.js这样的大型追随者,但它是一个很好的画布/svg替代品,不会严重依赖webgl。