in 포스트

유니티 웨이브, 승리의 여신: 니케 스파인 물리 구현 발표에서 잘못된 부분 정정

유니티 웨이브에서 발표한 승리의 여신: 니케의 물리 구현에서 조금 잘못 설명한 부분과 갱신된 정보가 있어서 정정합니다.

  • 발표 당시, 정확도를 개선할 수 있는 알고리즘으로 룽게-쿠타를 설명하려 했는데 오일러-크로머로 잘못 설명했습니다. 오히려 오일러-크로머는 기존에 구현한 알고리즘에 적용되어 있었습니다.

룽게-쿠타 중에서도 RK4(4th order Runge-Kutta)를 소개하려 했는데, 발표자료에 실수가 있어서, 발표 마지막에 룽게-쿠타 알고리즘 설명할 곳에 오일러-크로머 방법을 설명했네요.

  • RK4 알고리즘을 적용해도 큰 오버헤드가 없어서, 발표 이후, 니케에는 기존 알고리즘 대신, RK4 알고리즘이 적용되었습니다.

RK4 알고리즘을 적용하면, 그렇지 않은 스프링 물리 구현보다 메모리와 CPU 타임을 더 소모하게됩니다. 그런데 니케의 캐릭터 물리는 C# 잡 시스템과 버스트 컴파일러를 통해 구현했기 때문에 프로파일링 결과 놀랍게도 거의 성능 차이가 없었습니다.

즉, 오일러 크로머를 사용하든, RK4를 사용하든 오버헤드가 매우 작아서 RK4를 적용하여 출시 시점의 니케 물리는 발표 시점보다 더욱 부드럽게 개선되었습니다.