[3D][DirectX] Picking

과제로 작성한 피킹입니다. 상당히 예전에 작성한거죠..






LabProject.exe

클릭하면 카메라가 해당오브젝트의 뒤로 이동하게 되어, 제어할 수 있습니다.
피킹방법이야 여러 책에서 단골로 등장하니깐요.
간단히 요약해 놓자면
스크린좌표를 카메라좌표계로 변환하여 카메라에서 해당방향으로 뻗어나가는 Ray를
생성하고 이것을 필요에 따라 월드좌표계 -> 로컬좌표계로 변환시켜서 사용하게 됩니다.

DX샘플보면 오브젝트의 전체 폴리곤에 대해 피킹하는 예제를 볼 수 있습니다.

D3DX에서 제공하는 D3DXIntersectTri함수를 사용하면 쉽게 구현이 가능합니다.


아무래도 각각의 폴리곤에 대해서 검사하는건 비용문제가 클꺼라고 생각해서
오브젝트를 감싸는 바운드 박스를 계산하고 바운드박스로 피킹검사를 했습니다.

by hellz | 2009/06/27 23:12 | 트랙백 | 덧글(0)

트랙백 주소 : http://hellzblog.egloos.com/tb/2421787
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