관리 메뉴

Kim's Programming

3차원 그래픽스 은면제거 본문

Computer Theory/Computer Graphics

3차원 그래픽스 은면제거

Programmer. 2016. 1. 25. 13:21

은면 제거



은면제거란 시점에서 앞에 있는 객체나 가려진 면들을 제거하는 과정을 의미합니다. 이러한 과정을 거치고서 보이는 면은 렌더링 하면 현실감 있는 그래픽 화면도 얻을 수 있고 랜더링하는 면의 수가 줄어들어 렌더링 시간도 줄일 수 있게 됩니다.


은면 제거(Hidden Surface Removal) 알고리즘 종류




3차원 공간에서 객체가 투영면에 투영될 때 보이지 않는 모서리나 면을 제거해줌으로써 그 객체의 입체감과 현실감을 증가시킬 수 있습니다. 은면제거가 면과 면간에 가려져 보이지 않는 면을 제거하는 데 비해 은선 제거(Hidden Line Removal)은 선과 면간에 보이지 않는 선의 부분을 제거하는 기법입니다. 위의 그림에서 빨간색을 제거하거나 파란색을 제거하느냐에 따라서 서로 다른 모양의 그림이 된다는 것을 알 수 있습니다.





또는 객체 공간법(Object Space Method)은 공간상에 존재하는 객체들 간의 위치관계를 논리적 방법이나 계산을 통해서 어떤 객체나 면이 가려져 보이지 않는 지를 발견하는 방법이며 이미지공간법(Image Space Method)은 투영면을 구성하는 각 픽셀로부터 객체들로 향한 직선(투영선)을 그었을 때 처음 관통(Hit)하는 객체 면이 보이게 된다는 사실을 이용합니다. 대부분의 경우는 이미지공간법을 이용하는데 그 이유는 일일이 계산하는 것 보다 투영면으로 부터 나오는 투영선이 처음 관통하는 객체 면을 발견하는 것이 보다 효율적이기 때문입니다.


은면 제거(Hidden Surface Removal) 처리



은면제거에서 가장 많이 이용하는 원리는 은면처리할 객체나 객체를 구성하는 면들을 정해진 원칙에 따라 정렬(Sorting)하는 것입니다. 투영면으로부터 가장 가까이 위치한 객체 순(z방향)으로 정렬하거나 수평방향(x 방향) 또는 수직 방향 (y방향)으로 객체들을 정렬합니다. x,y 방향으로 정렬을 하면 수평 수직 방향으로 물체가 겹치는 것을 찾을 수 있고, z방향으로 정렬하면 은면을 찾을 수 있게 됩니다. 그 다음으로는 객체의 공간적 시간적 밀착성(Cogerence)를 이용하는 것입니다. 객체의 공간적 일관성이란 객체에서 공간적으로 인접한 부분은 은면제거 관점에서 유사한 성질을 갖는다는 것이며 시간적 일관성을 이용하는 경우에는 애니메이션과 같이 그림이 시간의 흐름에 따라 변하는 경우에 이용합니다. 마지막으로는 객체 포함영역(Extent)개념을 도입함으로써 객체 간에 깊이(z방향), 수평 방향(x방향), 수직 방향(y방향)으로 겹치는지 여부를 용이하게 판단합니다.  은면제거 처리방법은 다양하기 때문에 객체 종류, 복잡도 등에 따라서 알맞게 선택하여 사용하여야 합니다.