Professional Documents
Culture Documents
물리엔진
물리엔진
- 이러한 원리로 물리적 현상을 적용하고, 이리저리 튀는 공이나 옷같은 변형체, 물과 연기같은 유체 등 여러
미분방정식을 푸는 복잡한 수학적 풀이과정을 통해 적용시켜 사실적 영상을 보입니다.
여기 물리엔진이 적용됐다 가정했을땐 바퀴의 마찰, 무게중심에
의한 균형, 합력 등을 적용시켜 실현해낼 수 있겠죠.
/
이제 물리엔진 중 하나인 하복 물리엔진을 예로써 종류를 설명드리겠습니다. ㅇ
/
2. 동역학(dynamics) 시뮬레이션 ㅇ
4. 충돌 처리(Collision Detection) ㅇ
물리가 적용된 오브젝트가 서로 충돌했는지 검사하기 위한 과정으로 물리 엔진의 성능에 영향을 미치는 가장 중요한
요소입니다.
게임상의 모든 오브젝트를 충돌 검사 하게 되면 실시간으로 연산하기가 거의 불가능에 가깝기 때문에 최적화를 위해서 세
단계를 거쳐서 충돌할 가능성이 있는 오브젝트만 선별해서 처리하게 됩니다. ㅇ ㅇ
상세한 충돌 처리 단계로 넘어 가기 전 'AABB 연산'을 통해서 대부분의 오브젝트를 제거하는 broadphase 가 있습니다.
AABB 연산이란 충돌 로직 중 하나로, 각 축에 정렬시켜 겹치면 충돌로 판정합니다. ㅇ ㅇ
- 지역탐지 단계에선
간단하게 요약하면 두 도형이 교차하는지 수학적으로 참/거짓을 판별 한 후에 추가적인 계산을 통해 다음 단계에 사용할
데이터를 찾는것입니다.
예를 들어 좌표상의 두 원이 겹치는지 판단하는것은 두 원 중심으로 간의 거리가 두 원의 반지름의 합보다 작다면 두
원은 서로 교차중인 상태이죠.
여기에 아까 나왔던 AABB 연산 등의 알고리즘이 사용됩니다. ㅇ
- 이제 해결 단계에선
지역 탐지를 마치고 물체가 교차중인 것이나, 물체가 접촉중인 것이나, 여러가지 힘 등등 각종 역학적인 효과들을
계산해 적용하는 단계가 해결 단계입니다.
중력, 마찰력, 인력, 항력, 탄성력 등등 우리가 물리학에서 배우고, 실제 현실에서 볼수 있는 물리적 효과를 구현하거나
실제로 없는 가상의 물리효과 등등 굉장히 다양한 형태로 효과를 줄수 있습니다.
또 앞서 연산한 물체의 충돌 해결 역시 중요한 부분중 하나죠.
현대에 제약조건을 여러 프레임 동안 유지해 제약조건 수렴값에 도달할때까지 반복적인 연산으로
역학 문제를 해결하는 제약기반 물리 알고리즘이 있다합니다. 또 연산 값이 너무 어려워 가까운 값을 구할때 쓰는
수치적분법도 쓰인다 하네요. ㅇ