Babylon.js
Babylon.js是一个即时3D引擎,使用JavaScript工具库通过HTML5在网页浏览器中显示3D图形。源代码可在GitHub上获取,并以Apache License 2.0许可协议发布。
原作者 | David Catuhe[1] |
---|---|
开发者 | 微软[2]与社群贡献者[3] |
首次发布 | 2013年 |
当前版本 |
|
源代码库 | |
编程语言 | TypeScript, JavaScript |
许可协议 | |
网站 | www |
历史与进展
Babylon.js 最初于 2013 年根据微软公共许可证发布,由两名微软员工开发。 David Catuhe 创建了 3D 游戏引擎,并得到了 David Rousset(VR、Gamepad 和 IndexedDB 支持)的帮助,主要是在业余时间作为个人项目。 他们还得到了艺术家米歇尔卢梭的帮助,他贡献了几个 3D 场景。 是基于 Silverlight 的 WPF 的 3D 系统的早期游戏引擎。[5][6] Catuhe的个人项目后来成为全职工作,也是他团队的主要关注点。[7] 2015 年,它在巴黎的 WebGL 会议上进行了介绍。[8]
截至 2018 年,它拥有超过 190 名贡献者,并关注其在游戏中的推广和应用,其中包括 Ubisoft 的一项。[9][10][11][12][13] 该用途已发展到多个领域。
技术说明
源代码用 TypeScript 撰写,然后编译成 JavaScript 版本。终端用户可以通过 NPM 或 CDN 使用 JavaScript 版本,然后他们使用 JavaScript 撰写项目代码,访问引擎的 API。 Babylon.js 3D 引擎和用户代码由所有支持 HTML5 标准和 WebGL 的 Web 浏览器原生直译,以进行 3D 渲染。
建模方法
所使用的 3D 建模过程是用壳模型表示的具有三角形面的多边形建模。[14] 尽管仅作为一种过渡方法来创建壳模型的并集、减法和交集,但可以有限地使用构造实体几何。[15] 使用着色器程序在 HTML 5 画布元素上渲染建立的模型后,该程序使用多边形模型确定画布上的像素位置和颜色、套用于每个模型的纹理、场景相机和灯光以及 4 x 4 世界矩阵对于存储其位置、旋转和比例的每个对象。[16]
该技术用于产生如同照片般地逼真图像的技术是基于物理渲染[17] 以及后处理方法。[18] 为了模拟模型和其他现实世界物理动作之间的碰撞,需要添加两个物理引擎之一作为插件,分别是 Cannon.js 和 Oimo。[19] 例如涉及模型位置或颜色变化的动画是通过称为动画对象的关键帧动画对象完成的,而完整角色动画是通过使用具有混合权重的骨架来实现的。[18][20]
参考书目
- Moreau-Mathis, Julien. Babylon.js Essentials. Packt Publishing. 2016 [2022-06-01]. ISBN 978-1785884795. (原始内容存档于2019-04-11).
- Chenard, Julian; Moreau-Mathis, Julien. Réaliser un jeu en 3D avec BabylonJS [Creating a 3D Game with BabylonJS] (PDF). Programmez!. 2016 [2022-06-01]. (原始内容存档于2016-08-19) (法语).
- Bousquié, Jérôme. La 3D sur le Web avec BabylonJS [3D on the Web with BabylonJS] (PDF). Programmez!. 2015 [2022-06-01]. (原始内容存档于2016-08-19) (法语).
- Catuhe, David. Sous le capot d'un moteur 3D [Under the Hood of a 3D Engine] (PDF). Programmez!. 2014 [2022-06-01]. (原始内容存档于2016-08-20) (法语).
- Chenard, Julien. Learning BabylonJS (e-book). 2015 [2022-06-01]. (原始内容存档于2016-08-23).
- Cozzi, Patrick. WebGL Engine Design in Babylon.js. WebGL Insights. CRC Press. 2015 [2022-06-01]. ISBN 978-1498716079. (原始内容存档于2017-11-17).
参考文献
- ^ David Catuhe - Group Engineering Manager - Microsoft. linkedin.com. [11 March 2021]. (原始内容存档于2009-05-23).
... Creator and leader of Babylon.js open source project ...
- ^ Microsoft Unveils Babylon.js 4.1, a Powerful Open Source Web Rendering Engine. winbuzzer.com. [18 April 2021]. (原始内容存档于2021-08-03).
- ^ Contributors to BabylonJS/Babylon.js · GitHub. github.com. [11 March 2021]. (原始内容存档于2022-05-31).
- ^ Release 7.30.0. 2024年10月17日 [2024年10月21日].
- ^ Elliot, Iain. Babylon.js - A WebGL Game Engine From Microsoft. i-programmer.info. 2013-08-15 [2018-09-06]. (原始内容存档于2022-06-15).
- ^ Dumand, Mickael. Interview de David Rousset sur babylon.js [An Interview with David Rousset on Babylon.js]. ekino. 2014-11-28 [2018-09-07]. (原始内容存档于2016-09-12) (法语).
- ^ Irwin, Emma. Microsoft Open Source success story—Babylon. 2021-02-21 [2021-04-18]. (原始内容存档于2022-07-01).
- ^ Rousseau, Jean-Michel; Rousseau, David. BabylonJS et ses dernières fonctionnalités [BabylonJS and its latest features]. webglparis.com. 2015-10-12 [2018-09-12]. (原始内容存档于2016-08-19) (法语).
- ^ Contributors. GitHub. [2018-09-06]. (原始内容存档于2022-05-31).
- ^ Weber, Raanan. Babylon.js Building a Basic Game for the Web. Vol. 30 no. 13. MSDN. 2015-12-01 [2018-09-12]. (原始内容存档于2016-09-14).
- ^ Weber, Raanan. Game Development - Babylon.js: Advanced Features for Enhancing Your First Web Game. Vol. 31 no. 1. MSDN. 2016-01-01 [2018-09-12]. (原始内容存档于2016-09-14).
- ^ Babylon.js Flight Simulator. [2018-09-07]. (原始内容存档于2020-08-16).
- ^ Protalinski, Emil. Microsoft and Ubisoft launch 3D Web game Assassin's Creed Pirates, built with open-source framework Babylon.JS. The Next Web. 2014-05-09 [2018-09-07]. (原始内容存档于2020-10-25).
- ^ Chenard, Julian. Tree Generator - How to use VertexData object. Pixel Codr. [2018-11-27]. (原始内容存档于2019-08-27).
- ^ Feldspar, Craig. Constructive Solid Geometry in Babylon.js. GitHub. [2018-11-27]. (原始内容存档于2022-06-01).
- ^ Catuhe, David. Building Shaders with Babylon.js. Smashing Magazine. November 2016 [2018-11-27]. (原始内容存档于2022-06-01).
- ^ Ryan, Patrick. Art Pipeline for glTF. Khronos Group. 2018-01-08 [2018-11-27]. (原始内容存档于2022-06-22).
- ^ 18.0 18.1 Moreau-Mathis, Julien. Babylon.js Essentials. Packt Publishing. 2016 [2022-06-01]. ISBN 978-1785884795. (原始内容存档于2019-04-11).
- ^ Rousset, David. WebGL Physics and Collision Detection Using BabylonJS and Oimo.js. Game Development. 2015-06-11 [2018-11-27]. (原始内容存档于2022-07-05).
- ^ Beaulieu, Andy. babylon.js: physics and character animation. Spritehand. 2014-05-26 [2018-09-06]. (原始内容存档于2022-06-10).