Обновить

Комментарии 11

Спасибо, полезное направление работы. Видно сколько труда вложено в расследовательскую работу по отладке библиотеки. Было бы вообще круто в будущем углубить материал пошаговым разбором применения алгоритмов на примере какой-нибудь несложной сцены. Если будут силы - можете сделать как вторую часть и оформить таким образом цикл статей по теме

Да, есть интерес продолжить в таком же духе, но пока застрял: непонятно, как визуализировать работу симуляции

надо создать доступные коллайдеры - создать меш(апи графики) кубик например, далее надо указать позицию и матрицу, если интересно и доступно в движке выводите коллайдеры сами, собственно ваш меш вы связываете с коллайдером в этот момент происходит связь с физическим движком, тоесть коллайдер станет частью физического мира, ну и тд

один из сотен тысяч примеров физической отрисовки взаимодействия - прототип по-сути

Скрытый текст

суть в том, что физика, если концепция physics-first, у вас на этапе прототипирования, коллайдеры - тоесть меши будут наделяться физическими свойствами - метками в пространстве, относительно физических свойств происходит комуникация внутри мира

тоесть коллайдер будет смотреть в физический мир - сущность, которая знает интегратор, а визуалка просто рисует текущии состояния интегратора

есть еще newtondynamics, тоже интересная, но походу не популярная

Не разбираюсь в программировании, но каким-то чудом установил эту штуку, нашел на сайте Github разные примеры физических программ: какие-то растягивающиеся куски ткани, летающие кубы и т.д. Прикольно! Нужно попробовать симулировать что-то посложнее, хочу посмотреть, что будет, если сбросить пианино в черную дыру.

У вас ничего не выйдет, так как в окрестности черной дыры используется уже другая физика в расчётах, а именно численное решение формул ОТО (довольные сложные тензорные уравнения энергии - импульса в Римановской геометрии). А в данном движке обычные решатели Ньютоновской динамики.

С черной дырой проблема будет, потому что гравитация в движке крайне упрощенная. Я б сказал "плоскоземельная"

Я правильно понимаю, что движок будет нормально работать только при "axis aligned" пространстве, а если у меня геоид, то я иду лесом? Что посоветуете использовать в таком случае?

AABB (Axis Align Bounding Box) используются только для поиска потенциальных коллизий. Сам мир может быть и более сложным, не обязательно ориентированным строго вдоль осей координат.

Нет, не идете:) В библиотеку можно загрузить сложную сетку через btConvexHullShape

Благодарю

Мир обновляется через команду stepSimulation.

Можно было бы более конкретно описать, что это не просто какая-то абстрактная "команда", а метод класса btDiscreteDynamicsWorld

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации