[Position Based Dynamics] 1. Introduction
Abstract
computer graphics에서 dynamic system 시뮬레이션에 대한 가장 대중적인 접는 방식은 힘 기반이다. 내부, 외부 힘이 축적되고 뉴턴 2법칙을 이용하여 이 힘으로부터 가속도를 계산한다. 시간 적분(time integration) 방식을 이용하여 속도를 계산할 수 있고, 이 속도를 통해 물체의 위치를 계산할 수 있다. 몇 개의 시뮬레이션 방식은 충격량(impulse) 방식을 이용하여 속도를 바로 계산할 수 있다. 이 논문에서 제시하는 방식은 속도를 계산하는 방식도 생략하여 바로 위치를 계산할 수 있다.
이 position based 접근 방식의 주요한 장점은 조작 가능성(controllability)이다. 따라서, 힘 기반 방식에서 일어나는 explicit integration 체계의 overshooting 문제를 피할 수 있다. 또한, 충돌 제약 조건을 쉽게 처리할 수 있고 유효한 위치에 point를 projection하여 침투를 완전히 해결할 수 있다.
이 논문에서는 이 positon based 방식의 강점과 이점을 보여주기 위해서 실시간 천(cloth) 시뮬레이터를 보여준다.
computer graphics에서 물리 기반 애니메이션 분야의 연구는 여러 물리적 현상(강체 역학, 물체의 변형, 유체 흐름 등)을 시뮬레이션 하기 위한 새로운 방법을 찾는 것에 초점을 둔다. 특히, 특정 상황에 맞춘 방법을 찾는 것을 목표로 한다.
기존의 computational science에서 사용하는 방법들은 computer graphics에서 잘 사용되지 않는다. computational science가 정확성(accuracy)에 초점을 맞추는 것에 반하여, computer graphcis에서의 physically based animation의 경우 계산의 정확성보다는 사람이 눈으로 보았을 때 "꽤 괜찮게 보이는 것"에 초점을 맞춘다.
동적인 물체를 시뮬레이션 하는 전통적인 방법은 힘을 이용하는 것이었다. 이 방법에서는 각 time step의 시작 시점에 내부 힘과 외부 힘이 누적된다 (내부 힘 : 탄성력, 점도, 압력 등 , 외부 힘 : 중력, 충돌력 등). 뉴턴 제 2법칙에 의해 힘은 질량, 가속도와 관련이 있기 때문에 이 힘을 밀도나 vertex의 덩어리 질량을 이용하여 가속도로 변환한다. 그러면 가속도를 알기 때문에 시간 적분(Time Integration) 방식을 이용하여 가속도를 통해 속도를 계산할 수 있고, 이 속도를 통해 이동한 위치도 계산할 수 있다.
간단히 과정을 정리하자면 다음과 같다.
- 각 time step 시작 시점에 힘을 안다.
- 뉴턴 제 2법칙을 이용하여 힘에서 가속도를 구한다
- 가속도를 통해 적분으로 속도를 구한다.
- 속도를 통해 이동한 위치를 구한다.
힘 대신 충격량(Impulse)을 이용할 수도 있다. 충격량을 이용하면 가속도를 구할 필요가 없기 때문에 적분을 통해 속도를 구하는 과정 하나(위의 3번 과정)를 생략할 수 있다 ( I=Δp= mΔv). 하지만, 이 방식은 매우 짧은 시간에 순간적으로 큰 힘을 주어야 한다. time step을 줄여야 하기 때문에 시뮬레이션이 느리다.
이 논문에서 제시하는 Position Based Dynamics(PBD)는 속도를 통해 위치를 구하는 과정(위의 4번 과정)도 생략한다. 즉 속도를 계산하지 않고 바로 위치를 계산한다.
Time Integration
- Explicit Method : system의 현재 상태를 이전의 상태를 사용하여 계산하는 방식. Euler 방식이 대표적
- Implicit Method : 현재 상태와 관련된 함수를 사용하여 현재 상태를 구하는 방식. 이를 위해 매 step마다 방정식을 풀어야 함(빠르지 않음)
computer graphics 특히 컴퓨터 게임에서는 vertex의 위치를 직접 제어하는 것이 종종 바람직하다. 유저는 운동하는 객체에 vertex를 부착하거나, 객체 외부에 항상 vertex가 있는지 확인하는 등의 조작을 원할 수 있다. 이 논문에서 제안하는 Position Based Dynamics(PBD)는 위치에서 직접 작동하기 때문에 이러한 조작을 쉽게 할 수 있다. 또한, PBD를 사용하면 시간 적분(Time Integration)을 직접 제어할 수 있기 때문에(사용하지 않기 때문에), explicit time integration과 관련된 overshooting과 energy gain problem을 방지할 수 있다.
※ overshooting(in 물리) : 어떤 균형 상태 값이 충격을 받으면 다른 균형 상태 값으로 움직이는데, 수치가 예상치 보다 더 많이 측정되는 경우를 말함.
PBD의 Main Idea
- 힘 대신에 제약조건(Constraint)를 사용
- 시간 적분(Time Integration) 대신에 Constraint Projection을 사용
PBD의 장점
- Explicit integration을 제어하고(사용하지 않고) 전형적인 불안정성 문제(overshooting 등)를 제거함
- 객체의 vertex 및 객체의 part를 시뮬레이션 도중 직접 조작할 수 있음
- 이 논문에서 제시한 제약조건 공식(constraint function)을 통해, position based 방식에서의 일반적인 제약조건들을 처리할 수 있음
- explict position based solver는 이해하고 구현하는 것이 쉬움