가시 표면의 결정
- 객체와 관측자의 위치에 따라 관측자의 눈이 닿지 않는 객체의 뒷면을 제거
- 정렬과 일관성을 활용하여 알고리즘의 수행 능력 향상 가능
- 정렬 : 관측자 입장에서 가까운 물체를 나타내야하니 객체의 깊이 정보를 알아야 한다.
투영법에서 투영상을 만드는 방법과 유사하다
Pixel 단위로 하나씩 가시 표면 판단
대부분 이 방식을 사용
image-space method
가시성을 만족하지 않는 픽셀들은 계산할 필요가 없다.
다각형이 아니더라도 적용 가능하다.
, 는 에 가려져서 보이지 않게 된다.
픽셀 단위로 각각의 픽셀들의 깊이 값에 기반해서 가시 표면에 있는 픽셀인지 결정
겹쳐진 물체의 재질에 따른 투과성의 성질은 고려하지 못함
frame buffer
초기값은 배경색
객체 표면에 있는 픽셀들의 색상값을 저장
위 그림에서 픽셀의 색깔로 음영을 나타냄
z-buffer
초기값은 0
0은 관측자와 가장 멀리 있는 것을 뜻함, 즉 z값이 큰 것이 관측자와 가까움
앞서봤던 그림에서 의 깊이 값이 가장 짧다고 했는데 그것과 z-buffer의 0와는 다른 것
위 그림에서 숫자로 표시
depth coherence를 이용하여 계산 시간을 줄일 수 있음
평면 방정식을 이용 :
Z-buffer Algorithm을 개선한 것이다.
객체의 투과성을 고려하여 투과율을 가지는 물체가 중복되어 있을 때 가시 표면을 결정
같은 투영선에 겹쳐진 픽셀에 대한 색상 정보값을 누적해야한다.
객체와 객체의 일부를 서로 비교하여 표시할 지표면을 결정
객체 단위
Wireframe display 에서 유리
빠르고 간단한 Object-Space method
곽측자의 시점에서 객체의 뒤에 있는 면을 제거
평면 방정식과 법선 벡터를 활용
모든 면은 평면 방정식이 만들어진다.
V : 곽측자가 바라보는 Viewing Vector
V·N > 0 이면, 각도는 예각이다.
and
는 위의 그림에서 음수이므로 가 음수일 경우 Back face가 된다.
보이지 않는 면을 제거한 후 보이는 면(visible surface)을 렌더링 하면 현실감 있는 그래픽 화면을 얻을 수 있으며, 렌더링 하는 면의 수가 줄어들어 시간을 줄일 수 있다.
보이지 않는 면을 제거하는 방법은 3차원 공간에서 객체들 간의 공간적 앞뒤 관계에 따라 제거하는 객체 공간법(object-space method)과 투영면의 셀들로부터 객체를 바라볼 때 투영면에 노출된 객체상의 점들을 찾는 이미지 공간법(image-space)으로 나뉜다.
객체 공간법은 공간상의 객체 수가 많지 않거나 객체들이 서로 분산되어 존재하는 경우에는 효율적이지만, 객체 수가 많으면 처리 시간이 많아지는 단점이 있다.
이미지 공간법은 처리 시간이 적게 걸리므로 효율적이어서 많이 사용되고 있다.