ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [RT] Ray 와 Plane 의 충돌 판정
    과제/miniRT 2021. 1. 11. 10:58

     

    그림을 개떡같이 못그렸지만 위의 경우로 충돌판정을 생각해보자.

    우선 3차원 좌표계에서 평면이라함은, 끝이 없는 무한히 큰 종이라고 생각하면 된다.

     

    평면을 정의하는 방법으로는 크게 2가지 방법이 있는데

    1. 평면의 법선벡터와 평면에 포함되는 임의의 한 점으로 정의

    2. 평면에 포함되는 임의의 세 점으로 정의

    가 있다. 이중 첫번째 방법으로 위의 평면을 정의한 것이다.

     

     

    우선 plane 의 임의의 두점을 P0, P1 이라 하면, 벡터(P1 - P0) 는 평면위의 직선벡터가 되고,

    이는 당연히 벡터 n과 90도를 이룬다. 따라서

    P0를 주어진 하나의 점으로 놓고, P1을 임의의 점(Px, Py, Pz) 라고 놓으면,

    평면의 방정식이 아래와 같이 완성된다.

     

    벡터를 이용한 평면 방정식 : n · (P0 - P1) = 0

    우리의 Ray 벡터 r = O + td 이므로

    결국 임의의 점 P1을 O + td 로 치환하여 풀면

    t = ( n · (P0 - O) ) / (n  · d)

    가 된다.

    이를 통하여 t를 알아 낼 수 있다.

    '과제 > miniRT' 카테고리의 다른 글

    [RT] Ray 와 Triangle 의 충돌 판정  (0) 2021.01.14
    [RT] Ray 와 Cylinder 의 충돌판정  (0) 2021.01.13
Designed by Tistory.