Кэннон.js
Разработчик(и) | Стефан Хедман |
---|---|
Стабильная версия | 0.6.2
/ 28 марта 2015 г. [ 1 ] |
Репозиторий | |
Написано в | JavaScript |
Операционная система | Независимый от ОС |
Тип | 3D физический движок |
Лицензия | МОЯ лицензия |
Веб-сайт | www |
Cannon.js — это с открытым исходным кодом, JavaScript 3D- физический движок созданный Стефаном «schteppe» Хедманом. [ 2 ] В отличие от библиотек физического движка, перенесенных с C++ на JavaScript, cannon.js с самого начала написан на JavaScript и может использовать его возможности. [ 3 ] По сравнению с Ammo.js в 2013 году, cannon.js оказался «более компактным, более понятным, более мощным с точки зрения производительности, а также более простым для понимания», но не имел такого количества функций. [ 4 ]
Функции
[ редактировать ]Cannon.js поддерживает следующие формы: сфера, плоскость, прямоугольник, цилиндр, выпуклый многогранник , частица и поле высот . Эта коллекция фигур соответствует коллекции, используемой такими механизмами рендеринга, как Three.js и Babylon , но не является полной. Например, для X3DOM этого недостаточно, [ 4 ] приложение X3D , которое позволяет включать 3D-графику в веб-страницы без необходимости использования подключаемого модуля . [ 5 ]
Физический движок реализует динамику твердого тела, дискретное обнаружение столкновений и решатель ограничений Гаусса-Зейделя . [ 6 ] Он может выполнять моделирование ткани [ 7 ]
Cannon.js можно использовать с Three.js и Babylon.js. [ 8 ] [ 9 ] Средства рендеринга WebGL для создания 3D-сцен на основе физики. Его также можно использовать для синхронизации сетевой физики в многопользовательских онлайн-играх с использованием Lance.gg. [ 10 ]
Пример
[ редактировать ]Приведенный ниже пример кода создает сферу на плоскости, выполняет пошаговое моделирование и выводит моделирование сферы на консоль. Обратите внимание, что Cannon.js использует единицы СИ (метр, килограмм, секунда и т. д.). [ 11 ]
// Setup our world
var world = new CANNON.World();
world.gravity.set(0, 0, -9.82); // m/s²
// Create a sphere
var radius = 1; // m
var sphereBody = new CANNON.Body({
mass: 5, // kg
position: new CANNON.Vec3(0, 0, 10), // m
shape: new CANNON.Sphere(radius)
});
world.addBody(sphereBody);
// Create a plane
var groundBody = new CANNON.Body({
mass: 0 // mass == 0 makes the body static
});
var groundShape = new CANNON.Plane();
groundBody.addShape(groundShape);
world.addBody(groundBody);
var fixedTimeStep = 1.0 / 60.0; // seconds
var maxSubSteps = 3;
// Start the simulation loop
var lastTime;
(function simloop(time) {
requestAnimationFrame(simloop);
if (lastTime !== undefined) {
var dt = (time - lastTime) / 1000;
world.step(fixedTimeStep, dt, maxSubSteps);
}
console.log("Sphere z position: " + sphereBody.position.z);
lastTime = time;
})();
Ссылки
[ редактировать ]- ^ «Релизы · schteppe/cannon.js» . GitHub.com . Проверено 11 мая 2021 г.
- ^ «Штефан Хедман» . Гитхаб . Проверено 27 апреля 2017 г.
- ^ Пралл, Чендлер (10 апреля 2012 г.). «Сравнение физических движков JavaScript» . Создавайте новые игры . Проверено 27 апреля 2017 г.
- ^ Jump up to: а б Хубер, Линда (2013). «Начальные шаги по объединению физических движков JavaScript с X3DOM». В Яне Бендере; Джереми Деквидт; Кристиан Дюрье; Габриэль Захманн (ред.). Семинар по взаимодействию с виртуальной реальностью и физическому моделированию (VRIPHYS 2013) . Ассоциация Еврографика. стр. 81–90. doi : 10.2312/PE.vriphys.vriphys13.081-090 . ISBN 978-3-905674-57-6 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ «Справочная информация: что такое X3DOM и чем он может мне помочь?» . официальная документация x3dom . x3dom.org . Проверено 27 апреля 2017 г.
- ^ «Ветка: master. cannon.js/README.markdown» . Гитхаб. 22 апреля 2015 года . Проверено 27 апреля 2017 г.
- ^ «Моделирование физики ткани» .
- ^ «Создавайте замечательные интерактивные игры для Интернета: используя webgl и физический движок (babylon.js и cannon.js)» . Проверено 21 февраля 2017 г.
- ^ «Разработка игр MSDN с помощью Babylon.js» . Проверено 21 февраля 2017 г.
- ^ «Репозиторий исходного кода Ланса» . Гитхаб .
- ^ «Cannon.js — JavaScript» . www.javascripting.com . Проверено 22 декабря 2020 г.