본문 바로가기
서적 정리/DirectX11을 이용한 3D 게임 프로그래밍 입문

38.절단(clipping)

by 민돌이2 2022. 1. 25.

시야 절두체를 완전히 벗어난 기하구조는 렌더링할 필요가 없다. 쉽게 말해서 보이지 않는 메시나 정점은 그릴 필요가 없다. 만약 보이지 않는 것들 모두 그린다면 쓸모없는 연산을 하는 것이다. 시야 절두체를 완전히 벗어나지 않고 걸친 경우에는 당연히 절두체 내부의 것만 남기고 외부는 잘라내야 한다. 이를 절단(clipping) 연산이라고 한다.

위 그림에서 (a)는 절단 전이고 (b)는 절단 후다. 그림에서는 가까운 평면, 먼 평면, 왼쪽 평면, 오른쪽 평면 네 개만 보이지만 위 평면, 아래 평면도 있다는 사실을 알아야 한다. 다각형을 절두체로 절단하기 위해서는 다각형을 절두체의 엿서 평면 각각으로 절단해야 한다. 다각형이 평면의 양의 반공간(*주 1)에 있는 부분은 남겨두고 음의 반공간에 있는 부분은 폐기해야 한다.

 

어떤 정점(x, y, z, w)이 시야 절두체 안에 있다고 할 때, 정점은 다음과 같은 조건을 만족해야 한다.

즉, 시야 절두체 안의 정점들은 다음과 같은 4차원 평면들로 이루어진 영역 안에 있다.

 

(*주 1) 반공간(half space)

사전적 의미는 무한 평면의 경계로 하는 공간을 의미한다. 

위 그림에서 (a)는 절단 전이고, (b)는 절단 후이다. 평면의 법선 벡터가 가리키는 방향이 양의 반공간이고 반대는 음의 빈공간이다.

728x90

댓글