Использование «массы» в пуле

Извините, что задаю такой простой вопрос о пуле. Однако у меня возникла проблема. Вот установка:

У меня есть мир без гравитации. Когда я нажимаю клавишу, в центре мира создается поле размером 1x1x1. Когда я щелкаю правой кнопкой мыши, в позиции камеры создается прямоугольник размером 0,05 * 0,05 * 0,05, который «выстреливается» в направлении, которое вы смотрите. Здесь начинается проблема.

Когда маленький кубик попадает в большой куб, взаимодействие кажется неправильным. Вы бы расширили поле на 1/8000 размера другого, чтобы иметь очень небольшой эффект. И все же большой куб летит, как если бы он был с кубом того же размера. Я предположил, что это потому, что я создал оба объекта с одинаковой массой.

Чтобы подтвердить это, я применяю восходящую силу в 1 ньютон (или ту единицу, которую использует пуля). Оба объекта ускоряются с одинаковой скоростью.

Мой код для создания объектов выглядит следующим образом:

btMotionState *state = new btDefaultMotionState(btTransform(btQuaternion(0, 0, 0, 1), btVector3(0, 0, 0)));
btConvexHullShape* shape = new btConvexHullShape();
for(unsigned int i = 0; i < vertices.size(); ++i) {
shape->addPoint(toBt(vertices[i]));
}
shape->setMargin(0.01f);

btScalar mass = 1.f;
btVector3 inertia;
shape->calculateLocalInertia(mass, inertia);
shape->setMargin(0.01f);
btRigidBody::btRigidBodyConstructionInfo ci(mass, state, shape, inertia);
body = new btRigidBody(ci);

Я ожидаю, что btScalar mass = 1.f; линия виновник.

Должен ли я рассчитать массу моих предметов? Это достаточно просто для куба, но как насчет странной выпуклой формы? Есть ли способ получить пулю, чтобы сделать это для меня?

1

Решение

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

Да, вы должны предоставить массу. Считаете ли вы это или просто утверждаете, что «этот ящик весит 20 кг» — решать вам. На самом деле ожидание того, что кто-то другой рассчитает массу для вас, только усугубит вашу проблему, потому что вам придется указать материалы, плотность материала и распределение материала ваших объектов помимо его геометрии. Если вы хотите пойти по этому пути, есть множество других инструментов, которые помогут вам с такими расчетами. Но я уверен, что вы согласны с тем, что просто указывать массу методом проб и ошибок гораздо проще.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector