본문 바로가기

Programming/물리엔진/게임엔진

전에 구현한 3D물리엔진을 2D엔진으로 변형...

전에 구현했던 3D 엔진을 2D엔진으로 변형 시켜보았다.

처음엔 단순히 z축 관련 연산만 제거하면 될 줄 알았는데 몇가지 변수가 있어서 시간이 조금 걸렸다.

그리고 물리엔진을 변형 시키는 것 보다도 2D로 렌더링을 하는데 방식을 잘못택해서 애를먹었다....ㅜ

 

DirectX로 하려고 D3DXSPRITE를 이용 했는데 간단하기는 하지만 텍스쳐를 사용해야만 하는 방식이라 원하는 도형을 마음대로 그릴 수가 없었다...그림판으로 이것저것 작업해서 배경색을 제거 하고 하는 등의 작업이 필요해서...하다가 귀찮아 졌다.....ㅜㅜ

 

그래도 핵심인 물리엔진의 반응은 제대로 나오는것 같고 전에 구현 했던 기능을 그대로 다 옮겼으므로 만족스럽다. 게다가 축이 하나 없다보니 충돌처리부분에서 3D보다 조금 더 안정적인듯도 하다.... 시간이 되면 OpenGL을 이용해 제대로 렌더링 해봐야 겠지만...... 여태까지 물리엔진에 너무 시간을 할애 한듯하다.....

 

시연 순서는 joint - stack - angry bird - elastic collision  순이며 angry bird는 예전에 조금 유명했던 angry bird게임을 대강 흉내내어 보았다. 스페이스를 눌러서 원을 쏘고 나중엔 mouseJoint를 이용하여 사각형들을 움직이는 모션이 있다. 

시연에는 LCP solver를 이용한 충돌 처리 방식 및 SAT, 원-사각형 충돌체크를 이용 했다.