제가 DX의 IntersectTriangle함수를 변형하여 광선-평행사변형 교차 함수를 만들었는데요

수학, 물리학 등 게임 프로그래밍의 기반이 되는 이론에 관한 포럼입니다.

Moderator: 류광

Locked
비회원

제가 DX의 IntersectTriangle함수를 변형하여 광선-평행사변형 교차 함수를 만들었는데요

Post by 비회원 »

IntersectTriangle함수는 삼각형안의 v0에서부터 출발하는 벡터가 삼각형안에 완전히 포함되는지
아닌지를 보려면 그 벡터를 v1-v0과 v2-v0 두벡터의 합으로 나타냈을때 u,v의 합이 1.0을 넘지 않으면
포함된다는 것을 이용하는 함수죠?

전 이것을 응용해서 IntersectRectangle이라고 명명한 저만의 함수를 만들었는데요
u,v의 합이 1.0을 넘지않으면 삼각형에 포함되듯이
u,v의 합이 아니라 u <= 1.0 && v <= 1.0이면
벡터는 삼각형이아니라 두 벡터가 이루는 평행사변형에 포함됩니다.

그래서 IntersectTriangle에서 u,v값으로 판정하는 부분을 살짝 고쳐서
광선 - 평행사변형 교차판정 함수를 만들었죠.
그래서 피킹이나 충돌 등등에 아주 유용하게 쓰고 있습니다만

이게 원래 있는 함수인가요?
첨에 만들었을때는 나름 뿌듯했는데 지금와서 생각해보니
제가만든것을 IntersectTriangle함수를 처음 만들어낸 마소의 천재들이
저런걸 몰랐을리가 없다고 생각이 되네요 ;;
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

평행 사변형을 검사해야할 경우가 그렇게 많지가 않습니다.

IntersectTriangle


3D 그래픽은 삼각형이 기본이므로, 삼각형 체크를 지원한다면 모든 도형에 적용가능한 체크방법을 지원한다고 할 수 있죠.

위에서 말씀하신 평행사변형 체크도 IntersectTriangle의 변형이니까요.
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
Locked