Почему мой объект "тонет в земле"? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть довольно простая реагирующая трехволоконная установка, которая включает пушку. js физическую силу. В сцене есть чашка - которая моделируется как цилиндр, верхний радиус которого больше нижнего - который помещается на поверхность.

Когда я запускаю код, во время экрана загрузки все выглядит хорошо. Но когда начинает действовать физика, чашка внезапно «погружается» в землю. Это почему? Я не могу понять этого ...

Одна из моих теорий состояла в том, что "физическая форма" цилиндра не идентична "оптической форме", которая отображается, но даже тогда движение I наблюдать все еще не имеет смысла с любой разумной ограничивающей рамкой, которую я могу себе представить ...

Рабочий пример: https://codesandbox.io/s/amazing-proskuriakova-4slpq

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Лучший способ продвинуться вперед - это решить проблему использования пушки GH. Эта lib и cannon-es сейчас находятся в активном ведении. Между тем, я считаю, что выпуклый полигидрон также может сделать это безупречно, см .: https://codesandbox.io/s/r3f-convex-polyhedron-cnm0s

0 голосов
/ 26 марта 2020

Физика привередлива и действительно сложна в отладке, потому что вы часто пытаетесь интуитивно понять эффекты невидимой системы, воздействуя на любой гибридный вид, который у вас есть. более разумное значение, например 5, объект кажется вращающимся как сфера или какая-то другая форма ... поэтому я думаю, что ваша теория обоснована. Я не знаю, каково это решение, но я знаю, что единственный физический движок, которому я «доверяю» в пространстве js, за исключением очень простых симуляций, это боеприпасы. js. Его трудно использовать, но это действительно потрясающая библиотека качества AAA. https://threejs.org/examples/?q=phys#physics_ammo_break

Я бы начал с того, чтобы заставить работать куб и сферу ... как только вы убедились, что они работают, как и ожидалось ... в идеале, с использованием реальных единиц измерения мирового масштаба sh как куб 1x1x1, с массой 1. Используйте текстуру на сфере, чтобы вы знали, что она катится так, как вы ожидаете. Как только вы проверили работу простых примитивов, переходите к более сложной геометрии.

...