Физический движок
|
|
SilverOverlord | Дата: Четверг, 28 Марта 2013, 17:47 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Собственно есть потребность сделать физический движок (да, я знаю, что есть havok и ещё миллион уже готовых).
Вот я думаю, насколько разумна такая идея: Есть всякие физические тела, они как-то двигаются в пространстве. У каждого есть коэффициент жёсткости. Когда два тела сталкиваются (то есть, пересекают друг друга), то по известной формуле F=kl вычисляются силы, которые будут действовать на оба тела. Затем все силы, действующие на тела, складываются для каждого тела, и соответственно меняется их скорость. Я вижу тут такую нехорошую проблему: Если коэфф. жёсткости маленький, то тела будут заметно влезать друг в друга. Если коэфф. жёсткости большой, то при пересечении двух тел, из-за того, что в компьютерном мире движение происходит не непрерывно, а N раз в секунду, они могут войти друг в друга довольно глубоко (глубже, чем в реальном мире), и тогда сила будет большой, тела сильно разгонятся.
|
|
| |
EchoIT | Дата: Четверг, 28 Марта 2013, 18:12 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Цитата Я вижу тут такую нехорошую проблему: Если коэфф. жёсткости маленький, то тела будут заметно влезать друг в друга. Если коэфф. жёсткости большой, то при пересечении двух тел, из-за того, что в компьютерном мире движение происходит не непрерывно, а N раз в секунду, они могут войти друг в друга довольно глубоко (глубже, чем в реальном мире), и тогда сила будет большой, тела сильно разгонятся. Эмм... Это вроде зависит от системы коллизий...
Долгожданный анонсик: State of War
|
|
| |
Undead | Дата: Четверг, 28 Марта 2013, 18:46 | Сообщение # 3 |
NeoAxis User
Сейчас нет на сайте
| Цитата (SilverOverlord) Если коэфф. жёсткости маленький, то тела будут заметно влезать друг в друга. Если коэфф. жёсткости большой, то при пересечении двух тел, из-за того, что в компьютерном мире движение происходит не непрерывно, а N раз в секунду, они могут войти друг в друга довольно глубоко (глубже, чем в реальном мире), и тогда сила будет большой, тела сильно разгонятся. CCD в помошь. А вобще на кой оно тебе нужно? Возьми ODE или Bullet, они OpenSource. Нормальный солвер написать задача очень не простая.
Вcем зла.
|
|
| |
SilverOverlord | Дата: Четверг, 28 Марта 2013, 19:11 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Цитата (EchoIT) Эмм... Это вроде зависит от системы коллизий... Что такое "система коллизий"?
|
|
| |
Undead | Дата: Четверг, 28 Марта 2013, 19:47 | Сообщение # 5 |
NeoAxis User
Сейчас нет на сайте
| Цитата (SilverOverlord) Что такое "система коллизий"? EchoIT наверное имел в виду алгоритм обработки столкновений(напр. AABB) Найди учебник по механике для вузов. Он тебе будет хорошим помощником.
Вcем зла.
|
|
| |
SilverOverlord | Дата: Пятница, 29 Марта 2013, 08:48 | Сообщение # 6 |
был не раз
Сейчас нет на сайте
| "Механизм обработки столкновений"... То, что происходит при столкновении - я описал в первом посте. Как обработать столкновения и насколько глубоко они проникли друг в друга - это вообще отдельный вопрос, он тут не рассматривается.
|
|
| |