오다기리 박의 알고리즘 노트

평면 기반 폴리곤 표현법 (plane-based polygon) 본문

컴퓨터 그래픽스/메쉬 기하학

평면 기반 폴리곤 표현법 (plane-based polygon)

오다기리 박 2022. 12. 6. 17:33

 

 

우리가 흔히 말하는 폴리곤은 N개의 점을 가진 도형을 말한다. 그래픽스 또는 CAD에서 N개의 좌표로 폴리곤을 쉽게 표현할 수 있다. 하지만 이러한 명시적인(explicit) 표현법 말고 암시적인(implicit) 표현법을 사용할 때도 있다. 그 중에 하나가 평면 기반 표현법이다.

 

 

평면 기반 폴리곤 표현법은 convex한 폴리곤을 평면 s 위에서 경계 평면 { bi } iZn 으로 둘러쌓인 영역으로 표현한다는 것이다. (경계 평면은 반시계 방향 순서이다.) 아래 그림에서는 폴리곤이 포함된 평면 s와 각 에지를 포함하면서 s에 직교하는 평면 5개를 나타낸다. 이렇게 되면 폴리곤의 각 점은 vi = (s, bi-1, bi) 로 표현할 수 있다. 즉 각 점을 세 평면의 조합으로 표현 가능하다. 그리고 점의 좌표를 계산하고 싶을 때마다 세 평면의 교차점을 계산하면 된다. 

 

 

 

 

이렇게 폴리곤을 복잡하게 표현해야하는 경우가 있을까? 메쉬의 BSP 트리를 만들 때처럼 폴리곤을 평면으로 반복해서 자르는 경우, 교차점을 명시적으로 반복 계산하다보면 폴리곤 좌표의 오차가 누적될 수가 있다. 이런 경우 평면 기반 표현법을 사용하면 폴리곤이 여러번 잘려도 결과로 나오는 폴리곤을 경계 평면으로만 표현하면 되니까 수치 오차 누적의 문제는 어느 정도 해결할 수 있다.