как удалить box2d maxVelocity? - PullRequest
4 голосов
/ 03 июня 2011

Я не знаю, есть ли такой параметр в box2D или нет, но когда я дублирую все числа в моих симуляциях сцены, получаю разные результаты, я просто симулировал маятник (статический бокс, соединенный с динамическим боксом с использованием Revoluteсоединения) и когда я умножил все значения в моей сцене на 32 (чтобы иметь одинаковый масштаб с моей игрой), он падал медленнее, чем нормальное состояние (и я также увеличил гравитацию).кажется, что когда маятник падает, он достигает максимальной скорости и не выходит за пределы этого.поэтому, когда он возвращается, он достигает половины высоты, с которой начал падать.кстати, я думаю, что это не вызвано трением, потому что я установил все значения сброса и трения на ноль, и кроме этой проблемы не возникало до масштабирования моей сцены.

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Изменить значение b2_maxTranslation в b2Settings.h

0 голосов
/ 03 июня 2011

Box2d моделирует с использованием итеративного решателя, и результат может отличаться для разных размеров объектов - это нормально. В руководстве написано, что лучший размер моделируемых динамических объектов составляет 0,1 - 10 и более 50 для статических тел. Кроме того, увеличение всех размеров не приведет к тому же движению в реальном мире. Например, представьте падающую сферу радиусом 1 метр с высоты 100 метров. Например, умножение его радиуса и высоты на 10, очевидно, даст разное время падения, потому что это зависит только от высоты.

Также я однажды попробовал nvidia physx. Я только что создал очень простую сцену - куб, падающий на самолет и подпрыгивающий. Куб был один метр на стороне. Сначала я моделировал с плотностью куба 10, и все было идеально. Затем я решил смоделировать железный куб и изменил плотность на 7200. Как вы понимаете, отскок ожидался полностью таким же, потому что параметр восстановления не изменился. Но симуляция была действительно уродливой - куб упал в самолет и подпрыгнул безобразно. Поэтому очень важно держать значения в рекомендуемом диапазоне.

...