Войти
ПрограммированиеФорумФизика

Несколько вопросов от новичка

#0
(Правка: 6:36) 6:36, 19 июня 2019

Вот я и подошёл к реализации физики и у меня возник вопрос: для того, чтобы от первого лица перемещаться по локации и упираться в объекты, это называется коллизии?
И прикручивать камеру к капсуле главного героя нужно ручками или можно воспользоваться возможностями физического движка? Если можно, то как называется это сустав?
P.S. Физический движок Bullet Physics.


#1
(Правка: 6:51) 6:50, 19 июня 2019

collision detection — это обнаружение точек контакта между геометриями. collision response — это их разрешение. взаимодействие персонажа с уровнем в общем называется character physics. joint'ы обычно нужны там, где влияние тел двустороннее, то есть если бы у тебя персонаж таскал камеру, и в то же время камера таскала персонажа, это был бы joint. иначе просто считай положение камеры относительно персонажа как хочешь, нет смысла грузить этим солвер двига.

#2
(Правка: 7:11) 7:11, 19 июня 2019

Suslik
А что нужно для толкания объектов? И как правильно оно делается? Учитываются вес ГГ и объекта, тяжелее себя не сдвинет? Или сила толкания при движении?
Например, идёшь прямо на стул, он стал двигаться или упал в зависимости от скорости движения.

#3
(Правка: 7:17) 7:16, 19 июня 2019

Daniil Petrov
разные модели существуют, многие проекты делают по-разному. я делаю так обычно, параметризую контроллер двумя величинами: вектор требуемой скорости (в зависимости от шага или бега, нулевой вектор для покоя) и коэффициент ускорения (как быстро персонаж пытается достичь требуемой скорости). тогда модель движется по такому закону:

void CharacterController::Update(dt)
{
  vec3 velocity_delta = (dst_velocity - player->velocity);
  player->ApplyForce(velocity_delta * acceleration);
}
#4
9:53, 20 июня 2019

Daniil Petrov
> А что нужно для толкания объектов? И как правильно оно делается? Учитываются
> вес ГГ и объекта, тяжелее себя не сдвинет?

ох.. хочешь поиграться с физикой - начни с Box2d. И инфы море, и API понятный, ну че сразу на форум то лезть и глупые вопросы строчить?

Есть деление объектов на виды: статические, кинематические, динамические. Все это ради перфоманса, который физика жрет немерено. А вот чем эти виды особенны - читай Box2d. В Bullet Physics почти тоже самое, но дока там скудноватее, имхо.

#5
10:49, 21 июня 2019

slepov
Благодарю за подсказку!

ПрограммированиеФорумФизика