Есть идея, как создать алгоритм этого явления в играх. Сила ударной волны распространяется по площади сферы, может отражаться от твёрдой поверхности. И в целом похожа на распространения света с учётом отражения от поверхностей. Вопрос? Как решить эту задачу в разных игровых движках?
https://docs.godotengine.org/ru/stable/tutorials/physics/ray-casting.html - ну в Годо, например, можно попробовать сделать через ноду RayCast (я предполагаю, что речь про 3д идет, тк ты упоминаешь XRay) так же есть эмиттеры света, если решишь так делать. В Анриле тоже должно быть что-то похожее.
А зачем? Обычно просто рассчитывается расстояние от эпицентра взрыва до объектов которые взаимодействуют с физикой взрыва по всем известной формуле. От расстояния уже считать силу поражения, вектор смещения. Находишь вектор направления через разность векторов, считаешь длину, производишь нормировку - сдвигаешь объект.
Thetrik, это уже давно реализовано! Мне надо более реалистичная ударная волна, где есть отражения от поверхностей. И как раз, ударная волна как источник света, наиболее оптимальное решение, т.к. напрягаем видеокарту. Так же надо добавить волну бризантности, бризантность наносит наиболее мощный хит объектам и так же может вызвать детонацию других взрывных объектов.
не всё так просто, взрыв сложный процесс, описывается сотнями уравнений математической физики...помню, считали газовый взрыв на 4xp3-800mhz минут 15, в журнале каком-то писали...всё зависит от мат. модели, которую выберете...если простейшую, линейную, то посмотрите исходники кваки 3, там взрывы ракет реализованы вместе с ударной волной...ну и уже пляшите от готового...ну а сама ударная волна это суть разница давлений воздуха...
Вофка0, я уже всё про анализировал. Я достаточно хорошо понимаю что такое детонация, и ударная волна. Я, как вы понимаете, достаточно хороший оптимизатор. И решил что свет и ударная волна вполне себе распространяют по близким закона. Так что их алгоритмы можно объединить.