본문 바로가기

Programming/물리엔진/게임엔진

혼자서 구현 해 본 물리엔진 - DirectX로 렌더링 함

최근 혼자서 구현 해 본 물리엔진 이다.

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 동영상