type handling
type handling은 constraint type 두 경우에 대해서 다음과 같이 한다
- type이 equality : 항상 projection 진행
- type이 inequality : C(p1, p2, ... , pn) < 0 에만 projection 진행
※ constraint type
- equality : constraint function이 0을 만족해야 함
- inequality : constraint function이 0보다 크거나 같아야 함
stiffness parameter k handling
물체의 stiffness k 는 k ∈ [0 ... 1] 을 만족한다.
가장 쉬운 방법은 앞서 구한 Δp에 k를 곱하여 인위적으로 projection을 만족하지 않게 하는 것으로 물체가 쉽게 늘어나게 한다. 하지만, 이 방법은 k의 영향이 non-linear 하기 때문에 문제가 있다.(iteration 하면서 나오는 문제가 non-linear)
대수학적 trick을 이용해서 다음과 같은 k'를 이용하여 k에 linear dependent하게 하고, n_s에 독립적이게 한다.
그러나, 여전히 stiffness는 time step에 dependent하다는 문제가 있다. 그래서, Real time 환경에서는 일반적으로 이 dependency가 문제가 되지 않는 고정된 time step을 사용한다.
'논문 리뷰 > Position Based Dynamics' 카테고리의 다른 글
[Position Based Dynamics] 3.4. Collision Detection and Response (1) | 2024.04.14 |
---|---|
[Position Based Dynamics] 3.3. Constraint Projection (2) (0) | 2024.04.11 |
[Position Based Dynamics] 3.3. Constraint Projection (1) (0) | 2024.04.02 |
[Position Based Dynamics] 3.2. The Solver (0) | 2024.03.19 |
[Position Based Dynamics] 3.1. Algorithm Overview (0) | 2024.03.10 |