ок
Suslik
спасибо за статью
интересно еще узнать, как можно повысить жесткость связей.
только увеличением числа итераций?
LowPolyMan
посмотри на скрин с шариками. их там 5000, они вообще не сжимаемы. что меня радует в этом методе, так это то, что жёсткости в нём мне было всегда достаточно :)
Suslik
а для шариков соединенных палочками разве достаточно жесткости, чтоб они вели себя как твердое тело, а не как желе
http://www.gamedev.ru/files/images/substance2_2010-02-26_17-48-35-90.jpg
LowPolyMan
LowPolyMan
> а для шариков соединенных палочками разве достаточно жесткости, чтоб они вели себя как твердое тело, а не как желе
вполне. я ж специально сделал, чтобы жидкость помягче была.
"Шарики с палочками" напомнили World of goo)
Suslik
Спасибо большое за статью. Я читал ту статью про "Хитмана", а теперь есть ещё одна, очень хорошая.
Я сейчас как раз пишу свой физический движок на этом методе и мне это очень поможет.
А минусы перед Velocity-based методом имеются?
Кстати, http://www.gamedev.ru/code/articles/?id=4193 + http://www.gamedev.ru/community/gamedev_lecture/articles/?id=26
Чего в них нет, что есть в этой?
За статью спасибо. Я сам далек от физики, но ради расширения кругозора прочитал. Интересно и доступно.
XProger
По идее все есть, но тут более доступно. ИМХО
XProger
> Чего в них нет, что есть в этой?
так метод, в общем-то, не мой, любой желающий может найти в сети по нему информацию. мне не очень нравится стиль изложения в тех двух статьях. плюс обе они построены на статье Advanced Character Physics, которая мне решительно не нравится, я свою полностью из головы стряпал.
Suslik
А чем тебе не нравится статья "Advanced Character Physics"? Я про неё и говорил.
Я может чего не понял, но сдается мне, что deltaPosition - это и есть velocity, просто не в единиц в секунду, а в единиц за итерацию.
Кстати, тут вопрос назрел, что делать если время между итерациями дико колеблется? Переводить deltaPosition в Velocity и отказываться от Position-based метода? )
ITIhonov
> Я может чего не понял, но сдается мне, что deltaPosition - это и есть velocity, просто не в единиц в секунду, а в единиц за итерацию.
ну так и есть
XProger
> Кстати, тут вопрос назрел, что делать если время между итерациями дико колеблется? Переводить deltaPosition в Velocity и отказываться от Position-based метода? )
выхода два:
либо ждать, пока время с предыдущего апдейта физики превысит время константного шага и только тогда обновлять. либо ввести во все формулы время, только не в абсолютных единицах, а в относительных, от этого самого константного шага. предположим, если времени прошло две относительные единицы, положение смещаем не на deltaPos, а на 2 * deltaPos.
недосток первого подхода - физическое время может идти не очень-то равномерно, зато численной схеме живётся хорошо и уютно.
второму методу посвящена нехилая глава моего бакалаврского диплома, там всё не так солнечно. если оригинальная использованная верле-схема имеет второй порядок точности по времени, то при таком вот насиловании он вырождается в первый, по факту убивая халявную точность метода.
я бы рекомендовал организовать цикл моделирования таким образом, чтобы шаг по времени был постоянным.
Тема в архиве.