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).