2008.12.14 22:00

가시성 판단_컴퓨터그래픽스 공부



후면제거의 정의와 처리방법

절단작업의 정의와 처리방법

지엘의 절단방법

은면제거의 정의

지_버퍼 알고리즘


가시성 판단(Visibility Detection)
그래픽에서는 모든 물체는 평면 다각형의 집합으로 표시된다. 그러나 주어진 장면에서 모든 다각형이 우리 눈에 보이는 것은 아니다. 그래픽에서는 보이는 물체를 찾는 대신에 보이지 않는 물체를 제거하는 방법을 취한다.

첫째, 다각형이 시점 반대방향을 바라보는 경우
둘째, 가시부피 밖에 존재하는 경우
셋째, 다른 다각형에 가려서 보이지 않는 경우



후면제거 (Backface Culling)
-시점과 면의 오리엔테이션만으로 판단
-보이지 않는 면의 거의 절반을 제거

표면 - 바깥쪽 면, 시계방향으로 정의된 면 glFrontFace(GL_CCW)
이면 - 안 쪽면, 반시계방향으로 정의된 면 glFrontFace(GL_CW)

2차원 절단
윈도우(Window), 뷰포트(Viewport), 시저박스(Scissor Box)
3차원 절단
가시부피(View Volume)
절단 다각형
절단 사각형(Clip Rectangle)

코헨-서더런드 알고리즘
4비트 아웃코드(Outcode)
평면을 9개 구역으로 분할하여 구역별로 4비트로 표현
3차원일시 6비트

리앙-바스키 알고리즘
교차점의 상대적인 위치에 의한 절단 알고리즘

서더런드-핫지먼 알고리즘
2차원 절단 다각형을 기준으로 2차원 다각형을 절단하기 위한 것
볼록 다각형에만 적용
하나의 다각형으로 취급
오목 다각형 처리결과 : 오류 -> 해법: 다각형 분할(Tessellation)

웨일러-애서톤 알고리즘
분할에 의하지 않고 오목 다각형을 절단할 수 있는 것


은면제거 Hidden Surface Removal
보이지 않는 면을 제거
앞 물체에 가려서 안 보이는 부분
물체의 깊이정보(z값)를 기준으로 판단

페인터 알고리즘
멀리 있는 배경위에 가까운 물체를 덧칠
깊이 정렬(Depth Sort) 필요
Zmax를 기준으로 물체를 정렬

가시성 사이클(Visibility Cycle) 과 침투(Penetration)
면이 서로 맞물려 앞뒤를 분간하기가 어려운 경우

물체공간 알고리즘(Object Space Algorithm)
정밀도는 높지만 실행속도가 느림
경우에 따른 처리가 매우 복잡함.

영상공간 알고리즘(Image Space Algorithm)
화소단위로 적용

지-버퍼 알고리즘(Z-Buffer Algorithm) = 깊이버퍼
물체공간 vs 화소공간
결국 화소공간으로 사상
화소공간 해상도로 은면을 판단하면 됨



시선을 등지고 있기 때문에 제거되는 면은 (후면) 이다.
가시부피 밖에 있는 면을 제거하는 작업을 (절단) 이라 한다.
시선을 기준으로 다른 면에 가려서 안 보이는 면을 제거하는 작업을 (은면제거)이라 한다.


Trackback 0 Comment 0