본 프로젝트는 JGL2 라이브러리를 사용하여 C++로 구현한
3D 천(Cloth) 시뮬레이션 프로그램입니다.
천을 입자(Particle)와 스프링(Spring)의 집합으로 모델링하여
질량-스프링 동역학 기반의 물리 시뮬레이션을 수행하며,
평면 및 구 충돌체와의 상호작용을 지원합니다.
실시간 렌더링과 사용자 입력을 통해
천의 물리적 거동을 직관적으로 관찰할 수 있습니다.
컴퓨터 그래픽스에서 Cloth-Simulation은,
다수의 입자를 스프링으로 연결한 Mass-Spring Model을 통해 근사적으로 표현할 수 있습니다.
각 입자는 외력(중력, 감쇠력, 스프링 힘)을 받아 움직이며,
시간 적분을 통해 위치와 속도를 업데이트합니다.
충돌체와의 상호작용은 침투 방지 및 감쇠 처리를 통해 안정적인 시뮬레이션을 구현합니다.
- Language: C++
- Graphics Library: JGL2
- Mass-Spring 기반 천 시뮬레이션
- Plane / Sphere collider 지원
- 실시간 렌더링
- 사용자 입력 기반 파라미터 조정
- 천을 구성하는 기본 단위
- 위치, 속도, 질량, 외력 정보를 가짐
- 시간에 따라 물리 상태를 업데이트
- 두 입자를 연결하는 요소
- 후크의 법칙(Hooke’s Law)을 기반으로 힘 계산
- 구조 스프링 및 전단 스프링 구현 가능
- 천과의 충돌을 처리하는 객체
- Plane Collider
- Sphere Collider
- 특정 입자의 고정 여부를 토글하여 고정점 설정 가능
- 슬라이더를 통해 시뮬레이션 파라미터 실시간 조절
- Spring stiffness
- Damping coefficient
- Collision damping
| Parameter | Description |
|---|---|
| alpha | 충돌 시 감쇠 계수 |
| ks | 스프링 강성 계수 |
| kd | 감쇠 계수 |
| rows | 천 격자의 행 개수 |
| cols | 천 격자의 열 개수 |