Физический движок

  1. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    ux3sty писал:
    MrKerbMan, Как ты это сделал?)

    Сделал обработку столкновений отдельно от движения.


    GLORY TO KOLOBKI!!!

    21 апреля 2014 - 15:52 / #141
  2. Оффлайн

    Lexi4_Dev

    Хорошие люди

    Сообщений: 5537

    Ваня, у нас тут васа решила спамить 2 аккаунтом! *true*
    Берегись настоящего срача *false*


    GLORY TO KOLOBKI!!!

    22 апреля 2014 - 02:57 / #142
  3. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    gapayulac писал:
    Нафиг это вообще нужно?


    Лично для меня, чтоб вспомнить физику. Ну и людям могу исходник кинуть.

    Vasa писал:
    Lexi4_Dev, Иди ты. Уж делать будто мне нечего кроме такого.

    А есть чего? Пришел из школы, сделал уроки, поиграл в игры, снял тупой летсплей.

    Смотришь, а 4 часа еще до того, как мамка уложит... Чем бы заняться?
    Ладно, Вася, твои попытки разжечь срач ни к чему не приведут. Моя секретная методика антисрача...

    Все, оффтоп за двери.
    Сообщение отредактировал Лякуша Уляпик 22 апреля 2014 - 16:38


    GLORY TO KOLOBKI!!!

    22 апреля 2014 - 09:18 / #143
  4. Оффлайн

    lexi4

    Посетители

    Сообщений: 512

    И тут офтоп ушел..
    Ваня, ты добавишь метеоритный пояс и возможность текстурки накладывать?

    Unreal Engine 4 | Blender3D | Adobe Flash CC

    22 апреля 2014 - 14:02 / #144
  5. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Ваня, ты добавишь метеоритный пояс и возможность текстурки накладывать?

    Это уже GUI, а не физика. Я подумаю...
    текстурки накладывать?

    Это легко, но тоже надо подумать...


    GLORY TO KOLOBKI!!!

    22 апреля 2014 - 15:53 / #145
  6. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    При расчёте столкновений надо учитывать скорость тел? просто у меня они иногда пролетают сквозь друг друга, если имеют очень большую скорость.


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 17:11 / #146
  7. Оффлайн

    ThePhobius

    Посетители

    Сообщений: 469

    Хочешь сказать, что сейчас при столкновениях скорость не учитывается? Не понял вопроса.
    23 апреля 2014 - 19:18 / #147
  8. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Хочешь сказать, что сейчас при столкновениях скорость не учитывается? Не понял вопроса.

    Я говорю, что у меня на большой скорости объект может "проскочить" сквозь другой, так как позиция вычисляется так: начальная позиция скорость * время просчёта (1/24 секунды). Из этого следует, что позиция тела в следующий промежуток времени при большой скорости может быть за пределами радиуса обсчёта столкновений.
    [attachment=9082]

    Картинка, думаю, поможет понять меня.


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 19:45 / #148
  9. Оффлайн

    ThePhobius

    Посетители

    Сообщений: 469

    Ну так увеличь фпс. Очевидно.
    24 это очень мало.
    Сообщение отредактировал ThePhobius 23 апреля 2014 - 19:53
    23 апреля 2014 - 19:51 / #149
  10. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Ну так увеличь фпс. Очевидно.
    24 это очень мало.

    У тебя лагать будет. Хочу напомнить, что движок будет поддерживать неограниченное количество объектов.
    Сообщение отредактировал MrKerbMan 23 апреля 2014 - 20:28


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 20:27 / #150
  11. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    MrKerbMan писал:
    Хочешь сказать, что сейчас при столкновениях скорость не учитывается? Не понял вопроса.

    Я говорю, что у меня на большой скорости объект может "проскочить" сквозь другой, так как позиция вычисляется так: начальная позиция скорость * время просчёта (1/24 секунды). Из этого следует, что позиция тела в следующий промежуток времени при большой скорости может быть за пределами радиуса обсчёта столкновений.
    [attachment=9082]

    Картинка, думаю, поможет понять меня.

    Дык никто не знает?
    У меня предложение: можно искать точку пересечения векторов скорости, ставить в эту точку тело, по пропорциям искоть точку другого тела и проверять столкновения. Только хрен знает, что меделенней.


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 20:42 / #151
  12. Оффлайн

    Лякуша Уляпик

    Модераторы

    Сообщений: 6471

    MrKerbMan, Объекты круглые? Тогда при просчете следующего положения создавать виртуальный прямоугольник длиной равной перемещению объекта и шириной, равной диаметру круга. Собственно, нужен не сам прямоугольник, а координаты его вершин. Зная размер и положение объекта, направление и величину его скорости, можно без труда найти эти координаты. Так вот, в конце каждого кадра проверять на пересечения эти прямоугольники(я точно не помню алгоритм, поищи сам, но он весьма элементарен, особенно для 2д и не ест много ресурсов). Нет пересечения - все спокойно, можно давать следующий кадр. Есть - возможны пересечения и тут нужно рассматривать отдельно эти объекты на предмет столкновения. Для этого разбить виртуально кадр на гораздо меньшие куски времени и на каждом куске мерять расстояние между центрами двух объектов. Как только это расстояние меньше либо равно сумме диаметров объектов - поздравляю, имеем столкновение, причем известно точное его время и положения объектов - считай не хочу новые траектории. Более того, учитывая линейность движений внутри кадра, как только расстояние начнет увеличиваться, дальше можно не считать, ибо столкновения не будет. Недостатком модели есть то, что один объект за один кадр не сможет столкнуться больше чем один раз. Достоинство - с прямыми руками кодера, даже калькулятор потянет расчет.

    Не люблю людей... ну или не умею толком их готовить.

    23 апреля 2014 - 20:42 / #152
  13. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    MrKerbMan, Объекты круглые? Тогда при просчете следующего положения создавать виртуальный прямоугольник длиной равной перемещению объекта и шириной, равной диаметру круга. Собственно, нужен не сам прямоугольник, а координаты его вершин. Зная размер и положение объекта, направление и величину его скорости, можно без труда найти эти координаты. Так вот, в конце каждого кадра проверять на пересечения эти прямоугольники(я точно не помню алгоритм, поищи сам, но он весьма элементарен, особенно для 2д и не ест много ресурсов). Нет пересечения - все спокойно, можно давать следующий кадр. Есть - возможны пересечения и тут нужно рассматривать отдельно эти объекты на предмет столкновения. Для этого разбить виртуально кадр на гораздо меньшие куски времени и на каждом куске мерять расстояние между центрами двух объектов. Как только это расстояние меньше либо равно сумме диаметров объектов - поздравляю, имеем столкновение, причем известно точное его время и положения объектов - считай не хочу новые траектории. Более того, учитывая линейность движений внутри кадра, как только расстояние начнет увеличиваться, дальше можно не считать, ибо столкновения не будет. Недостатком модели есть то, что один объект за один кадр не сможет столкнуться больше чем один раз. Достоинство - с прямыми руками кодера, даже калькулятор потянет расчет.

    Как интересно!
    А что насчёт этого:
    У меня предложение: можно искать точку пересечения векторов скорости, ставить в эту точку тело, по пропорциям искоть точку другого тела и проверять столкновения. Только хрен знает, что меделенней.


    Недостатком модели есть то, что один объект за один кадр не сможет столкнуться больше чем один раз.

    Циклы всё исправят!


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 20:48 / #153
  14. Оффлайн

    Лякуша Уляпик

    Модераторы

    Сообщений: 6471

    MrKerbMan писал:
    Циклы всё исправят!

    Чувак, есть сотни способов просчета столкновений. Я тебе выдал наиболее простой для программиста и при этом не занимающий много процессора. Так вот, если ему добавить возможность нескольких столкновений за кадр, алгоритм обрастет циклами по самое не могу и перестанет удовлетворять требованию "не гробить ресурсы". Если, сильно-сильно нужно считать больше одного столкновения за кадр настоятельно рекомендую пользоваться каким-нибудь другим, более оптимальным, алгоритмом.

    Не люблю людей... ну или не умею толком их готовить.

    23 апреля 2014 - 20:59 / #154
  15. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Да брось, попробовать надо. Ты случайно не знаешь, как найти точку пересечения двух отрезков? Пока могу определять, пересекаются ли они...


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 21:01 / #155
  16. Оффлайн

    Лякуша Уляпик

    Модераторы

    Сообщений: 6471

    MrKerbMan писал:
    Ты случайно не знаешь, как найти точку пересечения двух отрезков?

    1. Кто из нас программист?
    2. Просто место пересечение векторов не гарантирует столкновения. Более того столкновение может быть без пересечения. Я б тебе нарисовал оба случая, но мне лень.

    Ах, и да, знаю, но не скажу.

    Не люблю людей... ну или не умею толком их готовить.

    23 апреля 2014 - 21:04 / #156
  17. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Кто из нас программист?

    А кто математик?
    Ах, и да, знаю, но не скажу.

    ЛОЛ
    Просто место пересечение векторов не гарантирует столкновения. Более того столкновение может быть без пересечения. Я б тебе нарисовал оба случая, но мне лень.

    Я знаю, в виде точки мы получим примерное место поиска столкновений.

    Вообще, для самообучения сделаю все три способа:
    1) "Дедовский"
    2) Мой
    3) Твой


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 21:10 / #157
  18. Оффлайн

    Лякуша Уляпик

    Модераторы

    Сообщений: 6471

    MrKerbMan писал:
    в виде точки мы получим примерное место поиска столкновений.

    Не люблю людей... ну или не умею толком их готовить.

    23 апреля 2014 - 21:13 / #158
  19. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Знаешь, эту тему я создавал для вопросов, а не для "лени". Мог бы и объяснить...
    [attachment=9083]

    В прочем, твоя программа - твои правила, не буду лезть в чужую обитель со своей геометрией.

    Банальные отмазки. Я не говорил, что не хочу!

    Пока пошарю исходник Box2d...


    GLORY TO KOLOBKI!!!

    23 апреля 2014 - 21:21 / #159
  20. Оффлайн

    Лякуша Уляпик

    Модераторы

    Сообщений: 6471

    [attachment=9084]

    Дальше сам.

    Не люблю людей... ну или не умею толком их готовить.

    23 апреля 2014 - 21:45 / #160

Статистика форума, пользователей онлайн: 0 (за последние 10 минут)

---

Администраторы | Модераторы | Хорошие люди | Посетители | Новичок

Создано тем1919 Всего сообщений158029 Пользователей19249 Новый участникWaltersem
Последние сообщения с форума
  • Автор
    Тема в разделе: Новости
    Просмотров: 75803
    Ответов: 0
  • Автор
    Тема в разделе: Вопросы по игре
    Просмотров: 1577747
    Ответов: 12701
  • Автор
    Тема в разделе: В ангаре у Боба
    Просмотров: 9738
    Ответов: 55
  • Автор
    Тема в разделе: Технические вопросы
    Просмотров: 26104
    Ответов: 68
  • Автор
    Тема в разделе: Моды
    Просмотров: 2175
    Ответов: 2
    Все сообщения..
    Полный список последних сообщений
    Loading...

    Нашли ошибку?
    Вы можете сообщить об этом администрации.
    Выделив текст нажмите Ctrl+Alt