Today, I will

[그래픽스] ray tracing intersection with triangle (ray 방정식과 삼각형의 교점 찾기) 본문

Computer Science/그래픽스

[그래픽스] ray tracing intersection with triangle (ray 방정식과 삼각형의 교점 찾기)

Lv.Forest 2023. 12. 15. 14:26

 

삼각형과 레이R의 교점 p를 구하는 방법

사진 출처: https://courses.cs.washington.edu/courses/csep557/14au/lectures/triangle_intersection.pdf

 

예제:
 
레이 r은 원점 (0,0,0)으로부터 출발하고 ray의 방향벡터u는 (0,0,-1)이다.
삼각형 a1a2a3에 대해서 세 꼭지점은 다음과 같다면,
  • a1 = (-1, -1, -1)
  • a2 = (1, -1, -1)
  • a3 = (0, 1, -1)
레이와 삼각형의 교차점을 찾기 위해 레이의 방향과 삼각형의 평면과의 교차점을 찾아야 한다. 

 

  1. 삼각형의 평면 법선 벡터, 평면의 방정식 구하기 : 삼각형의 세 꼭지점을 이용하여 우선 삼각형을 포함하는 평면을 정의할 수 있다. 세 꼭지점을 이용하여 두개의 벡터를 만들고, 이렇게 구한 두 벡터의 외적은 평면의 법선 벡터가 된다. 평면 법선 벡터를 이용하여 평면의 방정식을 ax+by+cz+d =0 꼴로 구성해준다.
  2. 평면과 레이의 교차점 계산: 레이의 방정식과 삼각형의 평법 법선 벡터를 이용해 구한 삼각형의 방정식을 연립한다.
  3. 교차점이 삼각형 안에 있는지 확인 : Barycentric coordinate system을 통해 확인하다. 바먼트릭 좌표는 삼각형 내부의 한 점을 나타내는 좌표 시스템으로, 이를 통해 해당 점이 삼각형 안에 있는지 여부를 확인할 수 있다. (u,v,w)를 구했을 때 하나라도 음수라면, 삼각형 밖에 있다. 삼각형 밖에 있는 경우는 삼각형과 ray의 교점이 없는 것이다. 그렇지 않다면, 평면과 레이의 교차점이 곧 삼각형과 ray의 교점이 된다.