최근 혼자서 구현 해 본 물리엔진 이다.
DirectX로 렌더링 했으며 물리엔진 자체는 lib 파일 형태로 구현 하였고 DirectX와 무관하므로
OpenGL에도 쓸 수 있다.
충돌체크 알고리즘은 SAT 및 GJK/EPA 가 주로 쓰였으며 그 밖에도 구-구, 구-캡슐, 박스-캡슐, 알고리즘 등이 쓰였다.
충돌처리는 SI를 활용 하였고 물체의 렌더링은 메쉬를 이용했으나 너무 밍밍하여 겉에 충돌체크 경계 ConvexHull을 TriangleList로 그렸다.(메쉬는 없어도 됐을듯...)
파티클 및 천 시뮬레이션은 Verlet 방식으로 구현 했다.
강체도 Verlet 방식의 강체를 하나 더 구현 하려 했지만 몇가지 문제가 생겨서 일반적인 impulse based 방식으로 구현 하였다.
주요 기능은 강체 시뮬레이션 및 joint, 파티클, cloth simulation 이다.
추후 soft body 및 Verlet을 이용한 강체, LCP Solver, 높이맵과의 충돌 체크, broadphase collision detection, continuous collision detection 등도 시간이 나면 구현 해 볼 예정이다.
동영상의 시연 순서는 box stacking - multi shape collision detection - different mass property - joint constraints - cloth simulation - bounce - particle 순이다.
1.네이버 동영상
2.YouTube 동영상
'Programming > 물리엔진/게임엔진' 카테고리의 다른 글
구와 박스(OBB 또는 AABB)의 충돌체크 (0) | 2013.01.29 |
---|---|
물리엔진 구현에 필요한 요소들 및 구현 팁(생각나는대로 추가 중) (0) | 2013.01.29 |
간단한 충돌체크 및 간단한 수학 (0) | 2013.01.29 |
전에 구현한 3D물리엔진을 2D엔진으로 변형... (0) | 2013.01.29 |
LCP 문제로 구현 한 물리 엔진 (0) | 2013.01.29 |