간단한 3D 게임 물리 엔진을 구현했습니다. 이미 적절한 충돌 감지가 이루어 졌으므로 이제 충돌 응답 부분을 찾으려고합니다. 충돌 후 속도를 계산하기 위해 임펄스 기반 방법을 사용하고 있습니다. 이것은 꽤 잘 작동하지만 신체가 계속 침투하는 것을 완전히 막지는 못합니다. 그래서 침투를 해결하기 위해 추가 코드가 있습니다. 현재는 접촉 깊이의 절반으로 접촉 법선을 따라 몸체를 이동합니다. 첫 번째 몸체는 접촉 법선 방향으로, 두 번째 몸체는 반대 방향으로 이동합니다.
대부분의 경우 괜찮지 만 몇 가지 바람직하지 않은 영향이 있습니다. 예를 들어 좁은 복도와 그 안에서 움직이는 물체를 상상해보십시오. 물체가 복도의 벽 중 하나에 닿으면 관통 해상도가 반대쪽 벽으로 이동 한 후 다음 프레임에서 다시 첫 번째 벽으로 이동합니다. 그 효과는 물체가 벽 사이에서 정말 빠르게 진동하는 것입니다.
내 질문은 침투를 해결하는 더 좋은 방법이 있는지 여부입니다. 아마도 몸을 움직이지 말고, 임펄스 계산에 더하여 속도를 조정하여 서로를 향한 움직임을 멈추고 다음 프레임에서 침투가 해결됩니다. 나는 단지 여기에서 추측하고있다. 어떤 아이디어?