컴퓨터 공학/Graphics

은면 제거

코딩하는 Español되기 2024. 6. 12. 16:31

은면제거란?

- 일반적인 3D 공간에는 다양하고 많은 객체가 존재 가능. 이를 2D 화면에 투여해 디스플레이

- 은면 : 다른 객체나 면들에 가려져 보이지 않는면들

- 관측자의 시점에 따라 다른 결과

- 은면제거의 목적 : 실감 있는 그림의 생성

  *은선제거, 은면 제거

 

은면제거 알고리즘 기법의 구분

1. 객체공간법(Object space method)

 - 공간상 객체의 위치관계를 이용해 은면 결정

    - 객체의 수가 적거나, 객체들이 서로 분산되어 존재하는 경우 효율적인 방법

    - 수가 많은 경우 많은 처리시간 소요

 - 깊이 정렬 알고리즘 등

2. 이미지공간법(Image space method)

 - 투영된 픽셀평면에서 객체가 보이는지 여부를 검사

   - 각 픽셀로부터 객체들로 향한 투영선을 그었을 때, 처음 관통하는 객체의 면이 보인다는 사실 활용

 - Z-버퍼 알고리즘 등

 

은면제거 처리에 적용되는 일반적인 원리

: 객체의 각 표면을 거리에 따라 정렬(Sorting)

 - 투영면으로부터 가장 가까이 위치한 객체순 정렬 | 수평 | 수직 방향으로 객체 정렬

 - 투영면에 가장 가까운 면을 선택해 그림

 - ex) 깊이 정렬

 

은면제거의 처리 개념

- 객체의 일관성(coherence) 이용

  공간적 일관성을 이용해 효율을 증대

  애니메이션에서는 시간적 일관성 이용

공간적 응집성 예

 

- 포함영역(Extent, Bounding Volume)을 이용해 비교횟수 축소

  간단한 모양의 포함영역 간의 겹침을 비교

공간객체와 포함영역(Extent)과의 관계

 

다면체 뒷면의 제거(Back-Face Removal)

- 은면제거의 첫 단계에서 이용

  - 빠르고 간단하게 뒷면을 찾는 객체 공간 방법

  - 일반적인 장면에서 다면체 면의 약 50% 제거

- 평면방정식 이용

  - Ax + By + Cz + D = 0 에서 법선벡터는 N = (A,B,C)

  - 시선방향 벡터 V와 V*N > 0 이면 뒷면, V*N < 0 이면 앞

다면체 뒷면의 결정

 

Z-버퍼(z-Buffer) 기법

- 개념 : 일반적으로 사용되는 이미지 공간 접근 방법, 깊이 버퍼(Depth Buffer) 알고리즘라고도 부름

- 물체의 가시성을 픽셀 단위로 조사: z 값이 가장 작은 평면의 값을 그림

- z 값을저장하는 깊이버퍼(z-버퍼)색상을 저장하는 프레임 버퍼가 필요

Z-버퍼 알고리즘

- 특징

  1. 일반 곡면에 대해서도 적용 가능

  2. 구현 간단, 다각형 면에 대한 정렬 필요 없음

  3. 추가 버퍼가 요구됨 So, 저장 공간이 필요

 

깊이정렬법

- 페인터 알고리즘(Painter's Algorithm)

  : 다각형면을 깊이(z값)에 따라 정렬 -> 먼 것부터 투영해 그림

    뒤쪽에 있는 면은 나중에 그린 면(가까운 면)에 가려짐

깊이 정렬 기법

 

곡면 렌더링(Surface Rendering)의 과정

와이어 프레임 모델링  --> 은면 제거 --> 면 셰이딩 --> 투명한 물체 표현 --> 텍스쳐 매핑 --> 그림자 생성

와이어 프레임 모델링 은면 제거
면의 셰이딩 투명한 물체의 표현
텍츠처 매핑 그림자 생성