04. 네 번째 수업: 나락의 폭주엔진! 가속도(Acceleration) 의 물리 렌더링

게임을 만들 때 화면에 찍힌 물체의 “좌표 거리 함수 ($f(x)$)” 하나만 서버에 틱! 하고 떨어져도, 컴퓨터는 속도와 가속도를 텍스트 미분 공식 하나로 알아서 분쇄 분해해 냅니다.

물리와 미분은 쌍둥이 형제입니다. 게임 프로그래머가 아는 변수는 시간에 따른 위치 공식 딱 이 베이스 1개뿐입니다.


1. 위치 $\to$ 속도 $\to$ 가속도 해킹 트리

  • STEP 1 [위치 함수 $x(t)$]: 우주선이 “3초 지났을 때 20m 앞 좌표에 있어요” 라는 위치/거리 맵 뼈대 파일입니다.
  • $\downarrow$ (미분 1스택 발동!) $\downarrow$
  • STEP 2 [속도 함수 $v(t)$]: 위치 함수를 시간($t$) 칼날 믹서기로 미분! 자동차 바늘 속도계(Velocity) 가 스폰됩니다!
  • $\downarrow$ (미분 2스택 연쇄 발동!) $\downarrow$
  • STEP 3 [가속도 함수 $a(t)$]: 이 속도 함수를 또 다시 시간($t$) 칼날 믹서기로 더블 미분! 최종 중력 압박 가속도(Acceleration) 엔진이 튀어나옵니다! 즉 위치 함수의 이계도함수 $x’‘(t)$ 입니다!
위치 -> 속도 -> 가속도로 연쇄 미분되는 게임 물리 엔진 해킹 단계도 및 극성 부호 간섭으로 인한 가속/감속 렌더링 그래픽 SVG

만약 드론이 하늘 높이 비행 중인 높이 포물선 함수 공식이 $y(t) = -5t^2 + 20t + 50$ (포물선 자유 락하식) 이라고 합시다. 코더는 드론의 떨어지는 물리 데미지 엔진을 이렇게 짜버립니다.

  1. 위치: $y(t) = -5t^2 + 20t + 50$
  2. 속도 (1차 미분 diff()): $v(t) = y’(t) = -10t + 20$ (아하! 속도 엔진이 점차 초당 10씩 깎이는구나!)
  3. 가속도 (2차 미분 더블 어택): $\mathbf{a(t) = y’‘(t) = -10}$ (아하! 중력 가속도 G 는 영구적으로 초당 마이너스 -10 상수 고정 데미지를 드론에 처박고 있었구나!)

2. 브레이크의 모순: “가속도 부호(-) 가 스피드(-) 와 동기화 되면? 역주행 대폭발!”

초보자들이 흔히 하는 착각이 있습니다. “위치 그래프 두 번 미분 쳤을 때 얻어낸 $\mathbf{a(t)}$ 가속도 숫자 부호 극성이 마이너스 (-) 면 차가 점점 브레이크가 밟혀서 무조건 느려지나요??” $\to$ 오답입니다!! 지옥불 역주행 다이브가 일어납니다!

우리가 자동차를 탔는데, 앞(동쪽) 으로 전진 액셀을 안 밟고 [브레이크] 를 밟은 채 [후진(마이너스) 기어] 를 쾅 박았습니다! 자! 내 원래 “속도 센서 방향” 도 마이너스$(-)$ 후진 중입니다! 그런데 이 상태에서 후진 “가속 페달(가속도)” 을 더 밟아서 마이너스$(-)$ 부스터 데미지를 또 처박았습니다!

  • 속도 방향 부호 $(-)$ $\times$ 가속도 데미지 방향 $(-)$
  • $= \mathbf{+}$ 강력 폭발 렌더링 부스트업!

극성 엔진 매크로: “가속도 부호값은… 원래 자동차가 달리고 있던 “속도 기어의 부호” 방향과 일치하게 밀어주는 놈이라면 [스피드 대폭발 증가!] 가속도 놈팽이가 달리는 방향 속도에 거꾸로 맞바람 저항으로 치고 들어오면 [감속 브레이크!]

이제 미분 이계도함수가 3D 우주물리 시뮬레이터를 완벽하게 제어할 지형 스캐너 툴임이 검증되었습니다. 두 스캐너 $f’, f’’$ 이 2개를 양손에 쥐고 쌍검무를 터트리며, 컴컴한 미지의 외계 산맥 지도 형상을 모니터 도화지에 오차 없이 선으로 스케치해 그리는 최강의 콤보를 5장에서 목도합시다!

서브목차