Babylon.js
![]() | |
原作者 | David Catuhe[1] |
---|---|
開發者 | 微軟[2] 與社群貢獻者[3] |
首次发布 | 2013年 |
当前版本 |
|
预览版本 | ([5]) |
源代码库 | github |
编程语言 | TypeScript, JavaScript |
许可协议 | Apache License 2.0 |
网站 | www |
Babylon.js 是一個即時 3D 引擎,使用 JavaScript 工具庫通過 HTML5 在網頁瀏覽器中顯示 3D 圖形。原始碼可在 GitHub 上取得,並以 Apache License 2.0 授權條款發佈。
歷史與進展
Babylon。js 最初於 2013 年根據微軟公共許可證發布,由兩名微軟員工開發。 David Catuhe 創建了 3D 遊戲引擎,並得到了 David Rousset(VR、Gamepad 和 IndexedDB 支持)的幫助,主要是在業餘時間作為個人專案。 他們還得到了藝術家米歇爾盧梭的幫助,他貢獻了幾個 3D 場景。 是基於 Silverlight 的 WPF 的 3D 系統的早期遊戲引擎。[7][8] Catuhe的個人專案後來成為全職工作,也是他團隊的主要關注點。[9] 2015 年,它在巴黎的 WebGL 會議上進行了介紹。[10] 截至 2018 年,它擁有超過 190 名貢獻者,並關注其在遊戲中的推廣和應用,其中包括 Ubisoft 的一項。[11][12][13][14][15] 該用途已發展到多個領域
技術說明
原始碼用 TypeScript 撰寫,然後編譯成 JavaScript 版本。終端用戶可以通過 NPM 或 CDN 使用 JavaScript 版本,然後他們使用 JavaScript 撰寫專案程式碼,訪問引擎的 API。 Babylon.js 3D 引擎和用戶程式碼由所有支持 HTML5 標準和 WebGL 的 Web 瀏覽器原生直譯,以進行 3D 渲染。
建模方法
所使用的 3D 建模過程是用殼模型表示的具有三角形面的多邊形建模。[16] 儘管僅作為一種過渡方法來創建殼模型的並集、減法和交集,但可以有限地使用構造實體幾何。[17] 使用著色器程序在 HTML 5 畫布元素上渲染建立的模型後,該程式使用多邊形模型確定畫布上的像素位置和顏色、套用於每個模型的紋理、場景相機和燈光以及 4 x 4 世界矩陣對於存儲其位置、旋轉和比例的每個對象。[18] 該技術用於產生如同照片般地逼真圖像的技術是基於物理渲染[19] 以及後處理方法。[20] 為了模擬模型和其他現實世界物理動作之間的碰撞,需要添加兩個物理引擎之一作為插件,分別是 Cannon.js 和 Oimo。[21] 例如涉及模型位置或顏色變化的動畫是通過稱為動畫物件的關鍵影格動畫物件完成的,而完整角色動畫是通過使用具有混合權重的骨架來實現的。[20][22]
參考書目
- Moreau-Mathis, Julien. Babylon.js Essentials. Packt Publishing. 2016. ISBN 978-1785884795.
- Chenard, Julian; Moreau-Mathis, Julien. Réaliser un jeu en 3D avec BabylonJS [Creating a 3D Game with BabylonJS] (PDF). Programmez!. 2016 (French). 参数
|magazine=
与模板{{cite news}}
不匹配(建议改用{{cite magazine}}
或|newspaper=
) (帮助) - Bousquié, Jérôme. La 3D sur le Web avec BabylonJS [3D on the Web with BabylonJS] (PDF). Programmez!. 2015 (French). 参数
|magazine=
与模板{{cite news}}
不匹配(建议改用{{cite magazine}}
或|newspaper=
) (帮助) - Catuhe, David. Sous le capot d'un moteur 3D [Under the Hood of a 3D Engine] (PDF). Programmez!. 2014 (French). 参数
|magazine=
与模板{{cite news}}
不匹配(建议改用{{cite magazine}}
或|newspaper=
) (帮助) - Chenard, Julien. Learning BabylonJS (e-book). 2015.
- Cozzi, Patrick. WebGL Engine Design in Babylon.js. WebGL Insights. CRC Press. 2015. ISBN 978-1498716079.
參考文獻
- ^
David Catuhe - Group Engineering Manager - Microsoft. linkedin.com. [11 March 2021].
... 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].
- ^ Contributors to BabylonJS/Babylon.js · GitHub. github.com. [11 March 2021].
- ^ Release 8.3.1. 2025年4月18日 [2025年4月24日].
- ^ Releases · BabylonJS/Babylon.js. doc.babylonjs.com. 13 April 2022 [16 April 2022].
- ^ Releases 5.2.0 · BabylonJS/Babylon.js. doc.babylonjs.com. 13 April 2022 [16 April 2022].
- ^ Elliot, Iain. Babylon.js - A WebGL Game Engine From Microsoft. i-programmer.info. 2013-08-15 [2018-09-06].
- ^ Dumand, Mickael. Interview de David Rousset sur babylon.js [An Interview with David Rousset on Babylon.js]. ekino. 2014-11-28 [2018-09-07] (French).
- ^ Irwin, Emma. Microsoft Open Source success story—Babylon. 2021-02-21 [2021-04-18].
- ^ 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] (French).
- ^ Contributors. GitHub. [2018-09-06].
- ^ Weber, Raanan. Babylon.js Building a Basic Game for the Web. Vol. 30 no. 13. MSDN. 2015-12-01 [2018-09-12].
- ^ 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].
- ^ Babylon.js Flight Simulator. [2018-09-07].
- ^ 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].
- ^ Chenard, Julian. Tree Generator - How to use VertexData object. Pixel Codr. [2018-11-27].
- ^ Feldspar, Craig. Constructive Solid Geometry in Babylon.js. GitHub. [2018-11-27].
- ^ Catuhe, David. Building Shaders with Babylon.js. Smashing Magazine. November 2016 [2018-11-27].
- ^ Ryan, Patrick. Art Pipeline for glTF. Khronos Group. 2018-01-08 [2018-11-27].
- ^ 20.0 20.1 Moreau-Mathis, Julien. Babylon.js Essentials. Packt Publishing. 2016. ISBN 978-1785884795.
- ^ Rousset, David. WebGL Physics and Collision Detection Using BabylonJS and Oimo.js. Game Development. 2015-06-11 [2018-11-27].
- ^ Beaulieu, Andy. babylon.js: physics and character animation. Spritehand. 2014-05-26 [2018-09-06].