728x90
박스와의 Lay Collision
Collision Scene 수정해주고
Box LayCollision
Slab method이론
Lay를쏘았을때 각각의 점들이 지나는지 안지나는지에 대한 충돌을 하여 체크를 할 수 있음.
GameMath.h 만들기
실수 비교는 위험하기 때문에
FLT_EPSILON - 아주 작은 수,
절대값에서 가장 작은 수와 비교하여 약간의 오차가 났을 경우를 대비
코드로 구현
delta는 ray 시작점에서 box의 위치
FLT_MAX = 실수의 최댓값
조건문으로 Gamemath에서 만든 NearlyEqual 함수 사용 하여 비교
수직인 경우
e와 x축을 내적하면 투영된 거리가 나오는데 투영된거리가 min보다 작거나 max x 보다 크면 벗어난걸로 체크
다음 수직이 아닌 경우를 체크
t1 t2는 보강값 그림에서의 점들
min중에 제일큰값 max중에 제일 작은값을 구해
비교하여 충돌 여부 true false 주기
다음 ray쏘았을때 접점이용하여 가까운 점을 min으로 잡아주고
잡아준 min에 반직선 공식을 곱해주어 hitpoint주기
이제 테스트 실행하여 마우스로 박스를 잡아 다른 박스로 가져가면 충돌되면 박스가 빨간색으로 변함
728x90
'학원' 카테고리의 다른 글
DirectX 3D Block (2) | 2023.11.15 |
---|---|
DirectX 3D Box-Sphere collision (1) | 2023.11.14 |
DirectX 3D Box Collision (3) | 2023.11.09 |
DirectX 3D ModelRender (0) | 2023.11.08 |
DirectX 3D ExportMaterial (0) | 2023.11.08 |