[ Cloth Simulation & Collision ] 05. Local Optimization for SDF
·
물리 기반 시뮬레이션/Cloth Simulation
⚙️ Loal Optimization for SDF(Signed Distance Field)✅ NVIDIA의 Local Optimization for Robust Signed Distance Field Collision 논문은 SDF를 이용한 충돌처리에서 삼각형 Cloth에 대해 Face와 Edge 사이의 접촉을 연속적인 방식으로 생성하는 방법을 다룬다.➡️ 이는 이산화된 위치에서 접촉을 생성하던 이전 접근법과는 다르게, 실제 정점이 존재하지 않는 Face와 Edge 내부에 접촉을 생성하기 때문에, 면에 대한 충돌처리가 가능해진다.🎯 이때, Projected Gradient Descent와 Frank-Wolfe 방법과 같은 로컬 최적화를 위한 수치 해석적 방법을 사용한다. 📏 Projected Gra..
[ Cloth Simulation & Collision ] 04. 천 자가 충돌 (Cloth Self-Collision)
·
물리 기반 시뮬레이션/Cloth Simulation
👕 Cloth Self-Collision하나의 천에서 서로 겹치거나, 부딪힐 때 면을 통과하지 않도록 하는 충돌 처리 방법이다.❗ Self Collision이 적용되지 않은 천에서는 서로 부딪혔을 때 통과하는 등의 현상이 발생할 수 있다. ➡️ 따라서, 사실적인 천을 시뮬레이션 하기 위해서는 이러한 SelfCollision이 필요하다. 이러한 Self Collision은 다음과 같이 다섯 가지 방법을 통해 구현된다.1. hash를 이용한 각 정점 접근2. 떨림 현상을 피하기 위한 rest distance 사용3. Iterator Solver와 CCD가 아닌 Sub-Stepping 사용4. 최대 속도 제한5. 안정적인 천-천 마찰 사용🔴 Particle Hash무작위로 배치된 정점들 사이에서, 일정 거..
[ Cloth Simulation & Collision ] 03. 충돌 (History-Based Collisions)
·
물리 기반 시뮬레이션/Cloth Simulation
💥 History-Based Collision이전의 Level Set Based Collision을 보완한 충돌 처리 방법으로, 다음 위치를 충돌 법선 방향으로 투영하여 제한하던 이전 방법과는 다르게, 이는 원래의 속도를 그대로 투영하여 계산한다. 이는 다음 두 단계에 걸쳐 계산된다. 현재 위치 - 충돌 물체의 표면 - 다음 위치🔎 충돌 감지 (Collision Detection)앞에서 언급했듯이, 현재 속도를 법선 방향으로 투영하여 거리를 계산하는 이전 방법과는 다르게, 속도에 따른 다음 위치를 계산한 뒤, 이것과 표면으로부터의 수직 거리를 계산한다. ➡️ 이때, 계산한 거리 값이 음수라면 충돌을 의미한다.📌 충돌 처리 (Collision Response)충돌이 감지되면 다음과 같이 두 단계에 걸..
[ Cloth Simulation & Collision ] 02. 레벨 셋 충돌 (Level Set Collision)
·
물리 기반 시뮬레이션/Cloth Simulation
💥 Level Set Collision✅ 레벨 셋 충돌이란, 레벨 셋 기법을 사용하여 충돌 여부를 판단하는 방법이다.➡️ 이때, 레벨 셋 기법은 경계면이 이동할 때 수치적인 기법을 통해 경계면을 추적하는 방법이다.🔎 충돌 감지 (Collision Detection)표면으로부터의 수직 거리를 나타내는 PI 값의 부호를 이용해 충돌 여부를 판단한다. 🎯 2차원에서의 반지름 2를 가지는 원을 예시로 다음과 같다:위의 그림에서, 각 점 A, B, C는 원의 외부, 표면, 내부에 위치해 있다.이때, 각 점의 $\phi$ 값을 계산해 보면, A는 양수, B는 0, C는 음수 값을 가지는 것을 확인할 수 있다.이를 통해 $\phi$ 값이 음수일 경우에 충돌을 의미한다는 것을 알 수 있다.📏 표면으로부터의 수..