물리 엔진에서의 충돌 처리

물리 엔진에서의 충돌 처리는 3 가지 정보를 필요로 합니다. 1. Contact point : 충돌점입니다. 2. Contact normal : 충돌해서 튕겨나올 방향을 결정합니다. 3. Penetration depth : 얼마나 침투했는지를 나타냅니다. 제가 생각하는 간단하고, brute force 한 방법은 SAT (Separating Axis Theorem) 로 충돌여부를 판정하고, 최소 분리 edge (3d 에선 plane) 를 구해서 penetration vector 를 구하고,…

Continue reading →

Soft Constraints

이 문서는 Erin Catto 의 GDC 2011 발표 자료인 GDC2011_Catto_Erin_Soft_Constraints.pdf 에 개인적인 설명을 곁들인 것입니다. 이해가 안가시는 부분이 있으면 위의 발표자료를 먼저 읽어주세요. Damped Harmonic Oscillator Soft constraint 를 설명하기에 앞서 우선 감쇄 조화 진동자 (Damped Harmonic Oscillator) 를 설명하겠습니다. 질량 m 을 갖고, 감쇄 진동 운동을 하는 입자의 전형적인 미분방정식은 아래와 같습니다.    …

Continue reading →

Constrained Dynamics in a Nutshell

물체의 위치나 각도의 자유도를 component 별로 나타낸 것을 DOF (Degree Of Freedom) 이라고 합니다. 물체들 사이의 DOF 를 제한시키는 운동을 기술하는 것을 Constrained Dynamics 라고 하는데요. 이 운동의 핵심은 외부로부터 영향을 받는 힘들이 constraint 를 위반하지 않도록 내부적인 힘을 구해서 적용시키는 것입니다. 간단하게 작용 반작용의 법칙을 떠올리시면 됩니다. 실제 계산에 쓰이는 방정식들은 뉴튼 운동방정식인 에서…

Continue reading →