Репозиторий | github.com / BabylonJS / Babylon.js |
---|---|
Написано на | TypeScript, JavaScript |
Лицензия | Apache 2.0 |
Веб-сайт | www.babylonjs.com |
Babylon.js - это 3D-движок в реальном времени, использующий JavaScript библиотеку для отображения 3D-графики в веб-браузере. через HTML5. Исходный код доступен на GitHub и распространяется под лицензией Apache License 2.0.
Первоначально он был выпущен в 2013 году двумя сотрудниками Microsoft, Дэвидом Катюэ и Дэвидом Руссе в свободное время, которым помогал художник Мишель Руссо в качестве движка для 3D-игр. В 2015 году он был представлен на конференции WebGL в Париже. По состоянию на 2018 год у него более 190 участников, которые следят за его продвижением и применением в играх, в том числе один от Ubisoft. Его использование переросло в различные области, такие как:
Исходный код написан на TypeScript, а затем скомпилирован в версию JavaScript. Версия JavaScript доступна для конечных пользователей через NPM или CDN, которые затем кодируют свои проекты на JavaScript, получая доступ к API движка. 3D-движок Babylon.js и пользовательский код изначально интерпретируются всеми веб-браузерами, поддерживающими стандарт HTML5 и WebGL, для выполнения 3D-рендеринга.
Используемый процесс 3D моделирования - это моделирование полигонов с треугольными гранями, которые будут представлены моделями оболочки. Ограниченное использование конструктивной твердотельной геометрии возможно, но только в качестве переходного метода для создания объединения, вычитания и пересечения моделей оболочки. После создания модели визуализируются на элементе HTML 5 холста с помощью программы шейдера, которая определяет положение пикселей и цвета на холсте с помощью многоугольные модели, текстуры, примененные к каждой модели, сцена камера и источники света вместе с матрицами мира 4 x 4 для каждого объекта, который хранит их положение, вращение и масштабирование. Для создания фотореалистичных изображений используется метод физически обоснованного рендеринга вместе с методами постобработки. Чтобы имитировать столкновения между моделями и другими физическими действиями в реальном мире, необходимо добавить один из двух физических движков в качестве подключаемых модулей, это Cannon.js и Oimo. Анимация, включающая, например, изменения положения или цвета моделей, выполняется с помощью объектов анимации ключевого кадра, называемых animatables, тогда как полная анимация персонажа достигается за счет использования скелетов со смешанными весами.