시작하기에 앞서 기존에 작성한 문서들에 클래스 맴버변수를 "_"지시자로 시작했던 부분을 수정하겠다.
Exceptional C++ Style 책을 보던 중 "_", "__" 로 시작하는 변수명에 대한 중요한 문제점을 인식하게 되었다.
안 좋은 스타일은 빨리빨리 수정하자.
본론으로 넘어가서, 물리 프레임에서 가장 중요한 부분이 바로 충돌과 충돌 처리일 텐데 이 부분을 계속 미뤄왔었다.
사실 나도 기초만 조금 알고 있을 뿐 정말 어렵고, 넓은 부분이라고 느끼고 있다.
우선, 아는 것만이라도 정리해 보자.
- 기본적인 충돌 검출은 다음과 같은 형식간의 교차 연산들로부터 판정된다.
- Ray(반직선 : Ray(t) = Ori + t*Dir , 여기서 Ori 와 Dir은 3차원 벡터)
- Plane(평면 : Ax+By+Cz+D = 0 )
- Sphere(구 : 반지름으로 표현 )
- Triangle(삼각형 : 점 3개로 표현 )
- AABB ( 축정렬 바운딩박스 : min.xyz 와 max.xyz로 표현)
- OBB
- 기타 등등
Ref) http://www.realtimerendering.com/intersections.html
- 사실적인 충돌 검출은 매우 많은 연산을 필요로 한다.
- 따라서 연산횟수를 줄이기 위한 많은 트릭과 똑똑한 자료구조가 필요하다.
- 충돌 판정이 되었다면, 충돌결과에 따른 오브젝트의 충돌 후 효과 또한 중요하다.
말 보다는 코드가 낮다. 아래를 참조하자.
'Dev.Write' 카테고리의 다른 글
MFC Custom_Control 연습 (0) | 2010.01.15 |
---|---|
DX로 만든 첫번째 게임 프로젝트 (0) | 2010.01.08 |
물리 프레임의 기본 – 회전 동역학 (0) | 2010.01.02 |
물리 프레임의 기본 – 선형 동역학 (2) (0) | 2009.12.11 |
물리 프레임의 기본 - 선형 동역학 (0) | 2009.12.11 |