[CGs] Antialiasing

박원준·2023년 4월 15일
0

CGs

목록 보기
10/20

💻 What Is Aliasing & Antialiasing ?

  • Aliasing : 디지털 data의 속성상 이산적인 값들의 형태로 만들어졌기 때문에 인간이 보는 시각적 현상이 선 등에서 우둘투둘하게 되어 부자연스러운 시각 효과

    위 그림과 같은 jaggies 현상
  • Antialiasing : Aliasing을 보완하는 기법으로 디지털 이미지의 경계선 주변의 색들을 살짝 혼합해서 경계선의 색 차이를 모호하게 만드는 기법
    • 하드웨어적 방법 : increasing resolution
    • 소프트웨어적 방법 : Weighted & Unweighted Area Samplings (해상도 건드리지 않음)

💻 Antialiasing Algorithm

Increasing Resolution

  • 해상도를 증가

  • 그러나 메모리 비용, bandwidth, scan-conversion time 이 증가함

  • jaggies를 줄이는 비싼 방법

  • 근본적인 해결방법은 아님 (b의 특정 구역을 확대하면 a와 같은 현상 나타남)

Unweighted Area Sampling

  • line이 덮는 한 픽셀만 선택하는 것이 아니라 인접한 픽셀도 밝기의 차를 두면서 색칠
  • Supersampling 사용
  • 소프트웨어적 방식

  • 위 그림은 하나의 pixel을 3*3개의 가상의 subpixel(Supersampling)을 두어 1픽셀 당 subpixel의 개수의 비에 따라 차등 밝기 조절
  • 영역을 가상의 subpixel로 나누어서 위치에 가중치를 두지 않고 오직 개수에만 의존하여 색칠
  • 3*3이니 총 3단계 (100%, 67%, 33%)

  • 위 그림은 하나의 pixel을 4*4개의 가상의 subpixel(Supersampling)을 두어 1픽셀 당 subpixel의 개수의 비에 따라 차등 밝기 조절
  • 총 4단계의 밝기

Weighted Area Sampling

  • Supersampling에서 가상의 subpixel들의 위치에 따라 가중치를 부여하고, 이후 그 픽셀의 가중치의 합에 따라 차등 밝기 조절

  • filter에 따라 다양한 값이 나올수 있음 : box filter, cone filter, gaussian filter

  • Box filter : subpixel위에 가상의 정육면체를 나둬서 높이에 따라 가중치를 달리하는 방식
  • 정육면체는 모두 높이가 같으므로 결국 중심에 위치한 subpixel이나 변두리에 위치한 subpixel이나 가중치가 모두 같음.
  • 즉, Unweighted Area Sampling과 같음

  • Cone filter : 원뿔형의 높이에 따른 가중치 분배
  • 중심에 있을수록 높이가 높음

  • Gaussian filter : 중심에 가까울수록 가중치가 높으며 꼭지점이 제일 가중치가 낮음.

Unweighted vs. Weighted Area Sampling

  • Unweighted : subpixel의 중심과의 거리는 고려하지 않고, 오직 subpixel의 개수로만 차등비율로 밝기 부여

  • Weighted : 픽셀의 중심과의 거리를 고려해서 가중치에 따라 차등비율로 밝기조절


Summary

  • 래스터 그래픽의 특성상 해상도의 한계로 aliasing 현상이 나타날 수 밖에 없다.
  • Aliasing 현상을 제거 또는 완화시키는 방법(antialiasing)으로 하드웨어적인 방법과 소프트웨어적인 방법이 있다.
  • 하드웨어적인 방법으로 해상도를 높이는 방법이 있으나 근본적으로 해결하기 어렵다.
  • 소프트웨어적인 방법으로 unweighted/weighted area sampling 방법이 있다.

0개의 댓글