본문 바로가기
IT/컴퓨터 그래픽스

Aliasing과 Anti-Aliasing

by 신인용 2021. 2. 3.
반응형

 

 

Aliasing과 Anti-Aliasing

 

 

Aliasing

아날로그의 원본을 컴퓨터가 저장하면서 원본이 손상되는 현상이다. Sampling rate가 낮아서 생기는 모든 문제라고도 말할 수 있다. 한국말로 계단현상이라고도 한다.

 

이런 선이 있다면, 이 선을 한칸한칸(한 pixel)에 찍어주면서 계단처럼 보이게 된다.

 

이런 식으로 부자연스럽게 보이게 된다.

 

 

 

 

Polygon Aliasing

Scan line에 걸치지 않을 정도로 작은 polygon이 있다면, 컴퓨터가 읽지 못해 색을 칠해주지 못한다. 그래서 우리 눈에 사라진 것처럼 보인다.

 

 

 

 

Anti-Aliasing

Aliasing을 줄이는 방법이 Anti-Aliasing이다.

sampling rate가 낮아서 생기는 문제이니 높여주면 된다. 단순히 sampling을 많이 하면 사람눈에 aliasing을 인식하지 못하게 하는 것이다.

 

 

(좌)기존 samping, (우)Anti-Aliasing

그러나 실제로 컴퓨터의 성능 때문에, 모든 곳에 많은 sampling을 적용시키기 현실적으로 어렵다.

그래서 "polygon이 포함된 pixel을 그리는 것"이 아닌 "polygon이 어느정도 pixel에 들어가 있는가"를 그려준다.

멀리서 봤을 때 자연스럽게 보여지게 되는 것이다.

 

 

 

 

 

Anti-Aliasing 어떻게 할까?

한 pixel에 여러번 sampling해서 평균 색을 구한다.

만약 한 pixel에 8번 sampling한다고 하면, pixel에 점을 8개 찍고, 몇 개의 점이 polygon에 속해있는지 계산하고, 색의 비율을 결정한다.

 

이것을 Supersampling이라고 하는데, 경계선에서만 계산하는 것을 Multisampling이라고 한다. 게임에서는 최대한 계산을 줄여야 하니 Multisampling을 사용한다고 한다.

 

 

 

 

OpenGL

glfwWindowHint(GLFW_SAMPLES, 8);

(window 만들기 전에 적용시켜줘야 한다. glfwCreateWindow 사용 전에 사용해야함.)

 

 

 

 

 

[참고]

Interactive Computer Graphics: A Top-Down Approach with Shader-based OpenGL 6th edition / 저자: Edward Angel, Dave Shreiner / 출판사: Pearson Education

 

반응형

'IT > 컴퓨터 그래픽스' 카테고리의 다른 글

Rasterization  (0) 2021.01.31
Perspective Projection  (0) 2021.01.18
Camera Coordinates  (0) 2021.01.17
GPU와 Buffer  (0) 2021.01.17
GPU에 data를 전달하기  (0) 2021.01.17

댓글