Game/Physics & Math
Game Physics Engine Development - Chapter 5 : 일반적인 힘 가하기
Gyutae Lee
2018. 9. 10. 21:04
Chapter 5. 일반적인 힘 가하기
- 달랑베르의 원리 (d'Alembert's principle) : 물체에 여러가지 힘이 동시에 작용하고 있을 때 이들 힘을 다 더한 총합의 힘 하나로 대체해서
계산해도 된다는 원리이다. 달리 표현하자면 벡터의 덧셈 연산을 이용해 힘을 다 더한 다음
그 결과 얻은 힘 한 개만 적용하면 된다.
** 이를 실제로 적용하기 위해서는 벡터와 힘 누적기(force accumulator)를 이용한다.
** 매 프레임마다 영 벡터(zero vector)에 벡터 덧셈 연산을 이용해 물체에 작용하는 힘들을 하나씩 더해준다.
** 덧셈의 최종 결과물이 물체에 작용하는 힘이 된다.
** 힘을 더해주는 과정은 적분하기 전에 다 끝내야한다.
- 긴 시간동안 계속 작용해야 하는 힘인 경우 자동화 메커니즘이 있으면 좋다.
- 이런 힘을 등록해두면 관리가 좀 더 편할 수 있다.
- 힘과 입자를 등록해두면 매 프레임마다 해당 입자에 필요한 힘만큼은 자동으로 더해주게 된다. --> 이를 '힘 발생기(force generator)'라고 하자
- 힘이 복잡한 이유는 힘이 '동적'이기 때문이다.
- 드래그 힘 발생기 (drag force generator) : 일반적인 게임에서는 단순화된 모델을 사용하기 때문에
드래그가 물체의 스피드와 스피드의 제곱에 비례한다고 가정하고 계산한다.
- 힘 발생기를 사용하면 중력에 의한 가속도와 댐핑을 힘 발생기로 대체할 수 있다.