저는 강체 시뮬레이션을 잠시 동안 진행해 왔지만이 문제를 어떻게 다룰 지 아직 모릅니다. (이산 충돌 검출을 사용하고 각 접점의 임펄스를 풀기 위해 LCP를 사용합니다.)강체 동역학 침투 보정
고정 된 볼 (C를 중심으로 한 반구)과 볼의 가장자리에있는 입자를 상상해보십시오. 입자가 표면에서 그릇 안쪽으로 굴러갑니다. 그리고 약간의 시간 단계에서 접점 A가 있어야하며, LCP 해석기는 입자의 속도를 벡터 CA에 수직으로 만드는 결과 임펄스를 제공합니다. 그러나 한 번의 타임 스텝을 업데이트 한 후에는 입자가이 속도를 따라 조금씩 움직이면서 실제로 사발에서 빠져 나옵니다. 몇 가지 시간 간격을두고 상황이 악화됩니다. 입자 대신 입방체를 사용하면 입방체가 관통하여 그릇을 통해 가라 앉을 수 있습니다.
그래서 이것을 피할 수있는 방법이 있습니까? 임펄스 방법은 완벽하지 않으며 충돌 응답 후에도 침투가있을 수 있습니다. 나는 어떻게해서 든 침투를 교정 할 필요가 있지만 접촉점에서 표면을 따라 단순히 물체를 움직이는 것은 새로운 관통을 생성 할 수 있기 때문에 좋은 생각이 아닙니다.
편집 :
그것은 그릇이 너무 얇은 것 또는 시간 간격이 너무 큰 존재의 문제가 아니다. 그 이유는 오일러의 정수가 원 대신 폴리곤을 생성하기 때문입니다. 그리고 다른쪽에 세 번째 객체가 있으면 객체 2와 3에 새로운 침투가 생기기 때문에이 두 객체의 위치를 수정할 수 없습니다. 나는 한 가지 방법은 침투 깊이에 기초한 약간의 탄성력을 더하는 것이라고 생각합니다. 그러나 그것은 충분히 깔끔하지 않습니다.
Bullet 소스 코드를 살펴보고 작업 해보는 것이 좋습니다.
분자 역학 패키지에서 어떻게 해결되는지 확인할 수 있습니다. 앰버 또는 그립 (GROMACS). – Andrey
"강체 동역학 보급" –
타임 스텝을 줄이면 침몰이 감소합니까? – Zouch