LabHub
배우기 러닝패스 코스

물리 엔진의 뼈대 · 적분기 · 실습

세 적분기의 에너지를 견준다

LabHub 에서 이어서 보기

목표

같은 물리 법칙을 세 가지 방법으로 이산화해 굴려 보고, 그 차이가 그림으로 드러나게 만듭니다. 이 실습이 끝나면 물리 엔진이 왜 특정 적분기를 고르는지 근거를 가지고 말할 수 있게 됩니다.

왜 중요한가

물리 엔진의 겉모습은 충돌과 마찰이지만, 그 아래에서 매 걸음 돌고 있는 것은 적분기입니다. 그리고 적분 방법은 오차만 내는 것이 아니라 계의 성질을 바꿉니다. 명시적 오일러로 용수철을 굴리면 에너지가 매 걸음 정확히 (1 + dt²) 배씩 늘어나 몇 초 만에 발산합니다. 힘 계산이 틀린 것이 아니라 순서가 틀린 것입니다.

두 줄의 순서만 바꾼 반암시적 오일러는 같은 비용으로 안정적입니다. 게임 물리 엔진이 이것을 쓰는 이유이고, 이 사실은 숫자를 직접 뽑아 그래프로 보면 잊히지 않습니다. 그래서 이 실습은 결과를 CSV 로 남기고 한 장의 PNG 에 겹쳐 그립니다.

단계

1. /root/integrator 에 도구 상자를 놓습니다.
2. /root/integrator/out/euler.csv — 명시적 오일러.
3. /root/integrator/out/semi.csv — 반암시적 오일러.
4. /root/integrator/out/verlet.csv — 속도 베를레.
5. /root/integrator/out/energy.png — 세 에너지 곡선을 한 장에.
6. /root/integrator/out/06-dt.txt — dt 를 바꾼 증가율.
7. /root/integrator/out/damped.csvdamped.png — 감쇠를 힘으로.

참고

단계 7개

  1. 그리기 도구 상자를 놓는다
  2. 명시적 오일러
  3. 반암시적 오일러
  4. 속도 베를레
  5. 세 곡선을 한 장에
  6. dt 를 바꾸면 얼마나 나빠지나
  7. 감쇠는 힘으로 넣는다