1. 에일리어싱(Aliasing)
에일리어싱이란 래스터변환단계에서 필연적으로 발생하는 현상으로 비트맵 파일을 확대해보면 계단처럼 보이는 그러한 현상을 뜻한다. 이 현상의 원인은 언더 샘플링에 의해 원래 신호를 정확하게 복원하지 못해 왜곡이 일어나는 것이다.
a. 포인트 샘플링
픽셀의 정 중앙 또는 임의 위치에서의 물체색을 해당 픽셀의 색으로 취하는 방법
2. 앤티-에일리어싱(Anti-Aliasing)
앤티-에일리어싱이란 에일리어싱 문제를 최소화 하기 위한 기법이다.
a. 수퍼 샘플링(Super Sampling)
픽셀을 더 작은 단위로 분할을 한다. 포인트 샘플링에 보다 배 이상의 시간이 걸린다.
b. 영역 샘플링(Area Sampling)
픽셀 밝기를 면적에 비례하게 하는 방법.
c. 동일 가중치 샘플링(Unweighted Area Sampling)
영역 내부 모든 곳에 동일한 가중치를 부여하는 방법.
d. 피라미드 가중치 샘플링(Pyramid-Weighted Area Sampling)
픽셀 중심에 걸쳐 들어가는 부분에 높은 가중치를 부여하는 방법.
e. 원뿔 가중치 샘플링(Cone-Weighted Area Sampling)
피라미드 가중치 방식을 개선한 것으로 원뿔 바닥 내부에 있는 모든 물체를 대상으로 가중치를 부여하는 방법.
OpenGL의 앤티-에일리어싱
OpenGL의 앤티-에일리어싱은 혼합함수를 사용 한다.
1.먼저 glEnable함수로 GL_BLEND를 확성화 시킨다.
2. 그후 glBlendFunc 함수로 혼합모드를 설정한다.
3. 마지막으로 점을 부드럽게 할려면 GL_POINT_SMOOTH를 활성화 시키고 선을 부드럽게 할려면 GL_LINE_SMOOTH를 활성화 시키면 된다.
OpenGL의 앤티-에일리어싱은 항상 뒤 물체의 색과 앞 물체의 색을 혼합하여 구현된다. 그러기 때문에 바로 뒤의 물체와 혼합하기 위해서는 반드시 미리 모든 물체를 먼 곳에서 가까운 곳 순으로 정렬을 해야한다. 그러나 장면이 복잡해질수록 거의 불가능 해진다. 그래서 OpenGL에서는 1.3버전부터 멀티 샘플링이 추가 되었다. 이는 수퍼 샘플링에 해당되는 것이다.
이 기능은 glEnable(GL_MULTISAMPLE)의로 활성화 시킬수 있다.
'라이브러리 > OpenGL' 카테고리의 다른 글
프래그먼트와 GL의 버퍼 (0) | 2009.06.12 |
---|---|
텍스쳐 (0) | 2009.04.03 |
가시성 판단 (0) | 2009.03.31 |
조명과 음영 (0) | 2009.03.24 |
OpenGL의 투영과 뷰포트 변환 (0) | 2009.03.24 |
OpenGL의 모델변환 및 행렬스택 (0) | 2009.03.22 |
기하 변환 (0) | 2009.03.22 |
3차원 물체의 표현 (0) | 2009.03.22 |
디스플레이 리스트 (0) | 2009.03.22 |
정점배열 (0) | 2009.03.22 |