Вторник, 26 Ноября 2024, 00:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: Gnomov  
Физический движок
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
был не раз
Сейчас нет на сайте
"Механизм обработки столкновений"...
То, что происходит при столкновении - я описал в первом посте.
Как обработать столкновения и насколько глубоко они проникли друг в друга - это вообще отдельный вопрос, он тут не рассматривается.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг