'2014/10/27'에 해당되는 글 7건

  1. 2014.10.27 SAT (Separating Axis Theory, 분리축 이론)
  2. 2014.10.27 구 vs 캡슐 교차
  3. 2014.10.27 구 vs OBB
  4. 2014.10.27 광선 vs 캡슐 교차검출
  5. 2014.10.27 광선 vs OBB 교차검출
  6. 2014.10.27 AABB와 OBB
  7. 2014.10.27 광선 vs 구 교차판정
posted by WizardMania 2014. 10. 27. 17:57



임의의 두 다면체에 대해 어떤 축이 존재해서 그 축으로 다면체를 투영할시 투영 구간이 겹치지 않는다면 서로 겹치지 않는다.


A와 B가 겹치지 않는다면 다음 축들 중 하나에 평행한 축에 의해 분리된다.


1. A면중 하나의 법선 벡터

2. B면중 하나의 법선 벡터

3. A의 변과 C의 변에 동시에 수직인축


axis1의 경우 두물체를 투영시 투영부분이 겹치지만 axis2에서 겹치지 않으므로 두물체는 서로 겹치지 않는다.

'프로그래밍 > 수학, 물리' 카테고리의 다른 글

구 vs 캡슐 교차  (0) 2014.10.27
구 vs OBB  (0) 2014.10.27
광선 vs 캡슐 교차검출  (0) 2014.10.27
광선 vs OBB 교차검출  (0) 2014.10.27
AABB와 OBB  (0) 2014.10.27
posted by WizardMania 2014. 10. 27. 17:25

구의 중점과 캡슐의 선분의 최단거리가 구의반지름 + 캡슐반지름 보다 작거나 같다면 교차

※ 선분과 점의 최단거리 구하는 방법 참조

'프로그래밍 > 수학, 물리' 카테고리의 다른 글

SAT (Separating Axis Theory, 분리축 이론)  (0) 2014.10.27
구 vs OBB  (0) 2014.10.27
광선 vs 캡슐 교차검출  (0) 2014.10.27
광선 vs OBB 교차검출  (0) 2014.10.27
AABB와 OBB  (0) 2014.10.27
posted by WizardMania 2014. 10. 27. 15:46

구의 중심과 OBB 사이의 가장 가까운점과의 거리가 구의 반지름보다 작거나 같다면 교차했다고 할 수 있다.

OBB와 점 사이의 가장 가까운 거리 찾기


C : 박스의 중심

a : 박스의 각축의 정규화된 벡터

r : 박스의 길이(절반길이)

P: 임의의점

P와 C를 잇는 벡터 d를 구한다.



각축을 t에 투영하여 거리를 구한다


이거리는 박스의 범위를 넘어가지 않게 제한한다



박스의 중심C와 각축에 대해 구한 거리벡터를 모두더한 값이 가장가까운점 p'가 된다




'프로그래밍 > 수학, 물리' 카테고리의 다른 글

SAT (Separating Axis Theory, 분리축 이론)  (0) 2014.10.27
구 vs 캡슐 교차  (0) 2014.10.27
광선 vs 캡슐 교차검출  (0) 2014.10.27
광선 vs OBB 교차검출  (0) 2014.10.27
AABB와 OBB  (0) 2014.10.27
posted by WizardMania 2014. 10. 27. 15:12

캡슐상의 선분과 광선의 최단거리가 캡슐의 반지름 보다 작다면 교차 했다고 할수 있다.

두광선을 캡슐과의 최단거리(초록색)을 살펴보면 1번광선은 최단거리가 캡슐 반지름보다작아 교차한다.

 2번광선은 최단거리가 캡슐 반지름보다 커서 교차하지 않는다. 


'프로그래밍 > 수학, 물리' 카테고리의 다른 글

구 vs 캡슐 교차  (0) 2014.10.27
구 vs OBB  (0) 2014.10.27
광선 vs OBB 교차검출  (0) 2014.10.27
AABB와 OBB  (0) 2014.10.27
광선 vs 구 교차판정  (0) 2014.10.27
posted by WizardMania 2014. 10. 27. 14:56

광선과 OBB의 교차검출 방법중에 slabs 방법이 있다.


광선과 육면체 세방향에 대한 교점을 찾고 교점의 최대값 최소값을 비교하면된다




