Ударная волна в компьютерной игре.

Тема в разделе "WASM.A&O", создана пользователем Intro, 15 ноя 2020.

  1. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Есть идея, как создать алгоритм этого явления в играх.
    Сила ударной волны распространяется по площади сферы, может отражаться от твёрдой поверхности. И в целом похожа на распространения света с учётом отражения от поверхностей.
    Вопрос? Как решить эту задачу в разных игровых движках?
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    В каких именно движках? Ну через источник света наверное можно решить, поскольку свойства похожи.
     
  3. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Rel, XRay, Unreal Engine 4 и другие!
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    https://docs.godotengine.org/ru/stable/tutorials/physics/ray-casting.html - ну в Годо, например, можно попробовать сделать через ноду RayCast (я предполагаю, что речь про 3д идет, тк ты упоминаешь XRay) так же есть эмиттеры света, если решишь так делать. В Анриле тоже должно быть что-то похожее.
     
    Последнее редактирование: 15 ноя 2020
  5. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    А зачем? Обычно просто рассчитывается расстояние от эпицентра взрыва до объектов которые взаимодействуют с физикой взрыва по всем известной формуле. От расстояния уже считать силу поражения, вектор смещения.
    Находишь вектор направления через разность векторов, считаешь длину, производишь нормировку - сдвигаешь объект.
     
  6. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Thetrik, это уже давно реализовано! Мне надо более реалистичная ударная волна, где есть отражения от поверхностей. И как раз, ударная волна как источник света, наиболее оптимальное решение, т.к. напрягаем видеокарту.
    Так же надо добавить волну бризантности, бризантность наносит наиболее мощный хит объектам и так же может вызвать детонацию других взрывных объектов.
     
  7. voffka0

    voffka0 Member

    Публикаций:
    0
    Регистрация:
    22 янв 2019
    Сообщения:
    136
    не всё так просто, взрыв сложный процесс, описывается сотнями уравнений математической физики...помню, считали газовый взрыв на 4xp3-800mhz минут 15, в журнале каком-то писали...всё зависит от мат. модели, которую выберете...если простейшую, линейную, то посмотрите исходники кваки 3, там взрывы ракет реализованы вместе с ударной волной...ну и уже пляшите от готового...ну а сама ударная волна это суть разница давлений воздуха...
     
  8. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Вофка0, я уже всё про анализировал. Я достаточно хорошо понимаю что такое детонация, и ударная волна.
    Я, как вы понимаете, достаточно хороший оптимизатор. И решил что свет и ударная волна вполне себе распространяют по близким закона. Так что их алгоритмы можно объединить.
     
  9. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    185
    Intro, кстати ни лишним будет добавить последствия температуры взрыва