논문 리뷰/간단 리뷰

Position Based Dynamics (PBD)

남하욱 2024. 4. 29. 23:21

이 논문은 2006에 VRIPHYS라는 곳에서 발표된 논문이다. top tear 학회에 발표된 논문은 아니지만, 이후 많은 곳에서 이 기술을 사용하여 reference도 되게 많은 물리 기반 시뮬레이션의 기반이 되는 논문이다.
 
논문의 원본은 첨부 하였고, 실행 영상이 유튜브에 있는데 오래된 논문이라 퀄리티는 낮다. (참고 정도로 보면 될듯 하다)

posBasedDyn.pdf
2.72MB

 
유튜브 링크 : https://www.youtube.com/watch?v=j5igW5-h4ZM&list=PLP3DwASLYl-kloNdWUp6amceoHdKIn-jH


요약

전통적으로 뉴턴 제 2법칙을 이용하여 힘으로 가속도와 속도를 계산하는 방식이 이 논문 전에 물리 기반 시뮬레이션에서 주류였다. 하지만, 이 방식은 time step도 짧게 해야해서 계산도 오래 걸리고, overshooting 등 불안정한 부분이 많았다.
 
이 논문은 constraint projection이라는 방법을 이용하여 내부 힘들을 모방하여, 실제와 비슷하게 보이도록 계산하는 방식을 이용한다. 이 방법은 속도를 직접 계산하지 않고 올바른 위치에 particle들의 position을 직접 움직이는 방식이다.
 

장점

힘 기반 방식에 비해 안정적이고, 계산이 빠르며, 여러 작용들을 constraint를 통해 쉽게 구현할 수 있다.


Overview

이 논문은 위의 sudo code대로 동작하며, 크게 다음의 동작을 거친다
※ 시뮬레이션은 모두 particle로 이루어져 있고, particle의 위치를 실제로 움직이는 방식이다.

  1. 외부힘의 작용을 계산하여 각 particle들 position 추정값 p_i 들 구함
  2. 움직이기 전 position x_i와 외부힘만 작용한 position p_i를 통해 충돌 constraint들 생성
  3. 모든 constraint를 순서대로 적용하면서 외부힘만 작용했던 추정값인 p_i를 update
  4. 내부힘도 고려한 position값 p_i를 통해 진짜로 particle들의 속도, 위치 값들을 update

 
디테일은 PBD 디테일 설명 링크에 정리 되어 있음