구한 최소값중에서 가장큰값이 최대값중에서 가장작은값 보다 작거나 같다면 광선과 박스가 교차한 것 이다.


(1) 광선과 교점의 최소값중에서 가장큰값 (tu min)이 최대값중에서 가장작은값(tv max)보다 작다.  (교차)

(2) 광선과 교점의 최소값중에서 가장큰값 (tv min)이 최대값중에서 가장작은값(tu max)보다 크다. (교차하지 않음)



광선과 면의 방향에따른 교점거리를 구하는 공식은 다음과 같다.


C : 박스의 중심

a : 박스의 각축의 정규화된 벡터

r : 박스의 길이(절반길이)

O: 광선의 시작점

v: 광선의 방향



한가지 고려해야될 상황은  광선과 박스의 면이 평행할때이다.


 가 0이라면 광선과 해당면은 평행이다 여기에서


 거나 

 이면


광선은 박스 밖에 있다는것 이므로 교차하지 않게된다.




'프로그래밍 > 수학, 물리' 카테고리의 다른 글

구 vs OBB  (0) 2014.10.27
광선 vs 캡슐 교차검출  (0) 2014.10.27
AABB와 OBB  (0) 2014.10.27
광선 vs 구 교차판정  (0) 2014.10.27
선분 선분 최단점과 최단거리  (1) 2014.10.22
posted by WizardMania 2014. 10. 27. 11:59

게임에서 사용하는 충돌 박스(직육면체)의 경우 두종류로 분류할 수 있다. 


AABB (Axis Aligned Bounding Box)

축에 정렬된 직육면체

축에 정렬되어 있으므로 물체가 회전함에따라 경계를 다시 지정 해야한다

교차검출이 정밀하지 않다

교차검출이 간단하다


OBB (Object Oriented Bounding Box)

물체가 회전함에따라 같이 회전하게 된다

AABB보다 교차검출이 정밀하다

교차검출이 복잡하다


AABB와 OBB의 차이


     


AABB박스(초록색) OBB박스(붉은색)


AABB박스는 물체가 회전하더라도 축과정렬이되어 새롭게 범위가 지정된다.

OBB박스는 물체가 회전하면 같이 회전하게 된다.

'프로그래밍 > 수학, 물리' 카테고리의 다른 글

광선 vs 캡슐 교차검출  (0) 2014.10.27
광선 vs OBB 교차검출  (0) 2014.10.27
광선 vs 구 교차판정  (0) 2014.10.27
선분 선분 최단점과 최단거리  (1) 2014.10.22
선분 점 최단점과 최단거리  (0) 2014.10.21
posted by WizardMania 2014. 10. 27. 11:21

광선의 시작점을 o 방향을 d라 할때 광선의 수식



구의중심을 c 반지름r 구상의 임의의점을 p라 할떄 구의 수식



광선과 구의 교차를 구할려면 구의수식에서 p를 광선 r(t)로 변경하면 된다.



d를 단위 벡터라 가정하면


                                                                                     


위 식은 2차 방정식 이므로 근의 공식으로 해를 구할 수 있다. (위 식에서 b가 짝수이므로 짝수공식을 사용하면 된다) 



우리가 구한 식에서 짝수공식에 해당하는 a, b, c 는 다음과 같다.



해를 구하기 전에 판별식으로 해가 존재하는지를 확인해봐야 한다.



위 식들에의해 교차판정과 충돌지점을 구할 수 있다 . 

연산의 최적화를 위해 몇가지 고려해 볼 만한사항이 있다.


1) 광선이 구 안에서 시작할 때 무조건 교차한다고 할 수 있다.



2) 구가 광선의 뒤쪽에 있을 때 교차 하지 않을 것이다.



s가 0보다 크고 광선의 시작점이 구 밖에 있을때 구는 광선 뒤쪽에 있다고 판단할 수 있다.




'프로그래밍 > 수학, 물리' 카테고리의 다른 글

광선 vs OBB 교차검출  (0) 2014.10.27
AABB와 OBB  (0) 2014.10.27
선분 선분 최단점과 최단거리  (1) 2014.10.22
선분 점 최단점과 최단거리  (0) 2014.10.21
광선 점 최단점과 최단거리  (0) 2014.10.20